mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.1 KiB
127 lines
3.1 KiB
/* 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);
|
|
}
|
|
|
|
|
|
|