mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
127 lines
3.1 KiB
C
127 lines
3.1 KiB
C
/* cls.c 7/21/2012 dwg - elegant form of clear screen program */
|
||
|
||
/*
|
||
#include "stdio.h"
|
||
#include "applvers.h"
|
||
*/
|
||
|
||
/* declarations for HBIOS access */
|
||
extern char hrega;
|
||
extern unsigned int hregbc;
|
||
extern unsigned int hregde;
|
||
extern unsigned int hreghl;
|
||
extern diagnose();
|
||
|
||
/* declaration dir BIOS and BDOS and low level calls */
|
||
extern char xrega;
|
||
extern unsigned int xregbc;
|
||
extern unsigned int xregde;
|
||
extern unsigned int xreghl;
|
||
extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
|
||
|
||
#define BDOS 5 /* memory address of BDOS invocation */
|
||
#define HIGHSEG 0x0C000 /* memory address of system config */
|
||
|
||
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
|
||
|
||
/* pointer based Configuration Data structure */
|
||
struct CNFGDATA {
|
||
unsigned char rmj;
|
||
unsigned char rmn;
|
||
unsigned char rup;
|
||
unsigned char rtp;
|
||
unsigned char diskboot;
|
||
unsigned char devunit;
|
||
unsigned int bootlu;
|
||
unsigned char hour;
|
||
unsigned char minute;
|
||
unsigned char second;
|
||
unsigned char month;
|
||
unsigned char day;
|
||
unsigned char year;
|
||
unsigned char freq;
|
||
unsigned char platform;
|
||
unsigned char dioplat;
|
||
unsigned char vdumode;
|
||
unsigned int romsize;
|
||
unsigned int ramsize;
|
||
unsigned char clrramdk;
|
||
unsigned char dskyenable;
|
||
unsigned char uartenable;
|
||
unsigned char vduenable;
|
||
unsigned char fdenable;
|
||
unsigned char fdtrace;
|
||
unsigned char fdmedia;
|
||
unsigned char fdmediaalt;
|
||
unsigned char fdmauto;
|
||
unsigned char ideenable;
|
||
unsigned char idetrace;
|
||
unsigned char ide8bit;
|
||
unsigned int idecapacity;
|
||
unsigned char ppideenable;
|
||
unsigned char ppidetrace;
|
||
unsigned char ppide8bit;
|
||
unsigned int ppidecapacity;
|
||
unsigned char ppideslow;
|
||
unsigned char boottype;
|
||
unsigned char boottimeout;
|
||
unsigned char bootdefault;
|
||
unsigned int baudrate;
|
||
unsigned char ckdiv;
|
||
unsigned char memwait;
|
||
unsigned char iowait;
|
||
unsigned char cntlb0;
|
||
unsigned char cntlb1;
|
||
unsigned char sdenable;
|
||
unsigned char sdtrace;
|
||
unsigned int sdcapacity;
|
||
unsigned char sdcsio;
|
||
unsigned char sdcsiofast;
|
||
unsigned char defiobyte;
|
||
unsigned char termtype;
|
||
unsigned int revision;
|
||
unsigned char prpsdenable;
|
||
unsigned char prpsdtrace;
|
||
unsigned int prpsdcapacity;
|
||
unsigned char prpconenable;
|
||
unsigned int biossize;
|
||
unsigned char pppenable;
|
||
unsigned char pppsdenable;
|
||
unsigned char pppsdtrace;
|
||
unsigned int pppsdcapacity;
|
||
unsigned char pppconenable;
|
||
unsigned char prpenable;
|
||
};
|
||
|
||
struct JMP {
|
||
unsigned char opcode; /* JMP opcode */
|
||
unsigned int address; /* JMP address */
|
||
};
|
||
|
||
struct SYSCFG {
|
||
struct JMP jmp;
|
||
void * cnfloc;
|
||
void * tstloc;
|
||
void * varloc;
|
||
struct CNFGDATA cnfgdata;
|
||
char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
|
||
} * pSYSCFG = HIGHSEG;
|
||
|
||
|
||
main(argc,argv)
|
||
int argc;
|
||
char *argv[];
|
||
{
|
||
hregbc = GETSYSCFG; /* function = Get System Config */
|
||
hregde = HIGHSEG; /* addr of dest (must be high) */
|
||
diagnose(); /* invoke the HBIOS function */
|
||
|
||
crtinit(pSYSCFG->cnfgdata.termtype); /* pass termtype to init */
|
||
|
||
crtclr();
|
||
|
||
crtlc(0,0);
|
||
}
|
||
|
||
|
||
|