mirror of https://github.com/wwarthen/RomWBW.git
779 changed files with 103711 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,20 @@ |
|||
/****************************/ |
|||
/* applvers.h dwg - 2.0.0.0 */ |
|||
/****************************/ |
|||
|
|||
#define A_RMJ 2 |
|||
#define A_RMN 0 |
|||
#define A_RUP 0 |
|||
#define A_RTP 0 |
|||
|
|||
#define A_MONTH 6 |
|||
#define A_DAY 10 |
|||
#define A_YEAR 2012 |
|||
#define A_YR 12 |
|||
|
|||
/********************/ |
|||
/* eof - applvers.h */ |
|||
/********************/ |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,67 @@ |
|||
; asmiface.asm 6/4/2012 dwg - |
|||
|
|||
extrn .begin,.chl,.swt |
|||
extrn csave,cret,.move |
|||
|
|||
global xrega_,1 |
|||
global xregbc_,2 |
|||
global xregde_,2 |
|||
global xreghl_,2 |
|||
|
|||
PUBLIC asmif_ |
|||
asmif_: lxi d,.2 |
|||
call csave |
|||
|
|||
LXI H,8-.2 ; pick up 1st parm "function address" |
|||
DAD SP |
|||
MOV E,M |
|||
INX H |
|||
MOV D,M |
|||
xchg |
|||
shld callad+1 |
|||
|
|||
LXI H,10-.2 |
|||
DAD SP |
|||
MOV E,M |
|||
INX H |
|||
MOV D,M ; DE = parm |
|||
xchg |
|||
shld xregbc_ |
|||
|
|||
LXI H,12-.2 |
|||
DAD SP |
|||
MOV E,M |
|||
INX H |
|||
MOV D,M |
|||
xchg |
|||
shld xregde_ |
|||
|
|||
LXI H,14-.2 |
|||
DAD SP |
|||
MOV E,M |
|||
INX H |
|||
MOV D,M |
|||
xchg |
|||
shld xreghl_ |
|||
|
|||
lhld xregbc_ |
|||
mov b,h |
|||
mov c,l ; setup B&C |
|||
lhld xregde_ |
|||
xchg ; setup D&E |
|||
lhld xreghl_ ; setup H&L |
|||
|
|||
callad: call 0e639h ; setlu |
|||
|
|||
sta xrega_ |
|||
shld xreghl_ |
|||
xchg |
|||
shld xregde_ |
|||
mov l,c |
|||
mov h,b |
|||
shld xregbc_ |
|||
RET ; HL has return value |
|||
|
|||
.2 EQU 0 |
|||
END |
|||
|
|||
@ -0,0 +1,14 @@ |
|||
/*****************************/ |
|||
/* asmiface.H 6/4/2012 dwg - */ |
|||
/*****************************/ |
|||
|
|||
extern char xrega; |
|||
extern unsigned int xregbc; |
|||
extern unsigned int xregde; |
|||
extern unsigned int xreghl; |
|||
extern asmif(); /* asmif(0xe60,bc,de,hl); */ |
|||
|
|||
/********************/ |
|||
/* eof - asmiface.h */ |
|||
/********************/ |
|||
|
|||
@ -0,0 +1,4 @@ |
|||
/* banner.h */ |
|||
extern sbanner(); |
|||
extern banner(); |
|||
|
|||
@ -0,0 +1,71 @@ |
|||
; bdoscall.asm 3/10/2012 dwg - bdos binding for Aztec C |
|||
|
|||
global drega_,1 |
|||
global dregbc_,2 |
|||
global dregde_,2 |
|||
global dreghl_,2 |
|||
|
|||
PUBLIC lurst_ |
|||
lurst_: |
|||
|
|||
push b |
|||
push d |
|||
push h |
|||
push psw |
|||
|
|||
mvi c,37 |
|||
lxi d,127 |
|||
lxi b,127 |
|||
call 5 |
|||
|
|||
pop psw |
|||
pop h |
|||
pop d |
|||
pop b |
|||
|
|||
RET |
|||
|
|||
|
|||
PUBLIC bdoscall_ |
|||
bdoscall_: |
|||
|
|||
push b |
|||
push d |
|||
push h |
|||
push psw |
|||
|
|||
lhld dregbc_ |
|||
mov b,h |
|||
mov c,l |
|||
|
|||
lhld dregde_ |
|||
mov d,h |
|||
mov e,l |
|||
|
|||
lhld dreghl_ |
|||
|
|||
lda drega_ |
|||
|
|||
call 5 |
|||
|
|||
sta drega_ |
|||
|
|||
shld dreghl_ |
|||
|
|||
mov l,e |
|||
mov h,d |
|||
shld dregde_ |
|||
|
|||
mov l,c |
|||
mov h,b |
|||
shld dregbc_ |
|||
|
|||
pop psw |
|||
pop h |
|||
pop d |
|||
pop b |
|||
|
|||
RET |
|||
|
|||
END |
|||
|
|||
@ -0,0 +1,8 @@ |
|||
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */ |
|||
|
|||
extern char drega; |
|||
extern unsigned int dregbc; |
|||
extern unsigned int dregde; |
|||
extern unsigned int dreghl; |
|||
extern bdoscall(); |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,80 @@ |
|||
; bioscall.asm 3/10/2012 dwg - bios binding for Aztec C |
|||
|
|||
global irega_,1 |
|||
global iregbc_,2 |
|||
global iregde_,2 |
|||
global ireghl_,2 |
|||
|
|||
|
|||
public getmeta_ |
|||
getmeta_: |
|||
push psw |
|||
push b |
|||
push d |
|||
push h |
|||
|
|||
lxi b,4 |
|||
lxi d,0 |
|||
call 0e61bh |
|||
|
|||
lxi d,0 |
|||
call 0e61eh |
|||
|
|||
lxi d,11 |
|||
call 0e621h |
|||
|
|||
lxi d,80h |
|||
call 0e624h |
|||
|
|||
call 0e627h |
|||
|
|||
pop h |
|||
pop d |
|||
pop b |
|||
pop psw |
|||
ret |
|||
|
|||
PUBLIC bioscall_ |
|||
bioscall_: |
|||
|
|||
push b |
|||
push d |
|||
push h |
|||
push psw |
|||
|
|||
lhld iregbc_ |
|||
mov b,h |
|||
mov c,l |
|||
|
|||
lhld iregde_ |
|||
mov d,h |
|||
mov e,l |
|||
|
|||
lhld ireghl_ |
|||
shld mycall+1 |
|||
|
|||
lda irega_ |
|||
|
|||
mycall: call 5 |
|||
|
|||
sta irega_ |
|||
|
|||
shld ireghl_ |
|||
|
|||
mov l,e |
|||
mov h,d |
|||
shld iregde_ |
|||
|
|||
mov l,c |
|||
mov h,b |
|||
shld iregbc_ |
|||
|
|||
pop psw |
|||
pop h |
|||
pop d |
|||
pop b |
|||
|
|||
RET |
|||
|
|||
END |
|||
|
|||
@ -0,0 +1,8 @@ |
|||
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */ |
|||
|
|||
extern char irega; |
|||
extern unsigned int iregbc; |
|||
extern unsigned int iregde; |
|||
extern unsigned int ireghl; |
|||
extern bioscall(); |
|||
|
|||
Binary file not shown.
@ -0,0 +1,41 @@ |
|||
/* cbanner.c 3/12/2012 dwg - */ |
|||
|
|||
#include "portab.h" |
|||
#include "globals.h" |
|||
#include "applvers.h" |
|||
|
|||
char * lines = "----------------------------------------"; |
|||
char * line1 = "12345678.123 mm/dd/yyyy Version x.x.x.x"; |
|||
char * line2 = "S/N CPM80-DWG-654321 Licensed under GPL3"; |
|||
char * line3 = "Copyright (C) 2011-12 Douglas W. Goodall"; |
|||
|
|||
sbanner(program) |
|||
char *program; |
|||
{ |
|||
char szTemp[128]; |
|||
|
|||
printf("%s ",program); |
|||
printf("%2d/%2d/%4d ",A_MONTH,A_DAY,A_YEAR); |
|||
printf("Version %d.%d.%d.%d ",A_RMJ,A_RMN,A_RUP,A_RTP); |
|||
printf("COPR Douglas Goodall Licensed w/GPLv3\n"); |
|||
} |
|||
|
|||
banner(program) |
|||
char *program; |
|||
{ |
|||
char szTemp[128]; |
|||
|
|||
printf("%s\n",lines); |
|||
strcpy(szTemp,program); |
|||
while(12 > strlen(szTemp)) { |
|||
strcat(szTemp," "); |
|||
} |
|||
printf("%s ",szTemp); |
|||
printf("%2d/%2d/%4d ",A_MONTH,A_DAY,A_YEAR); |
|||
printf("Version %d.%d.%d.%d\n",A_RMJ,A_RMN,A_RUP,A_RTP); |
|||
printf("%s\n",line2); |
|||
printf("%s\n",line3); |
|||
printf("%s\n",lines); |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1 @@ |
|||
裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹裹 |
|||
@ -0,0 +1,133 @@ |
|||
/* chars.c 6/7/2012 dwg - test command line arguments */ |
|||
|
|||
#include "stdio.h" |
|||
|
|||
#include "portab.h" |
|||
#include "globals.h" |
|||
#include "std.h" |
|||
#include "cpm80.h" |
|||
#include "cpmappl.h" |
|||
#include "applvers.h" |
|||
|
|||
#define TOP 0 |
|||
#define LEFT 4 |
|||
|
|||
char map[256] = |
|||
{ |
|||
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ |
|||
|
|||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0 */ |
|||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 1 */ |
|||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2 */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 3 0 - 9 */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 4 A - O */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 5 P - Z */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 6 a - o */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 7 p - z */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 8 */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9 */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* B 0 - 9 */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* C A - O */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* D P - Z */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* E a - o */ |
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* F p - z */ |
|||
}; |
|||
|
|||
char attroff[] = { 27, '[', 'm', 0 }; |
|||
char attrbold[] = { 27, '[', '1', 'm', 0 }; |
|||
char attrlow[] = { 27, '[', '2', 'm', 0 }; |
|||
char attrundr[] = { 27, '[', '4', 'm', 0 }; |
|||
char attrblnk[] = { 27, '[', '5', 'm', 0 }; |
|||
char attrrevs[] = { 27, '[', '7', 'm', 0 }; |
|||
char attrinvs[] = { 27, '[', '8', 'm', 0 }; |
|||
char graphon[] = { 27, 'F', 0 }; |
|||
char graphoff[] = { 27, 'G', 0 }; |
|||
|
|||
|
|||
char atreset[] = "0"; |
|||
char atbold[] = "1"; |
|||
char atdim[] = "2"; |
|||
char atundrscr[] = "4"; |
|||
char atblink[] = "5"; |
|||
char atrevs[] = "7"; |
|||
char athidden[] = "8"; |
|||
|
|||
char fgblack[] = "30"; |
|||
char fgred[] = "31"; |
|||
char fggreen[] = "32"; |
|||
char fgyellow[] = "33"; |
|||
char fgblue[] = "34"; |
|||
char fgmagenta[] = "35"; |
|||
char fgcyan[] = "36"; |
|||
char fgwhite[] = "37"; |
|||
|
|||
char bgblack[] = "40"; |
|||
char bgred[] = "41"; |
|||
char bggreen[] = "42"; |
|||
char bgyellow[] = "43"; |
|||
char bgblue[] = "44"; |
|||
char bgmagenta[] = "45"; |
|||
char bgcyan[] = "46"; |
|||
char bgwhite[] = "47"; |
|||
|
|||
dispattr(attr,fg,bg) |
|||
char * attr; |
|||
char * fg; |
|||
char * bg; |
|||
{ |
|||
printf("%c[%s;%s;%sm",27,attr,fg,bg); |
|||
} |
|||
|
|||
int main(argc,argv) |
|||
int argc; |
|||
char *argv[]; |
|||
{ |
|||
int i,j,k; |
|||
int x,y; |
|||
|
|||
if(1 < argc) { |
|||
for(i=1;i<argc;i++) { |
|||
printf("%c",atoi(argv[i])); |
|||
} |
|||
} else { |
|||
|
|||
crtinit(); |
|||
crtclr(); |
|||
crtlc(0,0); |
|||
|
|||
dispattr(atbold,fggreen,bgblack); |
|||
banner("CHARS"); |
|||
|
|||
printf("%s",attroff); |
|||
|
|||
dispattr(atbold,fgcyan,bgblack); |
|||
for(x=0;x<16;x++) { |
|||
crtlc(TOP+6,LEFT+(x*4)+5); |
|||
printf("[%x]",x); |
|||
} |
|||
printf("%s",attroff); |
|||
|
|||
for(y=0;y<16;y++) { |
|||
crtlc(TOP+y+7,LEFT+0); |
|||
dispattr(atbold,fgcyan,bgblack); |
|||
printf("[%x]",y); |
|||
printf("%s",attroff); |
|||
|
|||
for(x=0;x<16;x++) { |
|||
crtlc(TOP+y+7,LEFT+(x*4)+6); |
|||
if(1 == map[(y*16)+x]) { |
|||
printf("."); |
|||
} else { |
|||
printf("%c",(y*16)+x); |
|||
} |
|||
} |
|||
dispattr(atbold,fgcyan,bgblack); |
|||
printf(" [%x]",y); |
|||
printf("%s",attroff); |
|||
} |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
@ -0,0 +1,57 @@ |
|||
/* clogical.c 6/4/2012 dwg - */ |
|||
|
|||
#include "portab.h" |
|||
#include "cpmbios.h" |
|||
#include "asmiface.h" |
|||
|
|||
lugcur(drive) |
|||
{ |
|||
asmif(pGETLU,drive,0,0); |
|||
return xregde; |
|||
} |
|||
|
|||
lugnum(drive) |
|||
{ |
|||
asmif(pGETLU,drive,0,0); |
|||
return xreghl; |
|||
} |
|||
|
|||
lugdu(drive) |
|||
{ |
|||
asmif(pGETLU,drive,0,0); |
|||
return xregbc>>8; |
|||
} |
|||
|
|||
luscur(drive,lunum) |
|||
{ |
|||
asmif(pGETLU,drive,0,0); |
|||
/* A = Result 0=OK */ |
|||
/* B = devunit */ |
|||
/* DE = current */ |
|||
/* HL = numlu */ |
|||
|
|||
/* BC = devunit*256+drive */ |
|||
/* DE = current */ |
|||
/* HL = numlu */ |
|||
asmif(pSETLU,xregbc,lunum,xreghl); |
|||
} |
|||
|
|||
lusnum(drive,numlu) |
|||
{ |
|||
asmif(pGETLU,drive,0,0); |
|||
/* A = Result 0=OK */ |
|||
/* B = devunit */ |
|||
/* DE = current */ |
|||
/* HL = numlu */ |
|||
|
|||
/* BC = devunit*256+drive */ |
|||
/* DE = current */ |
|||
/* HL = numlu */ |
|||
asmif(pSETLU,xregbc,xregde,numlu); |
|||
} |
|||
|
|||
|
|||
/********************/ |
|||
/* eof - clogical.c */ |
|||
/********************/ |
|||
|
|||
@ -0,0 +1,18 @@ |
|||
|
|||
/*****************************/ |
|||
/* clogical.H 6/4/2012 dwg - */ |
|||
/*****************************/ |
|||
|
|||
#define METATRK 0 |
|||
#define METASEC 11 |
|||
|
|||
extern lugdu(); |
|||
extern lugcur(); |
|||
extern luscur(); |
|||
extern lugnum(); |
|||
extern lusnum(); |
|||
|
|||
/********************/ |
|||
/* eof - clogical.h */ |
|||
/********************/ |
|||
|
|||
@ -0,0 +1,53 @@ |
|||
/* cmemory.c 3/13/2012 dwg - */ |
|||
|
|||
#include "portab.h" |
|||
/* #include "cpmbind.h" */ |
|||
|
|||
memcmp(xptr,yptr,count) |
|||
u8 * xptr; |
|||
u8 * yptr; |
|||
int count; |
|||
{ |
|||
u8 * x; |
|||
u8 * y; |
|||
int i; |
|||
|
|||
x = xptr; |
|||
y = yptr; |
|||
for(i=0;i<count;i++) { |
|||
if(*x++ != *y++) return FALSE; |
|||
} |
|||
return TRUE; |
|||
} |
|||
|
|||
memcpy(dstptr,srcptr,count) |
|||
u8 * dstptr; |
|||
u8 * srcptr; |
|||
int count; |
|||
{ |
|||
u8 * s; |
|||
u8 * d; |
|||
int i; |
|||
|
|||
s = srcptr; |
|||
d = dstptr; |
|||
for(i=0;i<count;i++) { |
|||
*d++ = *s++; |
|||
} |
|||
} |
|||
|
|||
memset(dstptr,data,count) |
|||
u8 * dstptr; |
|||
u8 data; |
|||
u16 count; |
|||
{ |
|||
u8 * p; |
|||
int i; |
|||
|
|||
p = dstptr; |
|||
for(i=0;i<count;i++) { |
|||
*p++ = data; |
|||
} |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,108 @@ |
|||
/* cnamept1.c 5/24/2012 dwg - added bootlu */ |
|||
|
|||
#include "stdio.h" |
|||
#include "stdlib.h" |
|||
|
|||
#include "portab.h" |
|||
#include "std.h" |
|||
|
|||
#include "cnfgdata.h" |
|||
#include "syscfg.h" |
|||
|
|||
extern pager(); |
|||
|
|||
char cache[17]; |
|||
|
|||
cnamept1(syscfg) |
|||
struct SYSCFG * syscfg; |
|||
{ |
|||
strcpy(cache,"syscfg->cnfgdata"); |
|||
|
|||
printf("syscfg->jmp jp 0%04xh",syscfg->jmp.address); |
|||
pager(); |
|||
|
|||
printf("syscfg->cnfloc .dw 0%04xh",syscfg->cnfloc); |
|||
pager(); |
|||
|
|||
printf("syscfg->tstloc .dw 0%04xh",syscfg->tstloc); |
|||
pager(); |
|||
|
|||
printf("syscfg->varloc .dw 0%04xh",syscfg->varloc); |
|||
pager(); |
|||
|
|||
printf("%s.rmj = %d",cache,syscfg->cnfgdata.rmj); |
|||
pager(); |
|||
|
|||
printf("%s.rmn = %d",cache,syscfg->cnfgdata.rmn); |
|||
pager(); |
|||
|
|||
printf("%s.rup = %d",cache,syscfg->cnfgdata.rup); |
|||
pager(); |
|||
|
|||
printf("%s.rtp = %d",cache,syscfg->cnfgdata.rtp); |
|||
pager(); |
|||
|
|||
printf("%s.diskboot = ",cache); |
|||
switch(syscfg->cnfgdata.diskboot) { |
|||
case TRUE: printf("TRUE"); break; |
|||
case FALSE: printf("FALSE"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.devunit = 0x%02x",cache, |
|||
syscfg->cnfgdata.devunit); |
|||
pager(); |
|||
|
|||
printf("%s.bootlu = 0x%04x",cache, |
|||
syscfg->cnfgdata.bootlu); |
|||
pager(); |
|||
|
|||
printf("%s.freq = %dMHz",cache,syscfg->cnfgdata.freq); |
|||
pager(); |
|||
|
|||
printf("%s.platform = ",cache); |
|||
switch(syscfg->cnfgdata.platform) { |
|||
case PLT_N8VEM: printf("N8VEM"); break; |
|||
case PLT_ZETA: printf("ZETA"); break; |
|||
case PLT_N8: printf("N8"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.dioplat = ",cache); |
|||
switch(syscfg->cnfgdata.dioplat) { |
|||
case DPNONE: printf("DIOPLT_NONE"); break; |
|||
case DPDIO: printf("DIOPLT_DISKIO"); break; |
|||
case DPZETA: printf("DIOPLT_ZETA"); break; |
|||
case DPDIDE: printf("DIOPLT_DIDE"); break; |
|||
case DPN8: printf("DIOPLT_N8"); break; |
|||
case DPDIO3: printf("DIOPLT_DISKIO3"); break; |
|||
default: printf("Unknown"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.vdumode = ",cache); |
|||
switch(syscfg->cnfgdata.vdumode) { |
|||
case VPNONE: printf("VDUPLT_NONE"); break; |
|||
case VPVDU: printf("VDUPLT_VDU"); break; |
|||
case VPVDUC: printf("VDUPLT_VDUC"); break; |
|||
case VPPROPIO: printf("VDUPLT_PROPIO"); break; |
|||
case VPN8: printf("VDUPLT_VPN8"); break; |
|||
default: printf("Unknown!!"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.romsize = %d",cache, |
|||
syscfg->cnfgdata.romsize); |
|||
pager(); |
|||
|
|||
printf("%s.ramsize = %d",cache, |
|||
syscfg->cnfgdata.ramsize); |
|||
pager(); |
|||
|
|||
} |
|||
|
|||
|
|||
/********************/ |
|||
/* eof - cnamecp1.c */ |
|||
/********************/ |
|||
|
|||
@ -0,0 +1,113 @@ |
|||
/* cnamept2.c 5/24/2012 dwg - */ |
|||
|
|||
#include "stdio.h" |
|||
#include "stdlib.h" |
|||
|
|||
#include "portab.h" |
|||
#include "std.h" |
|||
|
|||
#include "cnfgdata.h" |
|||
#include "syscfg.h" |
|||
|
|||
extern pager(); |
|||
|
|||
char cache[17]; |
|||
|
|||
cnamept2(syscfg) |
|||
struct SYSCFG * syscfg; |
|||
{ |
|||
strcpy(cache,"syscfg->cnfgdata"); |
|||
|
|||
printf("%s.clrramdk = ",cache); |
|||
switch(syscfg->cnfgdata.clrramdk) { |
|||
case CLRNEV: printf("CLR_NEVER"); break; |
|||
case CLRAUTO: printf("CLR_AUTO"); break; |
|||
case CLRALLW: printf("CLR_ALLWAYS"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.dskyenable = ",cache); |
|||
switch(syscfg->cnfgdata.dskyenable) { |
|||
case TRUE: printf("TRUE"); break; |
|||
case FALSE: printf("FALSE"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.uartenable = ",cache); |
|||
switch(syscfg->cnfgdata.uartenable) { |
|||
case TRUE: printf("TRUE"); break; |
|||
case FALSE: printf("FALSE"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.vduenable = ",cache); |
|||
switch(syscfg->cnfgdata.vduenable) { |
|||
case TRUE: printf("TRUE"); break; |
|||
case FALSE: printf("FALSE"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.fdenable = ",cache); |
|||
switch(syscfg->cnfgdata.fdenable) { |
|||
case TRUE: printf("TRUE"); break; |
|||
case FALSE: printf("FALSE"); break; |
|||
} |
|||
pager(); |
|||
|
|||
if(TRUE == syscfg->cnfgdata.fdenable) { |
|||
|
|||
printf("%s.fdtrace = ",cache); |
|||
switch(syscfg->cnfgdata.fdtrace) { |
|||
case 0: printf("Silent"); break; |
|||
case 1: printf("Fatal Errors"); break; |
|||
case 2: printf("All Errors"); break; |
|||
case 3: printf("Everything"); break; |
|||
default: printf("Unknown!!"); break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.fdmedia = ",cache); |
|||
switch(syscfg->cnfgdata.fdmedia) { |
|||
case FDM720: printf("FDM720"); |
|||
printf(" 3.5 720KB 2-sided 80 Trks 9 Sectors"); |
|||
break; |
|||
case FDM144: printf("FDM144"); |
|||
printf(" 3.5 1.44MB 2-sided 80 Trks 18 Sectors"); |
|||
break; |
|||
case FDM360: printf("FDM360"); |
|||
printf(" 5.25 360KB 2-sided 40 Trks 9 Sectors"); |
|||
break; |
|||
case FDM120: printf("FDM120"); |
|||
printf(" 3.5 1.2MB 2-sided 80 Trks 15 Sectors"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.fdmediaalt = ",cache); |
|||
switch(syscfg->cnfgdata.fdmediaalt) { |
|||
case FDM720: printf("FDM720"); |
|||
printf(" 3.5 720KB 2-sided 80 Trks 9 Sectors"); |
|||
break; |
|||
case FDM144: printf("FDM144"); |
|||
printf(" 3.5 1.44MB 2-sided 80 Trks 18 Sectors"); |
|||
break; |
|||
case FDM360: printf("FDM360"); |
|||
printf(" 5.25 360KB 2-sided 40 Trks 9 Sectors"); |
|||
break; |
|||
case FDM120: printf("FDM120"); |
|||
printf(" 3.5 1.2MB 2-sided 80 Trks 15 Sectors"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
/********************/ |
|||
/* eof - cnamept2.c */ |
|||
/********************/ |
|||
|
|||
|
|||
@ -0,0 +1,216 @@ |
|||
/* cnamept2.c 5/24/2012 dwg - */ |
|||
|
|||
#include "stdio.h" |
|||
#include "stdlib.h" |
|||
|
|||
#include "portab.h" |
|||
#include "std.h" |
|||
|
|||
#include "cnfgdata.h" |
|||
#include "syscfg.h" |
|||
|
|||
extern pager(); |
|||
|
|||
char cache[17]; |
|||
|
|||
cnamept3(syscfg) |
|||
struct SYSCFG * syscfg; |
|||
{ |
|||
strcpy(cache,"syscfg->cnfgdata"); |
|||
|
|||
printf("%s.fdmauto = ",cache); |
|||
switch(syscfg->cnfgdata.fdmauto) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.ideenable = ",cache); |
|||
switch(syscfg->cnfgdata.ideenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
if(TRUE == syscfg->cnfgdata.ideenable) { |
|||
|
|||
printf("%s.idetrace = ",cache); |
|||
switch(syscfg->cnfgdata.idetrace) { |
|||
case 0: printf("SILENT"); |
|||
break; |
|||
case 1: printf("ERRORS"); |
|||
break; |
|||
case 2: printf("EVERYTHING"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.de8bit = ",cache); |
|||
switch(syscfg->cnfgdata.ide8bit) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.idecapacity = %dMB",cache, |
|||
syscfg->cnfgdata.idecapacity); |
|||
pager(); |
|||
|
|||
} |
|||
|
|||
printf("%s.ppideenable = ",cache); |
|||
switch(syscfg->cnfgdata.ppideenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
if(TRUE == syscfg->cnfgdata.ppideenable) { |
|||
|
|||
printf("%s.ppidetrace = ",cache); |
|||
switch(syscfg->cnfgdata.ppidetrace) { |
|||
case 0: printf("SILENT"); |
|||
break; |
|||
case 1: printf("ERRORS"); |
|||
break; |
|||
case 2: printf("EVERYTHING"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
|
|||
printf("%s.ppide8bit = ",cache); |
|||
switch(syscfg->cnfgdata.ppide8bit) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.ppidecapacity = %dKB",cache, |
|||
syscfg->cnfgdata.ppidecapacity); |
|||
pager(); |
|||
|
|||
printf("%s.ppideslow = ",cache); |
|||
switch(syscfg->cnfgdata.ppideslow) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
} |
|||
|
|||
printf("%s.boottype = ",cache); |
|||
switch(syscfg->cnfgdata.boottype) { |
|||
case BTMENU: printf("BT_MENU"); |
|||
break; |
|||
case BTAUTO: printf("BT_AUTO"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.boottimeout = %d seconds",cache, |
|||
syscfg->cnfgdata.boottimeout); |
|||
pager(); |
|||
|
|||
printf("%s.bootdefault = %c:",cache, |
|||
syscfg->cnfgdata.bootdefault); |
|||
pager(); |
|||
|
|||
printf("%s.baudrate = %u (0x%04x) Baud",cache, |
|||
syscfg->cnfgdata.baudrate,syscfg->cnfgdata.baudrate); |
|||
pager(); |
|||
|
|||
if(PLT_N8 == syscfg->cnfgdata.platform) { |
|||
|
|||
printf("%s.ckdiv = %d",cache, |
|||
syscfg->cnfgdata.ckdiv); |
|||
pager(); |
|||
|
|||
printf("%s.memwait = 0x%02x",cache, |
|||
syscfg->cnfgdata.memwait); |
|||
pager(); |
|||
|
|||
printf("%s.iowait = 0x%02x",cache,syscfg->cnfgdata.iowait); |
|||
pager(); |
|||
|
|||
printf("%s.cntlb0 = 0x%02x",cache,syscfg->cnfgdata.cntlb0); |
|||
pager(); |
|||
|
|||
printf("%s.cntlb1 = 0x%02x",cache,syscfg->cnfgdata.cntlb1); |
|||
pager(); |
|||
|
|||
|
|||
printf("%s.sdenable = ",cache); |
|||
switch(syscfg->cnfgdata.sdenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.sdtrace = ",cache); |
|||
switch(syscfg->cnfgdata.sdtrace) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
/********************/ |
|||
/* eof - cnamept3.c */ |
|||
/********************/ |
|||
|
|||
/*
|
|||
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; |
|||
*/ |
|||
|
|||
@ -0,0 +1,198 @@ |
|||
/* cnamept2.c 5/24/2012 dwg - */ |
|||
|
|||
#include "stdio.h" |
|||
#include "stdlib.h" |
|||
|
|||
#include "portab.h" |
|||
#include "std.h" |
|||
|
|||
#include "cnfgdata.h" |
|||
#include "syscfg.h" |
|||
|
|||
extern pager(); |
|||
|
|||
char cache[17]; |
|||
|
|||
cnamept4(syscfg) |
|||
struct SYSCFG * syscfg; |
|||
{ |
|||
strcpy(cache,"syscfg->cnfgdata"); |
|||
|
|||
if(PLT_N8 == syscfg->cnfgdata.platform) { |
|||
|
|||
printf("%s.sdcapacity = %uKB",cache, |
|||
syscfg->cnfgdata.sdcapacity); |
|||
pager(); |
|||
|
|||
|
|||
printf("%s.sdcsio = ",cache); |
|||
switch(syscfg->cnfgdata.sdcsio) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: |
|||
printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.sdcsiofast = ",cache); |
|||
switch(syscfg->cnfgdata.sdcsiofast) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
} |
|||
|
|||
printf("%s.defiobyte = 0x%02x",cache, |
|||
syscfg->cnfgdata.defiobyte); |
|||
pager(); |
|||
|
|||
printf("%s.termtype = ",cache); |
|||
switch(syscfg->cnfgdata.termtype) { |
|||
case TERM_TTY: printf("TERM_TTY"); |
|||
break; |
|||
case TERM_ANSI: printf("TERM_ANSI"); |
|||
break; |
|||
case TERM_WYSE: printf("TERM_WYSE"); |
|||
break; |
|||
case TERM_VT52: printf("TERM_VT52"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.revision = %d",cache, |
|||
syscfg->cnfgdata.revision); |
|||
pager(); |
|||
|
|||
printf("%s.prpenable = ",cache); |
|||
switch(syscfg->cnfgdata.prpenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
if(TRUE == syscfg->cnfgdata.prpenable) { |
|||
|
|||
printf("%s.prpsdenable = "); |
|||
switch(syscfg->cnfgdata.prpsdenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
if(TRUE == syscfg->cnfgdata.prpsdenable) { |
|||
|
|||
printf("%s.prpsdtrace = ",cache); |
|||
switch(syscfg->cnfgdata.prpsdtrace) { |
|||
case 0: printf("SILENT"); |
|||
break; |
|||
case 1: printf("ERRORS"); |
|||
break; |
|||
case 2: printf("EVERYTHING"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.prpsdcapacity = ",cache); |
|||
pager(); |
|||
|
|||
printf("%s.prpconenable = ",cache); |
|||
switch(syscfg->cnfgdata.prpconenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
} |
|||
|
|||
} |
|||
|
|||
printf("%s.biossize = %d",cache, |
|||
syscfg->cnfgdata.biossize); |
|||
pager(); |
|||
|
|||
|
|||
printf("%s.pppenable = ",cache); |
|||
switch(syscfg->cnfgdata.pppenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
if(TRUE == syscfg->cnfgdata.pppenable) { |
|||
|
|||
printf("%s.pppsdenable = ",cache); |
|||
switch(syscfg->cnfgdata.pppsdenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
printf("%s.pppsdtrace = ",cache); |
|||
switch(syscfg->cnfgdata.pppsdtrace) { |
|||
case 0: printf("SILENT"); |
|||
break; |
|||
case 1: printf("ERRORS"); |
|||
break; |
|||
case 2: printf("EVERYTHING"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
|
|||
printf("%s.pppcapacity = %d",cache, |
|||
syscfg->cnfgdata.prpsdcapacity); |
|||
pager(); |
|||
|
|||
printf("%s.pppconenable = ",cache); |
|||
switch(syscfg->cnfgdata.pppconenable) { |
|||
case TRUE: printf("TRUE"); |
|||
break; |
|||
case FALSE: printf("FALSE"); |
|||
break; |
|||
default: printf("Unknown!!"); |
|||
break; |
|||
} |
|||
pager(); |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
/********************/ |
|||
/* eof - cnamept4.c */ |
|||
/********************/ |
|||
|
|||
|
|||
@ -0,0 +1,73 @@ |
|||
/* cnfgdata.h 6/04/2012 dwg - */ |
|||
|
|||
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; |
|||
}; |
|||
|
|||
/********************/ |
|||
/* eof - cnfgdata.h */ |
|||
/********************/ |
|||
@ -0,0 +1,196 @@ |
|||
/* cpmbios.h 3/11/2012 dwg - added CURDRV */ |
|||
|
|||
/*************************/ |
|||
/* BIOS Memory Locations */ |
|||
/*************************/ |
|||
|
|||
#define CURDRV 0x00004 |
|||
#define BIOSAD 0x0e600 |
|||
|
|||
#define pBOOT 0x0E600 |
|||
#define pWBOOT 0x0E603 |
|||
#define pCONST 0x0E606 |
|||
#define pCONIN 0x0E609 |
|||
#define pCONOUT 0x0E60C |
|||
#define pLIST 0x0E60F |
|||
#define pPUNCH 0x0E612 |
|||
#define pREADER 0x0E615 |
|||
#define pHOME 0x0E618 |
|||
#define pSELDSK 0x0E61B |
|||
#define pSETTRK 0x0E61E |
|||
#define pSETSEC 0x0E621 |
|||
#define pSETDMA 0x0E624 |
|||
#define pREAD 0x0E627 |
|||
#define pWRITE 0x0E62A |
|||
#define pLISTST 0x0E62D |
|||
#define pSECTRN 0x0E630 |
|||
#define pBNKSEL 0x0E633 |
|||
#define pGETLU 0x0E636 |
|||
#define pSETLU 0x0E639 |
|||
#define pGETINFO 0x0E63C |
|||
|
|||
struct JMP { |
|||
unsigned char opcode; |
|||
unsigned int address; |
|||
}; |
|||
|
|||
struct BIOS { |
|||
struct JMP boot; |
|||
struct JMP wboot; |
|||
struct JMP const; |
|||
struct JMP conin; |
|||
struct JMP conout; |
|||
struct JMP list; |
|||
struct JMP punch; |
|||
struct JMP reader; |
|||
struct JMP home; |
|||
struct JMP seldsk; |
|||
struct JMP settrk; |
|||
struct JMP setsec; |
|||
struct JMP setdma; |
|||
struct JMP read; |
|||
struct JMP write; |
|||
struct JMP listst; |
|||
struct JMP sectrn; |
|||
struct JMP bnksel; |
|||
struct JMP getlu; |
|||
struct JMP setlu; |
|||
struct JMP getinfo; |
|||
struct JMP rsvd1; |
|||
struct JMP rsvd2; |
|||
struct JMP rsvd3; |
|||
struct JMP rsvd4; |
|||
|
|||
char diskboot; |
|||
char bootdrive; |
|||
char devunit; |
|||
|
|||
char rmj; |
|||
char rmn; |
|||
char rup; |
|||
char rtp; |
|||
}; |
|||
|
|||
|
|||
struct DPH { |
|||
unsigned int xlt; |
|||
unsigned int rv1; |
|||
unsigned int rv2; |
|||
unsigned int rv3; |
|||
unsigned int dbf; |
|||
unsigned int dpb; |
|||
unsigned int csv; |
|||
unsigned int alv; |
|||
unsigned char sigl; |
|||
unsigned char sigu; |
|||
unsigned int current; |
|||
unsigned int number; |
|||
}; |
|||
|
|||
struct DPB { |
|||
unsigned int spt; |
|||
unsigned char bsh; |
|||
unsigned char blm; |
|||
unsigned char exm; |
|||
unsigned int dsm; |
|||
unsigned int drm; |
|||
unsigned char al0; |
|||
unsigned char al1; |
|||
unsigned int cks; |
|||
unsigned int off; |
|||
}; |
|||
|
|||
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */ |
|||
|
|||
extern char irega; |
|||
extern unsigned int iregbc; |
|||
extern unsigned int iregde; |
|||
extern unsigned int ireghl; |
|||
extern bioscall(); |
|||
|
|||
|
|||
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */ |
|||
|
|||
extern char drega; |
|||
extern unsigned int dregbc; |
|||
extern unsigned int dregde; |
|||
extern unsigned int dreghl; |
|||
extern bdoscall(); |
|||
|
|||
/* diagnose.h 5/23/2012 dwg - */ |
|||
|
|||
extern char hrega; |
|||
extern unsigned int hregbc; |
|||
extern unsigned int hregde; |
|||
extern unsigned int hreghl; |
|||
|
|||
extern diagnose(); |
|||
|
|||
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */ |
|||
|
|||
extern crtinit(); |
|||
extern crtclr(); |
|||
extern crtlc(); |
|||
|
|||
/* cpmbdos.h */ |
|||
#define TERMCPM 0 |
|||
#define CONIN 1 |
|||
#define CWRITE 2 |
|||
#define DIRCONIO 6 |
|||
#define PRINTSTR 9 |
|||
#define RDCONBUF 10 |
|||
#define GETCONST 11 |
|||
#define RETVERNUM 12 |
|||
#define RESDISKSYS 13 |
|||
#define SELECTDISK 14 |
|||
#define FOPEN 15 |
|||
#define FCLOSE 16 |
|||
#define SEARCHFIRST 17 |
|||
#define SEARCHNEXT 18 |
|||
#define FDELETE 19 |
|||
#define FREADSEQ 20 |
|||
#define FWRITESEQ 21 |
|||
#define FMAKEFILE 22 |
|||
#define FRENAME 23 |
|||
#define RETLOGINVEC 24 |
|||
#define RETCURRDISK 25 |
|||
#define SETDMAADDR 26 |
|||
#define GETALLOCVEC 27 |
|||
#define WRPROTDISK 28 |
|||
#define GETROVECTOR 29 |
|||
#define FSETATTRIB 30 |
|||
#define GETDPBADDR 31 |
|||
#define SETGETUSER 32 |
|||
#define FREADRANDOM 33 |
|||
#define FWRITERAND 34 |
|||
#define FCOMPSIZE 35 |
|||
#define SETRANDREC 36 |
|||
#define RESETDRIVE 37 |
|||
#define WRRANDFILL 38 |
|||
|
|||
#define DRIVEA 0 |
|||
|
|||
/* dphmap.h 5/29/2012 dwg - declaration of DPH MAP structure */ |
|||
|
|||
struct DPHMAP { |
|||
struct DPH * drivea; |
|||
struct DPH * driveb; |
|||
struct DPH * drivec; |
|||
struct DPH * drived; |
|||
struct DPH * drivee; |
|||
struct DPH * drivef; |
|||
struct DPH * driveg; |
|||
struct DPH * driveh; |
|||
} * pDPHMAP; |
|||
|
|||
struct DPHMAP * pDPHVEC[MAXDRIVE]; |
|||
|
|||
|
|||
/******************/ |
|||
/* eof - dphmap.h */ |
|||
/******************/ |
|||
|
|||
/*****************/ |
|||
/* eof - cpm80.h */ |
|||
/*****************/ |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,8 @@ |
|||
#ifndef NDEBUG |
|||
#ifndef stderr |
|||
#include <stdio.h> |
|||
#endif |
|||
#define assert(x) if (!(x)) {fprintf(stderr,"Assertion failed: x, file %s, line %d\n",__FILE__,__LINE__); exit(1);} |
|||
#else |
|||
#define assert(x) |
|||
#endif |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,20 @@ |
|||
/* Copyright (C) 1984 by Manx Software Systems */ |
|||
|
|||
extern char ctp_[]; |
|||
|
|||
#define isalpha(x) (ctp_[(x)+1]&0x03) |
|||
#define isupper(x) (ctp_[(x)+1]&0x01) |
|||
#define islower(x) (ctp_[(x)+1]&0x02) |
|||
#define isdigit(x) (ctp_[(x)+1]&0x04) |
|||
#define isxdigit(x) (ctp_[(x)+1]&0x08) |
|||
#define isalnum(x) (ctp_[(x)+1]&0x07) |
|||
#define isspace(x) (ctp_[(x)+1]&0x10) |
|||
#define ispunct(x) (ctp_[(x)+1]&0x40) |
|||
#define iscntrl(x) (ctp_[(x)+1]&0x20) |
|||
#define isprint(x) (ctp_[(x)+1]&0xc7) |
|||
#define isgraph(x) (ctp_[(x)+1]&0x47) |
|||
#define isascii(x) (((x)&0x80)==0) |
|||
|
|||
#define toascii(x) ((x)&127) |
|||
#define _tolower(x) ((x)|0x20) |
|||
#define _toupper(x) ((x)&0x5f) |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,26 @@ |
|||
/* Copyright (C) 1983 by Manx Software Systems */ |
|||
|
|||
#define TIOCGETP 0 /* read contents of tty control structure */ |
|||
#define TIOCSETP 1 /* set contents of tty control structure */ |
|||
#define TIOCSETN 1 /* ditto only don't wait for output to flush */ |
|||
|
|||
/* special codes for MSDOS 2.x only */ |
|||
#define TIOCREAD 2 /* read control info from device */ |
|||
#define TIOCWRITE 3 /* write control info to device */ |
|||
#define TIOCDREAD 4 /* same as 2 but for drives */ |
|||
#define TIOCDWRITE 5 /* same as 3 but for drives */ |
|||
#define GETISTATUS 6 /* get input status */ |
|||
#define GETOSTATUS 7 /* get output status */ |
|||
|
|||
struct sgttyb { |
|||
short sg_flags; /* control flags */ |
|||
char sg_erase; /* ignored */ |
|||
char sg_kill; /* ignored */ |
|||
}; |
|||
|
|||
/* settings for flags */ |
|||
#define RAW 0x20 /* no echo or mapping of input/output BDOS(6) */ |
|||
|
|||
/* Refer to the MSDOS technical reference for detailed information on
|
|||
* the remaining flags. |
|||
*/ |
|||
@ -0,0 +1,29 @@ |
|||
extern int errno; |
|||
extern char *sys_errlist[]; |
|||
extern int sys_nerr; |
|||
|
|||
/* MsDos return codes */ |
|||
#define EINVAL 1 |
|||
#define ENOENT 2 |
|||
#define ENOTDIR 3 |
|||
#define EMFILE 4 |
|||
#define EACCES 5 |
|||
#define EBADF 6 |
|||
#define EARENA 7 |
|||
#define ENOMEM 8 |
|||
#define EFAULT 9 |
|||
#define EINVENV 10 |
|||
#define EBADFMT 11 |
|||
#define EINVACC 12 |
|||
#define EINVDAT 13 |
|||
#define ENODEV 15 |
|||
#define ERMCD 16 |
|||
#define EXDEV 17 |
|||
#define ENOMORE 18 |
|||
|
|||
/* additional codes used by Aztec C */ |
|||
#define EEXIST 19 |
|||
#define ENOTTY 20 |
|||
/* used by the math library */ |
|||
#define ERANGE 21 |
|||
#define EDOM 22 |
|||
@ -0,0 +1,7 @@ |
|||
#define O_RDONLY 0 |
|||
#define O_WRONLY 1 |
|||
#define O_RDWR 2 |
|||
#define O_CREAT 0x0100 |
|||
#define O_TRUNC 0x0200 |
|||
#define O_EXCL 0x0400 |
|||
#define O_APPEND 0x0800 |
|||
Binary file not shown.
@ -0,0 +1,16 @@ |
|||
main() |
|||
{ |
|||
char buffer[100]; |
|||
|
|||
/* set to 25 row x 80 column monochrome mode 6 (HIRES) */ |
|||
mode('H'); |
|||
printf("Please enter your name: "); |
|||
gets(buffer); |
|||
/* set to 25 row x 40 column 4-color mode 4 (MEDRES) */ |
|||
mode('M'); |
|||
printf("Hello %s!\nWelcome to the growing family of\nAZTEC C users...\n", |
|||
buffer); |
|||
getchar(); |
|||
/* set to 25 row x 80 column color text mode 3 (LOWRES) */ |
|||
mode('L'); |
|||
} |
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,4 @@ |
|||
main() |
|||
{ |
|||
printf("Hello Woprd!!"); |
|||
} |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,82 @@ |
|||
/* Copyright (C) 1982 by Manx Software Systems */ |
|||
/*
|
|||
* if MAXCHAN is changed then the initialization of chantab in croot.c |
|||
* should be adjusted so that it initializes EXACTLY MAXCHAN elements of |
|||
* the array. If this is not done, the I/O library may exhibit |
|||
* strange behavior. |
|||
*/ |
|||
#define MAXCHAN 11 /* maximum number of I/O channels */ |
|||
|
|||
/*
|
|||
* argument to device routines. |
|||
* this is a typedef to allow future redeclaration to guarantee |
|||
* enough space to store either a pointer or an integer. |
|||
*/ |
|||
typedef char *_arg; |
|||
|
|||
/*
|
|||
* device control structure |
|||
*/ |
|||
struct device { |
|||
char d_read; |
|||
char d_write; |
|||
char d_ioctl; /* used by character special devices (eg CON:) */ |
|||
char d_seek; /* used by random I/O devices (eg: a file) */ |
|||
int (*d_open)(); /* for special open handling */ |
|||
}; |
|||
|
|||
/*
|
|||
* device table, contains names and pointers to device entries |
|||
*/ |
|||
struct devtabl { |
|||
char *d_name; |
|||
struct device *d_dev; |
|||
_arg d_arg; |
|||
}; |
|||
|
|||
/*
|
|||
* channel table: relates fd's to devices |
|||
*/ |
|||
struct channel { |
|||
char c_read; |
|||
char c_write; |
|||
char c_ioctl; |
|||
char c_seek; |
|||
int (*c_close)(); |
|||
_arg c_arg; |
|||
} ; |
|||
extern struct channel chantab[MAXCHAN]; |
|||
|
|||
struct fcb { |
|||
char f_driv; |
|||
char f_name[8]; |
|||
char f_type[3]; |
|||
char f_ext; |
|||
char f_resv[2]; |
|||
char f_rc; |
|||
char f_sydx[16]; |
|||
char f_cr; |
|||
unsigned f_record; char f_overfl; |
|||
}; |
|||
|
|||
struct fcbtab { |
|||
struct fcb fcb; |
|||
char offset; |
|||
char flags; |
|||
char user; |
|||
}; |
|||
|
|||
#define OPNFIL 15 |
|||
#define CLSFIL 16 |
|||
#define DELFIL 19 |
|||
#define READSQ 20 |
|||
#define WRITSQ 21 |
|||
#define MAKFIL 22 |
|||
#define SETDMA 26 |
|||
#define GETUSR 32 |
|||
#define READRN 33 |
|||
#define WRITRN 34 |
|||
#define FILSIZ 35 |
|||
#define SETREC 36 |
|||
|
|||
#define Wrkbuf ((char *)0x80) |
|||
@ -0,0 +1,41 @@ |
|||
/* Copyright (C) 1981, 1982 by Manx Software Systems */ |
|||
|
|||
extern int errno; |
|||
#define FLT_FAULT 0 /* vector for floating-point faults */ |
|||
extern int (*Sysvec[])(); |
|||
|
|||
#define NULL 0 |
|||
#define EOF -1 |
|||
#define BUFSIZ 1024 |
|||
|
|||
#define _BUSY 0x01 |
|||
#define _ALLBUF 0x02 |
|||
#define _DIRTY 0x04 |
|||
#define _EOF 0x08 |
|||
#define _IOERR 0x10 |
|||
#define _TEMP 0x20 /* temporary file (delete on close) */ |
|||
|
|||
typedef struct { |
|||
char *_bp; /* current position in buffer */ |
|||
char *_bend; /* last character in buffer + 1 */ |
|||
char *_buff; /* address of buffer */ |
|||
char _flags; /* open mode, etc. */ |
|||
char _unit; /* token returned by open */ |
|||
char _bytbuf; /* single byte buffer for unbuffer streams */ |
|||
int _buflen; /* length of buffer */ |
|||
char *_tmpname; /* name of file for temporaries */ |
|||
} FILE; |
|||
|
|||
extern FILE Cbuffs[]; |
|||
extern char *Stdbufs; /* free list of buffers */ |
|||
long ftell(); |
|||
|
|||
#define stdin (&Cbuffs[0]) |
|||
#define stdout (&Cbuffs[1]) |
|||
#define stderr (&Cbuffs[2]) |
|||
#define getchar() agetc(stdin) |
|||
#define putchar(c) aputc(c, stdout) |
|||
#define feof(fp) (((fp)->_flags&_EOF)!=0) |
|||
#define ferror(fp) (((fp)->_flags&_IOERR)!=0) |
|||
#define clearerr(fp) ((fp)->_flags &= ~(_IOERR|_EOF)) |
|||
#define fileno(fp) ((fp)->_unit) |
|||
@ -0,0 +1,210 @@ |
|||
nlist |
|||
; Copyright (C) 1985 by Manx Software Systems, Inc. |
|||
; :ts=8 |
|||
ifndef MODEL |
|||
MODEL equ 0 |
|||
endif |
|||
if MODEL and 1 |
|||
largecode |
|||
FARPROC equ 1 |
|||
FPTRSIZE equ 4 |
|||
else |
|||
FPTRSIZE equ 2 |
|||
endif |
|||
if MODEL and 2 |
|||
LONGPTR equ 1 |
|||
endif |
|||
|
|||
;this macro to be used on returning |
|||
;restores bp and registers |
|||
pret macro |
|||
if havbp |
|||
pop bp |
|||
endif |
|||
ret |
|||
endm |
|||
|
|||
internal macro pname |
|||
public pname |
|||
pname proc |
|||
endm |
|||
|
|||
intrdef macro pname |
|||
public pname |
|||
ifdef FARPROC |
|||
pname label far |
|||
else |
|||
pname label near |
|||
endif |
|||
endm |
|||
|
|||
procdef macro pname, args |
|||
public pname&_ |
|||
ifdef FARPROC |
|||
_arg = 6 |
|||
pname&_ proc far |
|||
else |
|||
_arg = 4 |
|||
pname&_ proc near |
|||
endif |
|||
ifnb <args> |
|||
push bp |
|||
mov bp,sp |
|||
havbp = 1 |
|||
decll <args> |
|||
else |
|||
havbp = 0 |
|||
endif |
|||
endm |
|||
|
|||
entrdef macro pname, args |
|||
public pname&_ |
|||
ifdef FARPROC |
|||
_arg = 6 |
|||
pname&_: |
|||
else |
|||
_arg = 4 |
|||
pname&_: |
|||
endif |
|||
ifnb <args> |
|||
if havbp |
|||
push bp |
|||
mov bp,sp |
|||
else |
|||
error must declare main proc with args, if entry has args |
|||
endif |
|||
decll <args> |
|||
endif |
|||
endm |
|||
|
|||
;this macro equates 'aname' to arg on stack |
|||
decl macro aname, type |
|||
;;'byte' or anything else |
|||
havtyp = 0 |
|||
ifidn <type>,<byte> |
|||
aname equ byte ptr _arg[bp] |
|||
_arg = _arg + 2 |
|||
havtyp = 1 |
|||
endif |
|||
ifidn <type>,<dword> |
|||
aname equ dword ptr _arg[bp] |
|||
_arg = _arg + 4 |
|||
havtyp = 1 |
|||
endif |
|||
ifidn <type>,<cdouble> |
|||
aname equ qword ptr _arg[bp] |
|||
_arg = _arg + 8 |
|||
havtyp = 1 |
|||
endif |
|||
ifidn <type>, <ptr> |
|||
ifdef LONGPTR |
|||
aname equ dword ptr _arg[bp] |
|||
_arg = _arg + 4 |
|||
else |
|||
aname equ word ptr _arg[bp] |
|||
_arg = _arg + 2 |
|||
endif |
|||
havtyp = 1 |
|||
endif |
|||
ifidn <type>, <fptr> |
|||
ifdef FARPROC |
|||
aname equ dword ptr _arg[bp] |
|||
_arg = _arg + 4 |
|||
else |
|||
aname equ word ptr _arg[bp] |
|||
_arg = _arg + 2 |
|||
endif |
|||
havtyp = 1 |
|||
endif |
|||
ifidn <type>, <word> |
|||
aname equ word ptr _arg[bp] |
|||
_arg = _arg + 2 |
|||
havtyp = 1 |
|||
endif |
|||
ife havtyp |
|||
error -- type is unknown. |
|||
endif |
|||
endm |
|||
|
|||
;this macro loads an arg pointer into DEST, with optional SEGment |
|||
ldptr macro dest, argname, seg |
|||
ifdef LONGPTR |
|||
ifnb <seg> ;;get segment if specified |
|||
ifidn <seg>,<es> |
|||
les dest,argname |
|||
else |
|||
ifidn <seg>,<ds> |
|||
lds dest,argname |
|||
else |
|||
mov dest, word ptr argname |
|||
mov seg, word ptr argname[2] |
|||
endif |
|||
endif |
|||
else |
|||
ifidn <dest>,<si> ;;si gets seg in ds |
|||
lds si, argname |
|||
else |
|||
ifidn <dest>,<di> ;;or, es:di |
|||
les di, argname |
|||
else |
|||
garbage error: no seg for long pointer |
|||
endif |
|||
endif |
|||
endif |
|||
else |
|||
mov dest, word ptr argname ;;get the pointer |
|||
ENDIF |
|||
ENDM |
|||
|
|||
decll macro list |
|||
IRP i,<list> |
|||
decl i |
|||
ENDM |
|||
ENDM |
|||
|
|||
pend macro pname |
|||
pname&_ endp |
|||
endm |
|||
|
|||
retptrm macro src,seg |
|||
mov ax, word ptr src |
|||
ifdef LONGPTR |
|||
mov dx, word ptr src+2 |
|||
endif |
|||
endm |
|||
|
|||
retptrr macro src,seg |
|||
mov ax,src |
|||
ifdef LONGPTR |
|||
ifnb <seg> |
|||
mov dx, seg |
|||
endif |
|||
endif |
|||
endm |
|||
|
|||
retnull macro |
|||
ifdef LONGPTR |
|||
sub dx,dx |
|||
endif |
|||
sub ax,ax |
|||
endm |
|||
|
|||
pushds macro |
|||
ifdef LONGPTR |
|||
push ds |
|||
endif |
|||
endm |
|||
|
|||
popds macro |
|||
ifdef LONGPTR |
|||
pop ds |
|||
endif |
|||
endm |
|||
|
|||
finish macro |
|||
codeseg ends |
|||
endm |
|||
|
|||
list |
|||
codeseg segment byte public 'code' |
|||
assume cs:codeseg |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,8 @@ |
|||
|
|||
|
|||
hello.cmd: hello.c |
|||
cc hello |
|||
ln -o hello.cmd hello.o -lc |
|||
|
|||
clean: |
|||
erase hello.cmd |
|||
@ -0,0 +1 @@ |
|||
z:mount i /Users/doug/Downloads/azcpm32d |
|||
@ -0,0 +1,11 @@ |
|||
double sin(), cos(), tan(), cotan(); |
|||
double asin(), acos(), atan(), atan2(); |
|||
double ldexp(), frexp(), modf(); |
|||
double floor(), ceil(), fabs(); |
|||
double log(), log10(), exp(), sqrt(), pow(); |
|||
double sinh(), cosh(), tanh(); |
|||
|
|||
#define HUGE_VAL 1.79e+308 |
|||
#define LOGHUGE 709.778 |
|||
#define TINY_VAL 2.2e-308 |
|||
#define LOGTINY -708.396 |
|||
@ -0,0 +1,2 @@ |
|||
extern char *memcpy(), *memchr(), *memcpy(), memset(); |
|||
extern int memcmp(); |
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,55 @@ |
|||
/* regs.h for aztec.c (C) Copyright Bill Buckels 2008. All rights reserved. */ |
|||
|
|||
#ifndef REGS_DEFINED |
|||
|
|||
/* word registers */ |
|||
/* different than M$oft so don't mix the two */ |
|||
struct WORDREGS { |
|||
unsigned int ax; |
|||
unsigned int bx; |
|||
unsigned int cx; |
|||
unsigned int dx; |
|||
unsigned int si; |
|||
unsigned int di; |
|||
unsigned int ds; |
|||
unsigned int es; |
|||
}; |
|||
|
|||
/* byte registers */ |
|||
/* I made these the same as M$oft since
|
|||
the first 6 word regs are the same between the two */ |
|||
struct BYTEREGS { |
|||
unsigned char al, ah; |
|||
unsigned char bl, bh; |
|||
unsigned char cl, ch; |
|||
unsigned char dl, dh; |
|||
}; |
|||
|
|||
/* general purpose registers union -
|
|||
* overlays the corresponding word and byte registers. |
|||
*/ |
|||
|
|||
union REGS { |
|||
struct WORDREGS x; |
|||
struct BYTEREGS h; |
|||
}; |
|||
|
|||
|
|||
/* segment registers */ |
|||
/* different than M$oft so don't mix the two */ |
|||
struct SREGS { |
|||
unsigned int cs; |
|||
unsigned int ss; |
|||
unsigned int ds; |
|||
unsigned int es; |
|||
}; |
|||
|
|||
|
|||
/* the following makes it a little easier
|
|||
to port code from M$soft and Turbo C |
|||
over to Aztec C unless you want to be |
|||
an Aztec C purist */ |
|||
#define int86(x,y,z) sysint(x,y,z) |
|||
|
|||
#define REGS_DEFINED 1 |
|||
#endif |
|||
Binary file not shown.
@ -0,0 +1,5 @@ |
|||
typedef int VISIT; |
|||
#define preorder 1 |
|||
#define postorder 2 |
|||
#define endorder 3 |
|||
#define leaf 4 |
|||
@ -0,0 +1,4 @@ |
|||
/* Copyright (C) 1983 by Manx Software Systems */ |
|||
#define JBUFSIZE (6*sizeof(int)) |
|||
|
|||
typedef char jmp_buf[JBUFSIZE]; |
|||
@ -0,0 +1,19 @@ |
|||
/* Copyright (C) 1983 by Manx Software Systems */ |
|||
|
|||
#define TIOCGETP 0 /* read contents of tty control structure */ |
|||
#define TIOCSETP 1 /* set contents of tty control structure */ |
|||
#define TIOCSETN 1 /* ditto only don't wait for output to flush */ |
|||
|
|||
struct sgttyb { |
|||
char sg_erase; /* ignored */ |
|||
char sg_kill; /* ignored */ |
|||
short sg_flags; /* control flags */ |
|||
}; |
|||
|
|||
/* settings for flags */ |
|||
#define _VALID 0x3a |
|||
#define RAW 0x20 /* no echo or mapping of input/output BDOS(6) */ |
|||
#define CRMOD 0x10 /* map input CR to NL, output NL to CR LF */ |
|||
#define ECHO 0x08 /* ignored unless CBREAK is set */ |
|||
#define CBREAK 0x02 /* input using BDOS(1), unless echo off then */ |
|||
/* same as RAW */ |
|||
@ -0,0 +1,15 @@ |
|||
/* Copyright (C) 1985 by Manx Software Systems, Inc. */ |
|||
|
|||
#define SIG_DFL ((void (*)())0) |
|||
#define SIG_IGN ((void (*)())1) |
|||
#define SIG_ERR ((void (*)())-1) |
|||
|
|||
#define SIGINT 1 |
|||
#define SIGTERM 2 |
|||
#define SIGABRT 3 |
|||
#define SIGFPE 4 |
|||
#define SIGILL 5 |
|||
#define SIGSEGV 6 |
|||
|
|||
#define _NUMSIG 6 |
|||
#define _FSTSIG 1 |
|||
Binary file not shown.
@ -0,0 +1,29 @@ |
|||
/* Copyright (C) 1984 by Manx Software Systems */ |
|||
|
|||
struct stat { |
|||
char st_attr; |
|||
long st_mtime; |
|||
long st_size; |
|||
}; |
|||
|
|||
/* settings of the st_attr field */ |
|||
#define ST_RDONLY 0x01 /* read only file */ |
|||
#define ST_HIDDEN 0x02 /* hidden file */ |
|||
#define ST_SYSTEM 0x04 /* system file */ |
|||
#define ST_VLABEL 0x08 /* volume label */ |
|||
#define ST_DIRECT 0x10 /* file is a sub-directory */ |
|||
#define ST_ARCHIV 0x20 /* set when file has been written and closed */ |
|||
|
|||
/* the format of the st_mtime field is:
|
|||
< year > < month> < day > < hours > < minutes > < sec/2 > |
|||
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 |
|||
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 |
|||
|
|||
where: |
|||
year is from 0-119 for 1980-2099 |
|||
month is 1-12 |
|||
day is 1-31 |
|||
hours is 0-23 |
|||
minutes is 0-59 |
|||
sec/2 is 0-29 |
|||
*/ |
|||
@ -0,0 +1,45 @@ |
|||
/* Copyright (C) 1982, 1984 by Manx Software Systems */ |
|||
#define fgetc getc |
|||
#define fputc putc |
|||
#define NULL (void *)0 |
|||
#define EOF -1 |
|||
|
|||
|
|||
#define BUFSIZ 1024 |
|||
#define MAXSTREAM 20 |
|||
|
|||
#define _BUSY 0x01 |
|||
#define _ALLBUF 0x02 |
|||
#define _DIRTY 0x04 |
|||
#define _EOF 0x08 |
|||
#define _IOERR 0x10 |
|||
#define _TEMP 0x20 /* temporary file (delete on close) */ |
|||
|
|||
typedef struct { |
|||
char *_bp; /* current position in buffer */ |
|||
char *_bend; /* last character in buffer + 1 */ |
|||
char *_buff; /* address of buffer */ |
|||
char _flags; /* open mode, etc. */ |
|||
char _unit; /* token returned by open */ |
|||
char _bytbuf; /* single byte buffer for unbuffer streams */ |
|||
int _buflen; /* length of buffer */ |
|||
char *_tmpname; /* name of file for temporaries */ |
|||
} FILE; |
|||
|
|||
extern FILE Cbuffs[]; |
|||
FILE *fopen(); |
|||
long ftell(); |
|||
|
|||
#define stdin (&Cbuffs[0]) |
|||
#define stdout (&Cbuffs[1]) |
|||
#define stderr (&Cbuffs[2]) |
|||
#define getchar() agetc(stdin) |
|||
#define putchar(c) aputc(c, stdout) |
|||
#define feof(fp) (((fp)->_flags&_EOF)!=0) |
|||
#define ferror(fp) (((fp)->_flags&_IOERR)!=0) |
|||
#define clearerr(fp) ((fp)->_flags &= ~(_IOERR|_EOF)) |
|||
#define fileno(fp) ((fp)->_unit) |
|||
#define fflush(fp) flsh_(fp,-1) |
|||
|
|||
#define P_tmpdir "" |
|||
#define L_tmpnam 40 |
|||
@ -0,0 +1,22 @@ |
|||
/* Copyright (C) 1984, 1985 by Manx Software Systems */ |
|||
|
|||
#define CLK_TCK 100 |
|||
typedef long time_t; |
|||
typedef long clock_t; |
|||
|
|||
struct tm { |
|||
short tm_sec; |
|||
short tm_min; |
|||
short tm_hour; |
|||
short tm_mday; |
|||
short tm_mon; |
|||
short tm_year; |
|||
short tm_wday; |
|||
short tm_yday; |
|||
short tm_isdst; |
|||
short tm_hsec; |
|||
}; |
|||
|
|||
struct tm *gmtime(), *localtime(); |
|||
char *asctime(), *ctime(); |
|||
time_t time(); |
|||
@ -0,0 +1,8 @@ |
|||
/* cpmappl.h */ |
|||
|
|||
extern banner(); |
|||
|
|||
/*******************/ |
|||
/* eof - cpmappl.h */ |
|||
/*******************/ |
|||
|
|||
@ -0,0 +1,53 @@ |
|||
/* cpmbdos.h 6/11/2012 dwg - */ |
|||
|
|||
#define TERMCPM 0 |
|||
#define CONIN 1 |
|||
#define CWRITE 2 |
|||
#define DIRCONIO 6 |
|||
#define PRINTSTR 9 |
|||
#define RDCONBUF 10 |
|||
#define GETCONST 11 |
|||
#define RETVERNUM 12 |
|||
#define RESDISKSYS 13 |
|||
#define SELECTDISK 14 |
|||
#define FOPEN 15 |
|||
#define FCLOSE 16 |
|||
#define SEARCHFIRST 17 |
|||
#define SEARCHNEXT 18 |
|||
#define FDELETE 19 |
|||
#define FREADSEQ 20 |
|||
#define FWRITESEQ 21 |
|||
#define FMAKEFILE 22 |
|||
#define FRENAME 23 |
|||
#define RETLOGINVEC 24 |
|||
#define RETCURRDISK 25 |
|||
#define SETDMAADDR 26 |
|||
#define GETALLOCVEC 27 |
|||
#define WRPROTDISK 28 |
|||
#define GETROVECTOR 29 |
|||
#define FSETATTRIB 30 |
|||
#define GETDPBADDR 31 |
|||
#define SETGETUSER 32 |
|||
#define FREADRANDOM 33 |
|||
#define FWRITERAND 34 |
|||
#define FCOMPSIZE 35 |
|||
#define SETRANDREC 36 |
|||
#define RESETDRIVE 37 |
|||
#define WRRANDFILL 38 |
|||
|
|||
#define BDOSDRA 1 |
|||
#define BDOSDRB 2 |
|||
#define BDOSDRC 3 |
|||
#define BDOSDRD 4 |
|||
#define BDOSDRE 5 |
|||
#define BDOSDRF 6 |
|||
#define BDOSDRG 7 |
|||
#define BDOSDRH 8 |
|||
|
|||
struct FCB { |
|||
char drive; |
|||
char filename[8]; |
|||
char filetype[3]; |
|||
char filler[24]; |
|||
}; |
|||
|
|||
@ -0,0 +1,682 @@ |
|||
/* cpmbind.h 5/21/2012 dwg - added b1f0peek and b1f0poke */ |
|||
/* cpmbind.h 3/16/2012 dgw - created */ |
|||
|
|||
|
|||
#define CR 0x0d |
|||
#define LF 0x0a |
|||
#define ESC 27 |
|||
|
|||
#define BIOSAD 0x0e600 |
|||
#define pTermType 0x0E679 |
|||
|
|||
/*************************/ |
|||
/* BIOS Memory Locations */ |
|||
/*************************/ |
|||
|
|||
#define CURDRV 0x00004 |
|||
#define BIOSAD 0x0e600 |
|||
|
|||
#define pBOOT 0x0E600 |
|||
#define pWBOOT 0x0E603 |
|||
#define pCONST 0x0E606 |
|||
#define pCONIN 0x0E609 |
|||
#define pCONOUT 0x0E60C |
|||
#define pLIST 0x0E60F |
|||
#define pPUNCH 0x0E612 |
|||
#define pREADER 0x0E615 |
|||
#define pHOME 0x0E618 |
|||
#define pSELDSK 0x0E61B |
|||
#define pSETTRK 0x0E61E |
|||
#define pSETSEC 0x0E621 |
|||
#define pSETDMA 0x0E624 |
|||
#define pREAD 0x0E627 |
|||
#define pWRITE 0x0E62A |
|||
#define pLISTST 0x0E62D |
|||
#define pSECTRN 0x0E630 |
|||
#define pBNKSEL 0x0E633 |
|||
#define pGETLU 0x0E636 |
|||
#define pSETLU 0x0E639 |
|||
#define pGETINFO 0x0E63C |
|||
#define pB1F0PEEK 0x0E63F |
|||
#define pB1F0POKE 0x0E642 |
|||
|
|||
/*
|
|||
|
|||
struct JMP { |
|||
unsigned char opcode; |
|||
unsigned int address; |
|||
}; |
|||
|
|||
struct BIOS { |
|||
struct JMP boot; |
|||
struct JMP wboot; |
|||
struct JMP const; |
|||
struct JMP conin; |
|||
struct JMP conout; |
|||
struct JMP list; |
|||
struct JMP punch; |
|||
struct JMP reader; |
|||
struct JMP home; |
|||
struct JMP seldsk; |
|||
struct JMP settrk; |
|||
struct JMP setsec; |
|||
struct JMP setdma; |
|||
struct JMP read; |
|||
struct JMP write; |
|||
struct JMP listst; |
|||
struct JMP sectrn; |
|||
struct JMP bnksel; |
|||
struct JMP getlu; |
|||
struct JMP setlu; |
|||
struct JMP getinfo; |
|||
struct JMP b1f0peek; |
|||
struct JMP b1f0poke; |
|||
struct JMP res1; |
|||
struct JMP res2; |
|||
|
|||
char rmj; |
|||
char rmn; |
|||
char rup; |
|||
char rtp; |
|||
char diskboot; |
|||
char bootdrive; |
|||
char timedate[6]; |
|||
char cpufreq; |
|||
char platform; |
|||
char dioplat; |
|||
char vduplt; |
|||
unsigned int romsize; |
|||
unsigned int ramsize; |
|||
char clrramdisk; |
|||
char dskyenable; |
|||
char uartenable; |
|||
char vduenable; |
|||
char fdenable; |
|||
char fdtrace; |
|||
char fdmedia; |
|||
char fdmediaalt; |
|||
char fdmauto; |
|||
char ideenable; |
|||
char idetrace; |
|||
char ide8bit; |
|||
unsigned int idecapacity; |
|||
char ppideenable; |
|||
char ppidetrace; |
|||
char ppide8bit; |
|||
unsigned int ppidecapacity; |
|||
char ppideslow; |
|||
char boottype; |
|||
char boot_timeout; |
|||
char boot_default; |
|||
unsigned int baudrate; |
|||
char clkdiv; |
|||
char memwait; |
|||
char iowait; |
|||
char cntlb0; |
|||
char cntlb1; |
|||
char sdenable; |
|||
char sdtrace; |
|||
unsigned int sdcapacity; |
|||
char sdcsio; |
|||
char sdcsiofast; |
|||
char defiobyte; |
|||
char termtype; |
|||
unsigned int revision; |
|||
char prpsdenable; |
|||
char prpsdtrace; |
|||
char prpsdcapacity; |
|||
char prpconenable; |
|||
unsigned int biossize; |
|||
}; |
|||
|
|||
*/ |
|||
|
|||
/*
|
|||
|
|||
|
|||
*/ |
|||
|
|||
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */ |
|||
|
|||
extern char irega; |
|||
extern unsigned int iregbc; |
|||
extern unsigned int iregde; |
|||
extern unsigned int ireghl; |
|||
extern bioscall(); |
|||
|
|||
|
|||
/*********************/ |
|||
/* BDOS Declarations */ |
|||
/*********************/ |
|||
|
|||
#define TERMCPM 0 |
|||
#define CONIN 1 |
|||
#define CWRITE 2 |
|||
#define DIRCONIO 6 |
|||
#define PRINTSTR 9 |
|||
#define RDCONBUF 10 |
|||
#define GETCONST 11 |
|||
#define RETVERNUM 12 |
|||
#define RESDISKSYS 13 |
|||
#define SELECTDISK 14 |
|||
#define FOPEN 15 |
|||
#define FCLOSE 16 |
|||
#define SEARCHFIRST 17 |
|||
#define SEARCHNEXT 18 |
|||
#define FDELETE 19 |
|||
#define FREADSEQ 20 |
|||
#define FWRITESEQ 21 |
|||
#define FMAKEFILE 22 |
|||
#define FRENAME 23 |
|||
#define RETLOGINVEC 24 |
|||
#define RETCURRDISK 25 |
|||
#define SETDMAADDR 26 |
|||
#define GETALLOCVEC 27 |
|||
#define WRPROTDISK 28 |
|||
#define GETROVECTOR 29 |
|||
#define FSETATTRIB 30 |
|||
#define GETDPBADDR 31 |
|||
#define SETGETUSER 32 |
|||
#define FREADRANDOM 33 |
|||
#define FWRITERAND 34 |
|||
#define FCOMPSIZE 35 |
|||
#define SETRANDREC 36 |
|||
#define RESETDRIVE 37 |
|||
#define WRRANDFILL 38 |
|||
|
|||
#define DRIVEA 0 |
|||
|
|||
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */ |
|||
|
|||
extern char drega; |
|||
extern unsigned int dregbc; |
|||
extern unsigned int dregde; |
|||
extern unsigned int dreghl; |
|||
extern bdoscall(); |
|||
|
|||
/* std.h 3/11/2012 dwg - c version of std.asm */ |
|||
|
|||
#define TERM_TTY 0 |
|||
#define TERM_ANSI 1 |
|||
#define TERM_WYSE 2 |
|||
#define TERM_VT52 3 |
|||
|
|||
#define DEV_MD 0x00 |
|||
#define DEV_FD 0x10 |
|||
#define DEV_IDE 0x20 |
|||
#define DEV_ATAPI 0x30 |
|||
#define DEV_PPIDE 0x40 |
|||
#define DEV_SD 0x50 |
|||
#define DEV_PRPSD 0x60 |
|||
|
|||
#define PLT_N8VEM 1 |
|||
#define PLT_ZETA 2 |
|||
#define PLT_N8 3 |
|||
|
|||
|
|||
/*
|
|||
|
|||
|
|||
; std.lib 2/21/2012 dwg - added TERM$VT52 |
|||
|
|||
; TRUE equ 1 |
|||
; FALSE equ 00 |
|||
; |
|||
; PRIMARY HARDWARE PLATFORMS |
|||
; PLT$N8VEM equ 1 ; N8VEM ECB Z80 SBC |
|||
; PLT$ZETA equ 2 ; ZETA Z80 SBC |
|||
; PLT$N8 equ 3 ; N8 (HOME COMPUTER) Z180 SBC |
|||
; |
|||
; BOOT STYLE |
|||
; BT$MENU equ 1 ; WAIT FOR MENU SELECTION AT LOADER PROMPT |
|||
; BT$AUTO equ 2 ; AUTO SELECT BOOT$DEFAULT AFTER BOOT$TIMEOUT |
|||
; |
|||
; VDU PLATFORM SELECTIONS |
|||
; |
|||
; |
|||
; VDUPLT$NONE equ 0 ; NO VDU |
|||
; VDUPLT$VDU equ 1 ; ORIGINAL ECB VDU (6545 CHIP) |
|||
; VDUPLT$VDUC equ 2 ; ECB VDU COLOR (PENDING HARDWARE DEVELOPMENT) |
|||
; VDUPLT$PROPIO equ 3 ; ECB PROPIO (NOT IMPLEMENTED) |
|||
; VDUPLT$N8 equ 4 ; N8 ONBOARD VIDEO SUBSYSTEM (NOT IMPLEMENTED) |
|||
; |
|||
; RAM DISK INITIALIZATION OPTIONS |
|||
; CLR$NEVER equ 0 ; NEVER CLEAR RAM DISK |
|||
; CLR$AUTO equ 1 ; CLEAR RAM DISK IF INVALID DIR ENTRIES |
|||
; CLR$ALWAYS equ 2 ; ALWAYS CLEAR RAM DISK |
|||
; |
|||
; |
|||
; ; DISK MAP SELECTION OPTIONS |
|||
; |
|||
; DM$ROM equ 1 ; ROM DRIVE PRIORITY |
|||
; DM$RAM equ 2 ; RAM DRIVE PRIORITY |
|||
; DM$FD equ 3 ; FLOPPY DRIVE PRIORITY |
|||
; DM$IDE equ 4 ; IDE DRIVE PRIORITY |
|||
; DM$PPIDE equ 5 ; PPIDE DRIVE PRIORITY |
|||
; DM$SD equ 6 ; SD DRIVE PRIORITY |
|||
; DM$PRPSD equ 7 ; PROPIO SD DRIVE PRIORITY |
|||
; |
|||
; |
|||
; ; FLOPPY DISK MEDIA SELECTIONS (ID'S MUST BE INDEX OF ENTRY IN FCD$TBL) |
|||
; |
|||
; |
|||
; FDM720 equ 0 ; 3.5" FLOPPY, 720KB, 2 SIDES, 80 TRKS, 9 SECTORS |
|||
; FDM144 equ 1 ; 3.5" FLOPPY, 1.44MB, 2 SIDES, 80 TRKS, 18 SECTORS |
|||
; FDM360 equ 2 ; 5.25" FLOPPY, 360KB, 2 SIDES, 40 TRKS, 9 SECTORS |
|||
; FDM120 equ 3 ; 3.5" FLOPPY, 1.2MB, 2 SIDES, 80 TRKS, 15 SECTORS |
|||
; |
|||
; |
|||
; ; DISK PLATFORM SELECTIONS |
|||
; |
|||
; DIOPLT$NONE equ 0 ; NO DISK IO HARDWARE |
|||
; DIOPLT$DISKIO equ 1 ; N8VEM ECB DISK IO BOARD |
|||
; DIOPLT$ZETA equ 2 ; ZETA BUILT-IN DISK IO SECTION |
|||
; DIOPLT$DIDE equ 3 ; N8VEM ECB DUAL IDE W/ FLOPPY BOARD |
|||
; DIOPLT$N8 equ 4 ; N8 BUILT-IN DISK IO SECTION |
|||
; DIOPLT$DISKIO3 equ 5 ; N8VEM ECB DISK IO V3 BOARD |
|||
; |
|||
; CONSOLE DEVICE CHOICES FOR LDRCON AND DBGCON IN CONFIG SETTINGS |
|||
; |
|||
; CON$UART equ 1 |
|||
; CON$VDU equ 2 |
|||
; CON$PRP equ 3 |
|||
; |
|||
; CONSOLE TERMINAL TYPE CHOICES |
|||
; |
|||
TERM$TTY equ 0 |
|||
TERM$ANSI equ 1 |
|||
TERM$WYSE equ 2 |
|||
TERM$VT52 equ 3 |
|||
; |
|||
; |
|||
; ; SYSTEM GENERATION SETTINGS |
|||
; |
|||
; SYS$CPM equ 1 ; CPM (IMPLIES BDOS + CCP) |
|||
; SYS$ZSYS equ 2 ; ZSYSTEM OS (IMPLIES ZSDOS + ZCPR) |
|||
; |
|||
; DOS$BDOS equ 1 ; BDOS |
|||
; DOS$ZDDOS equ 2 ; ZDDOS VARIANT OF ZSDOS |
|||
; DOS$ZSDOS equ 3 ; ZSDOS |
|||
; |
|||
; CP$CCP equ 1 ; CCP COMMAND PROCESSOR |
|||
; CP$ZCPR equ 2 ; ZCPR COMMAND PROCESSOR |
|||
; |
|||
; CONFIGURE DOS (DOS) AND COMMAND PROCESSOR (CP) BASED ON SYSTEM SETTING (SYS) |
|||
; |
|||
; |
|||
; #IFNDEF BLD$SYS |
|||
; SYS equ SYS$CPM |
|||
; #ELSE |
|||
; SYS equ BLD$SYS |
|||
; #ENDIF |
|||
; |
|||
; #IF (SYS == SYS$CPM) |
|||
; DOS equ DOS$BDOS |
|||
; CP equ CP$CCP |
|||
; #DEFINE OSLBL "CP/M-80 2.2C" |
|||
; #ENDIF |
|||
; |
|||
; #IF (SYS == SYS$ZSYS) |
|||
; DOS equ DOS$ZSDOS |
|||
; CP equ CP$ZCPR |
|||
; #DEFINE OSLBL "ZSYSTEM (ZSDOS 1.2, ZCPR 1.0)" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; ; INCLUDE VERSION AND BUILD SETTINGS |
|||
; |
|||
; #INCLUDE "ver.inc" ; ADD BIOSVER |
|||
; |
|||
; |
|||
; #INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE |
|||
; |
|||
; |
|||
; #IF (PLATFORM NE PLT$N8) |
|||
; |
|||
; |
|||
; ; N8VEM HARDWARE IO PORT ADDRESSES AND MEMORY LOCATIONS |
|||
; MPCL$RAM equ 78H ; BASE IO ADDRESS OF RAM MEMORY PAGER CONFIGURATION LATCH |
|||
; MPCL$ROM equ 7CH ; BASE IO ADDRESS OF ROM MEMORY PAGER CONFIGURATION LATCH |
|||
; |
|||
; |
|||
; ; HARDWARE INTERFACES |
|||
; |
|||
; PIO 82C55 I/O IS DECODED TO PORT 60-67 |
|||
; PIOA equ 60H ; PORT A |
|||
; PIOB equ 61H ; PORT B |
|||
; PIOC equ 62H ; PORT C |
|||
; PIOX equ 63H ; PIO CONTROL PORT |
|||
; |
|||
; 16C550 SERIAL LINE UART |
|||
; |
|||
; SIO$BASE equ 68H |
|||
; SIO$RBR equ SIO$BASE + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY) |
|||
; SIO$THR equ SIO$BASE + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY) |
|||
; SIO$IER equ SIO$BASE + 1 ; DLAB=0: INT ENABLE REG |
|||
; SIO$IIR equ SIO$BASE + 2 ; INT IDENT REGISTER (READ ONLY) |
|||
; SIO$FCR equ SIO$BASE + 2 ; FIFO CONTROL REG (WRITE ONLY) |
|||
; SIO$LCR equ SIO$BASE + 3 ; LINE CONTROL REG |
|||
; SIO$MCR equ SIO$BASE + 4 ; MODEM CONTROL REG |
|||
; SIO$LSR equ SIO$BASE + 5 ; LINE STATUS REG |
|||
; SIO$MSR equ SIO$BASE + 6 ; MODEM STATUS REG |
|||
; SIO$SCR equ SIO$BASE + 7 ; SCRATCH REGISTER |
|||
; SIO$DLL equ SIO$BASE + 0 ; DLAB=1: DIVISOR LATCH (LS) |
|||
; SIO$DLM equ SIO$BASE + 1 ; DLAB=1: DIVISOR LATCH (MS) |
|||
; #ENDIF ; (PLATFORM NE PLT$N8) |
|||
; |
|||
; |
|||
; #IF (PLATFORM NE PLT$N8) |
|||
; |
|||
; |
|||
; ; Z180 REGISTERS |
|||
; |
|||
; |
|||
; CPU$IOBASE equ 40H ; ONLY RELEVANT FOR Z180 |
|||
; CPU$CNTLA0 equ CPU$IOBASE+$00 ;ASCI0 control A |
|||
; CPU$CNTLA1 equ CPU$IOBASE+$01 ;ASCI1 control A |
|||
; CPU$CNTLB0 equ CPU$IOBASE+$02 ;ASCI0 control B |
|||
; CPU$CNTLB1 equ CPU$IOBASE+$03 ;ASCI1 control B |
|||
; CPU$STAT0 equ CPU$IOBASE+$04 ;ASCI0 status |
|||
; CPU$STAT1 equ CPU$IOBASE+$05 ;ASCI1 status |
|||
; CPU$TDR0 equ CPU$IOBASE+$06 ;ASCI0 transmit |
|||
; CPU$TDR1 equ CPU$IOBASE+$07 ;ASCI1 transmit |
|||
; CPU$RDR0 equ CPU$IOBASE+$08 ;ASCI0 receive |
|||
; CPU$RDR1 equ CPU$IOBASE+$09 ;ASCI1 receive |
|||
; CPU$CNTR equ CPU$IOBASE+$0A ;CSI/O control |
|||
; CPU$TRDR equ CPU$IOBASE+$0B ;CSI/O transmit/receive |
|||
; CPU$TMDR0L equ CPU$IOBASE+$0C ;Timer 0 data lo |
|||
; CPU$TMDR0H equ CPU$IOBASE+$0D ;Timer 0 data hi |
|||
; CPU$RLDR0L equ CPU$IOBASE+$0E ;Timer 0 reload lo |
|||
; CPU$RLDR0H equ CPU$IOBASE+$0F ;Timer 0 reload hi |
|||
; CPU$TCR equ CPU$IOBASE+$10 ;Timer control |
|||
; CPU$ASEXT0 equ CPU$IOBASE+$12 ;ASCI0 extension control (Z8S180) |
|||
; CPU$ASEXT1 equ CPU$IOBASE+$13 ;ASCI1 extension control (Z8S180) |
|||
; CPU$TMDR1L equ CPU$IOBASE+$14 ;Timer 1 data lo |
|||
; CPU$TMDR1H equ CPU$IOBASE+$15 ;Timer 1 data hi |
|||
; CPU$RLDR1L equ CPU$IOBASE+$16 ;Timer 1 reload lo |
|||
; CPU$RLDR1H equ CPU$IOBASE+$17 ;Timer 1 reload hi |
|||
; CPU$FRC equ CPU$IOBASE+$18 ;Free running counter |
|||
; CPU$ASTC0L equ CPU$IOBASE+$1A ;ASCI0 Time constant lo (Z8S180) |
|||
; CPU$ASTC0H equ CPU$IOBASE+$1B ;ASCI0 Time constant hi (Z8S180) |
|||
; CPU$ASTC1L equ CPU$IOBASE+$1C ;ASCI1 Time constant lo (Z8S180) |
|||
; CPU$ASTC1H equ CPU$IOBASE+$1D ;ASCI1 Time constant hi (Z8S180) |
|||
; CPU$CMR equ CPU$IOBASE+$1E ;Clock multiplier (latest Z8S180) |
|||
; CPU$CCR equ CPU$IOBASE+$1F ;CPU control (Z8S180) |
|||
; CPU$SAR0L equ CPU$IOBASE+$20 ;DMA0 source addr lo |
|||
; CPU$SAR0H equ CPU$IOBASE+$21 ;DMA0 source addr hi |
|||
; CPU$SAR0B equ CPU$IOBASE+$22 ;DMA0 source addr bank |
|||
; CPU$DAR0L equ CPU$IOBASE+$23 ;DMA0 dest addr lo |
|||
; CPU$DAR0H equ CPU$IOBASE+$24 ;DMA0 dest addr hi |
|||
; CPU$DAR0B equ CPU$IOBASE+$25 ;DMA0 dest addr bank |
|||
; CPU$BCR0L equ CPU$IOBASE+$26 ;DMA0 byte count lo |
|||
; CPU$BCR0H equ CPU$IOBASE+$27 ;DMA0 byte count hi |
|||
; CPU$MAR1L equ CPU$IOBASE+$28 ;DMA1 memory addr lo |
|||
; CPU$MAR1H equ CPU$IOBASE+$29 ;DMA1 memory addr hi |
|||
; CPU$MAR1B equ CPU$IOBASE+$2A ;DMA1 memory addr bank |
|||
; CPU$IAR1L equ CPU$IOBASE+$2B ;DMA1 I/O addr lo |
|||
; CPU$IAR1H equ CPU$IOBASE+$2C ;DMA1 I/O addr hi |
|||
; CPU$IAR1B equ CPU$IOBASE+$2D ;DMA1 I/O addr bank (Z8S180) |
|||
; CPU$BCR1L equ CPU$IOBASE+$2E ;DMA1 byte count lo |
|||
; CPU$BCR1H equ CPU$IOBASE+$2F ;DMA1 byte count hi |
|||
; CPU$DSTAT equ CPU$IOBASE+$30 ;DMA status |
|||
; CPU$DMODE equ CPU$IOBASE+$31 ;DMA mode |
|||
; CPU$DCNTL equ CPU$IOBASE+$32 ;DMA/WAIT control |
|||
; CPU$IL equ CPU$IOBASE+$33 ;Interrupt vector load |
|||
; CPU$ITC equ CPU$IOBASE+$34 ;INT/TRAP control |
|||
; CPU$RCR equ CPU$IOBASE+$36 ;Refresh control |
|||
; CPU$CBR equ CPU$IOBASE+$38 ;MMU common base register |
|||
; CPU$BBR equ CPU$IOBASE+$39 ;MMU bank base register |
|||
; CPU$CBAR equ CPU$IOBASE+$3A ;MMU common/bank area register |
|||
; CPU$OMCR equ CPU$IOBASE+$3E ;Operation mode control |
|||
; CPU$ICR equ $3F ;I/O control register (not relocated) |
|||
; |
|||
; N8 ONBOARD I/O REGISTERS |
|||
; N8$IOBASE equ $80 |
|||
; PIO equ N8$IOBASE+$00 |
|||
; PIOA equ PIO+$00 ; PORT A |
|||
; PIOB equ PIO+$01 ; PORT B |
|||
; PIOC equ PIO+$02 ; PORT C |
|||
; PIOX equ PIO+$03 ; PIO CONTROL PORT |
|||
; PIO2 equ N8$IOBASE+$04 |
|||
; PIO2A equ PIO2+$00 ; PORT A |
|||
; PIO2B equ PIO2+$01 ; PORT B |
|||
; PIO2C equ PIO2+$02 ; PORT C |
|||
; PIO2X equ PIO2+$03 ; PIO CONTROL PORT |
|||
; |
|||
; RTC equ N8$IOBASE+$08 ;RTC latch and buffer |
|||
; FDC equ N8$IOBASE+$0C ;Floppy disk controller |
|||
; UTIL equ N8$IOBASE+$10 ;Floppy disk utility |
|||
; ACR equ N8$IOBASE+$14 ;auxillary control register |
|||
; RMAP equ N8$IOBASE+$16 ;ROM page register |
|||
; VDP equ N8$IOBASE+$18 ;Video Display Processor (TMS9918A) |
|||
; PSG equ N8$IOBASE+$1C ;Programmable Sound Generator (AY-3-8910) |
|||
; |
|||
; DEFACR equ $1B |
|||
; |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; ; CHARACTER DEVICE FUNCTIONS |
|||
; |
|||
; |
|||
; CF$INIT equ 0 |
|||
; CF$IN equ 1 |
|||
; CF$IST equ 2 |
|||
; CF$OUT equ 3 |
|||
; CF$OST equ 4 |
|||
; |
|||
; DISK OPERATIONS |
|||
; DOP$READ equ 0 ; READ OPERATION |
|||
; DOP$WRITE equ 1 ; WRITE OPERATION |
|||
; DOP$FORMAT equ 2 ; FORMAT OPERATION |
|||
; DOP$READID equ 3 ; READ ID OPERATION |
|||
; |
|||
; DISK DRIVER FUNCTIONS |
|||
; DF$READY equ 1 |
|||
; DF$SELECT equ 2 |
|||
; DF$READ equ 3 |
|||
; DF$WRITE equ 4 |
|||
; DF$FORMAT equ 5 |
|||
; |
|||
; DISK DEVICES (ONLY FIRST NIBBLE RELEVANT, SECOND NIBBLE MUST BE ZERO) |
|||
; DEV$MD equ 000H |
|||
; DEV$FD equ 010H |
|||
; DEV$IDE equ 020H |
|||
; DEV$ATAPI equ 030H |
|||
; DEV$PPIDE equ 040H |
|||
; DEV$SD equ 050H |
|||
; DEV$PRPSD equ 060H |
|||
; |
|||
; IMG$START equ 00000H ; IMMUTABLE: ROM IMAGE AREA START |
|||
; IMG$END equ 08000H ; IMMUTABLE: ROM IMAGE AREA END |
|||
; |
|||
; PG0$LOC equ 00000H ; IMMUTABLE |
|||
; PG0$SIZ equ 00100H ; IMMUTABLE |
|||
; PG0$END equ PG0$LOC + PG0$SIZ |
|||
; PG0$IMG equ IMG$START ; IMMUTABLE |
|||
; LDR$LOC equ PG0$END |
|||
; LDR$SIZ equ 02000H - PG0$SIZ ; CONFIGURABLE |
|||
; LDR$END equ LDR$LOC + LDR$SIZ |
|||
; LDR$IMG equ PG0$IMG + PG0$SIZ |
|||
; CPM$LOC equ 0D000H ; CONFIGURABLE: LOCATION OF CPM FOR RUNNING SYSTEM |
|||
; CPM$END equ 10000H ; IMMUTABLE: TOP OF MEMORY |
|||
; CPM$SIZ equ CPM$END - CPM$LOC ; SIZE OF CPM IMAGE (CCP + BDOS + CBIOS (INCLUDING DATA)) |
|||
; CPM$ENT equ CPM$LOC + 01600H ; IMMUTABLE: CPM ENTRY POINT |
|||
; CPM$IMG equ LDR$IMG + LDR$SIZ ; START OF CONCATENATED CPM IMAGE |
|||
; DAT$SIZ equ DATASIZE ; FROM CONFIG FILE |
|||
; DAT$END equ CPM$END |
|||
; DAT$LOC equ DAT$END - DAT$SIZ |
|||
; BIOS$LOC equ CPM$ENT |
|||
; BIOS$END equ DAT$LOC |
|||
; BIOS$SIZ equ DAT$LOC - CPM$ENT |
|||
; MON$IMG equ CPM$IMG + CPM$SIZ ; LOCATION OF MONITOR BINARY IMAGE IN ROM |
|||
; MON$LOC equ 08000H ; LOCATION OF MONITOR FOR RUNNING SYSTEM |
|||
; MON$SIZ equ 01000H ; SIZE OF MONITOR BINARY IMAGE |
|||
; MON$END equ MON$LOC + MON$SIZ |
|||
; MON$DSKY equ MON$LOC ; MONITOR ENTRY (DSKY) |
|||
; MON$UART equ MON$LOC + 3 ; MONITOR ENTRY (UART) |
|||
; ROMX$LOC equ MON$IMG + MON$SIZ ; LOCATION OF ROM EXTENSION CODE |
|||
; |
|||
; |
|||
; ROMX$SIZ equ 02000H ; FIXED |
|||
; ROMX$END equ ROMX$LOC + ROMX$SIZ |
|||
; |
|||
; |
|||
; VDU$LOC equ ROMX$LOC + 0 ; LOCATION OF ROM VDU DRIVER |
|||
; |
|||
; |
|||
; CBIOS$BOOT equ BIOS$LOC + 0 |
|||
; CBIOS$WBOOT equ BIOS$LOC + 3 |
|||
; CBIOS$CONST equ BIOS$LOC + 6 |
|||
; CBIOS$CONIN equ BIOS$LOC + 9 |
|||
; CBIOS$CONOUT equ BIOS$LOC + 12 |
|||
; CBIOS$LIST equ BIOS$LOC + 15 |
|||
; CBIOS$PUNCH equ BIOS$LOC + 18 |
|||
; CBIOS$READER equ BIOS$LOC + 21 |
|||
; CBIOS$HOME equ BIOS$LOC + 24 |
|||
; CBIOS$SELDSK equ BIOS$LOC + 27 |
|||
; CBIOS$SETTRK equ BIOS$LOC + 30 |
|||
; CBIOS$SETSEC equ BIOS$LOC + 33 |
|||
; CBIOS$SETDMA equ BIOS$LOC + 36 |
|||
; CBIOS$READ equ BIOS$LOC + 39 |
|||
; CBIOS$WRITE equ BIOS$LOC + 42 |
|||
; CBIOS$LISTST equ BIOS$LOC + 45 |
|||
; CBIOS$SECTRN equ BIOS$LOC + 48 |
|||
; |
|||
; MEMORY CONFIGURATION |
|||
; |
|||
; MSIZE equ 59 ; CP/M VERSION MEMORY SIZE IN KILOBYTES |
|||
; |
|||
; "BIAS" IS ADDRESS OFFSET FROM 3400H FOR MEMORY SYSTEMS |
|||
; ; THAN 16K (REFERRED TO AS "B" THROUGHOUT THE TEXT) |
|||
; |
|||
; BIAS equ (MSIZE-20)*1024 |
|||
; CCP equ 3400H+BIAS ; BASE OF CCP |
|||
; BDOS equ CCP+806H ; BASE OF BDOS |
|||
; BIOS equ CCP+1600H ; BASE OF BIOS |
|||
; CCPSIZ equ 00800H |
|||
; |
|||
; #IF (PLATFORM == PLT$N8VEM) |
|||
; |
|||
; |
|||
; ; #DEFINE PLATFORM$NAME "N8VEM Z80 SBC" |
|||
; |
|||
; |
|||
; ; #ENDIF |
|||
; |
|||
; |
|||
; ; #IF (PLATFORM == PLT$ZETA) |
|||
; ; #DEFINE PLATFORM$NAME "ZETA Z80 SBC" |
|||
; ; #ENDIF |
|||
; |
|||
; |
|||
; ; #IF (PLATFORM == PLT$N8) |
|||
; ; #DEFINE PLATFORM$NAME "N8 Z180 SBC" |
|||
; ; #ENDIF |
|||
; |
|||
; #IF (DSKYENABLE) |
|||
; ; #DEFINE DSKYLBL ", DSKY" |
|||
; ; #ELSE |
|||
; ; #DEFINE DSKYLBL "" |
|||
; ; #ENDIF |
|||
; |
|||
; #IF (VDUENABLE) |
|||
; #DEFINE VDULBL ", VDU" |
|||
; #ELSE |
|||
; #DEFINE VDULBL "" |
|||
; #ENDIF |
|||
; |
|||
; #IF (DIOPLT NE DIOPLT$NONE) |
|||
; |
|||
; |
|||
; #IF (DIOPLT EQ DIOPLT$DISKIO) |
|||
; #DEFINE DIOLBL ", DISKIO" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; #IF (DIOPLT EQ DIOPLT$ZETA) |
|||
; #DEFINE DIOLBL "" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; #IF (DIOPLT EQ DIOPLT$DIDE) |
|||
; #DEFINE DIOLBL ", DUALIDE" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; #IF (DIOPLT EQ DIOPLT$N8) |
|||
; #DEFINE DIOLBL "" |
|||
; #ENDIF |
|||
; |
|||
; #IF (DIOPLT EQ DIOPLT$DISKIO3) |
|||
; #DEFINE DIOLBL ", DISKIO-V3" |
|||
; #ENDIF |
|||
; |
|||
; #ELSE |
|||
; #DEFINE DIOLBL "" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; ; #ENDIF |
|||
; |
|||
; |
|||
; #IF (FDENABLE) |
|||
; #IF (FDMAUTO) |
|||
; #DEFINE FDLBL ", FLOPPY (AUTOSIZE)" |
|||
; #ELSE |
|||
; #IF (FDMEDIA == FDM720) |
|||
; #DEFINE FDLBL ", FLOPPY (720KB)" |
|||
; #ENDIF |
|||
; #IF (FDMEDIA == FDM144) |
|||
; #DEFINE FDLBL ", FLOPPY (1.44MB)" |
|||
; #ENDIF |
|||
; #ENDIF |
|||
; #ELSE |
|||
; #DEFINE FDLBL "" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; #IF (IDEENABLE) |
|||
; #DEFINE IDELBL ", IDE" |
|||
; #ELSE |
|||
; #DEFINE IDELBL "" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; #IF (PPIDEENABLE) |
|||
; #DEFINE PPIDELBL ", PPIDE" |
|||
; #ELSE |
|||
; #DEFINE PPIDELBL "" |
|||
; #ENDIF |
|||
; |
|||
; #IF (SDENABLE) |
|||
; #DEFINE SDLBL ", SD CARD" |
|||
; #ELSE |
|||
; #DEFINE SDLBL "" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; #IF (PRPSDENABLE) |
|||
; #DEFINE PRPSDLBL ", PROPIO SD CARD" |
|||
; #ELSE |
|||
; #DEFINE PRPSDLBL "" |
|||
; #ENDIF |
|||
; |
|||
; |
|||
; ; .ECHO "Configuration: " |
|||
; ; .ECHO PLATFORM$NAME |
|||
; ; .ECHO DSKYLBL |
|||
; ; .ECHO VDULBL |
|||
; ; .ECHO DIOLBL |
|||
; ; .ECHO FDLBL |
|||
; ; .ECHO IDELBL |
|||
; ; .ECHO PPIDELBL |
|||
; ; .ECHO SDLBL |
|||
; ; .ECHO PRPSDLBL |
|||
; ; .ECHO "\n" |
|||
; ; |
|||
; |
|||
; eof - std.lib |
|||
|
|||
*/ |
|||
|
|||
@ -0,0 +1,104 @@ |
|||
/* cpmbios.h 6/ 4/2012 dwg - added bootlu */ |
|||
/* cpmbios.h 3/11/2012 dwg - added CURDRV */ |
|||
|
|||
/*************************/ |
|||
/* BIOS Memory Locations */ |
|||
/*************************/ |
|||
|
|||
#define CURDRV 0x00004 |
|||
#define BIOSAD 0x0e600 |
|||
|
|||
#define pBOOT 0x0E600 |
|||
#define pWBOOT 0x0E603 |
|||
#define pCONST 0x0E606 |
|||
#define pCONIN 0x0E609 |
|||
#define pCONOUT 0x0E60C |
|||
#define pLIST 0x0E60F |
|||
#define pPUNCH 0x0E612 |
|||
#define pREADER 0x0E615 |
|||
#define pHOME 0x0E618 |
|||
#define pSELDSK 0x0E61B |
|||
#define pSETTRK 0x0E61E |
|||
#define pSETSEC 0x0E621 |
|||
#define pSETDMA 0x0E624 |
|||
#define pREAD 0x0E627 |
|||
#define pWRITE 0x0E62A |
|||
#define pLISTST 0x0E62D |
|||
#define pSECTRN 0x0E630 |
|||
#define pBNKSEL 0x0E633 |
|||
#define pGETLU 0x0E636 |
|||
#define pSETLU 0x0E639 |
|||
#define pGETINFO 0x0E63C |
|||
|
|||
struct JMP { |
|||
unsigned char opcode; |
|||
unsigned int address; |
|||
}; |
|||
|
|||
struct BIOS { |
|||
struct JMP boot; |
|||
struct JMP wboot; |
|||
struct JMP const; |
|||
struct JMP conin; |
|||
struct JMP conout; |
|||
struct JMP list; |
|||
struct JMP punch; |
|||
struct JMP reader; |
|||
struct JMP home; |
|||
struct JMP seldsk; |
|||
struct JMP settrk; |
|||
struct JMP setsec; |
|||
struct JMP setdma; |
|||
struct JMP read; |
|||
struct JMP write; |
|||
struct JMP listst; |
|||
struct JMP sectrn; |
|||
struct JMP bnksel; |
|||
struct JMP getlu; |
|||
struct JMP setlu; |
|||
struct JMP getinfo; |
|||
struct JMP rsvd1; |
|||
struct JMP rsvd2; |
|||
struct JMP rsvd3; |
|||
struct JMP rsvd4; |
|||
|
|||
/* char diskboot;
|
|||
char bootdrive; |
|||
int bootlu; */ |
|||
|
|||
char rmj; |
|||
char rmn; |
|||
char rup; |
|||
char rtp; |
|||
}; |
|||
|
|||
|
|||
struct DPH { |
|||
unsigned int xlt; |
|||
unsigned int rv1; |
|||
unsigned int rv2; |
|||
unsigned int rv3; |
|||
unsigned int dbf; |
|||
unsigned int dpb; |
|||
unsigned int csv; |
|||
unsigned int alv; |
|||
unsigned char sigl; |
|||
unsigned char sigu; |
|||
unsigned int current; |
|||
unsigned int number; |
|||
}; |
|||
|
|||
struct DPB { |
|||
unsigned int spt; |
|||
unsigned char bsh; |
|||
unsigned char blm; |
|||
unsigned char exm; |
|||
unsigned int dsm; |
|||
unsigned int drm; |
|||
unsigned char al0; |
|||
unsigned char al1; |
|||
unsigned int cks; |
|||
unsigned int off; |
|||
}; |
|||
|
|||
|
|||
@ -0,0 +1,86 @@ |
|||
/* cpmname.c 5/21/2012 dwg - */ |
|||
|
|||
#include "stdio.h" |
|||
#include "stdlib.h" |
|||
#include "portab.h" |
|||
#include "memory.h" |
|||
#include "globals.h" |
|||
#include "cpmbind.h" |
|||
#include "applvers.h" |
|||
#include "infolist.h" |
|||
#include "cnfgdata.h" |
|||
#include "syscfg.h" |
|||
#include "diagnose.h" |
|||
#include "std.h" |
|||
|
|||
|
|||
|
|||
extern cnamept1(); |
|||
extern cnamept2(); |
|||
extern cnamept3(); |
|||
extern cnamept4(); |
|||
|
|||
struct SYSCFG * syscfg; |
|||
int line; |
|||
|
|||
int main(argc,argv) |
|||
int argc; |
|||
char *argv[]; |
|||
{ |
|||
|
|||
|
|||
char *p; |
|||
char c; |
|||
int i; |
|||
|
|||
char * pC; |
|||
|
|||
line = 5; |
|||
|
|||
printf("CPMNAME.COM %d/%d/%d v%d.%d.%d.%d", |
|||
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP); |
|||
printf(" dwg - Display System Configuration"); |
|||
pager(); |
|||
pager(); |
|||
|
|||
ireghl = pGETINFO; |
|||
bioscall(); |
|||
pINFOLIST = ireghl; |
|||
|
|||
printf("pINFOLIST->banptr ==> "); |
|||
|
|||
dregde = pINFOLIST->banptr; |
|||
dregbc = 9; |
|||
bdoscall(); |
|||
pager(); |
|||
|
|||
syscfg = 0x8000; |
|||
|
|||
hregbc = 0xf000; |
|||
hregde = syscfg; |
|||
diagnose(); |
|||
|
|||
cnamept1(syscfg); |
|||
cnamept2(syscfg); |
|||
cnamept3(syscfg); |
|||
cnamept4(syscfg); |
|||
|
|||
} |
|||
|
|||
pager() |
|||
{ |
|||
line++; |
|||
printf("\n"); |
|||
if(24 == line) { |
|||
printf(" press any key to continue"); |
|||
dregbc = 1; |
|||
bdoscall(); |
|||
line = 1; |
|||
} |
|||
} |
|||
|
|||
/********************/ |
|||
/* eof - ccpmname.c */ |
|||
/********************/ |
|||
|
|||
|
|||
@ -0,0 +1,94 @@ |
|||
/* ctermcap.c 3/11/2012 dwg - terminal capbility file */ |
|||
|
|||
#include "stdio.h" |
|||
#include "stdlib.h" |
|||
#include "cpmbind.h" |
|||
#include "applvers.h" |
|||
#include "cnfgdata.h" |
|||
#include "syscfg.h" |
|||
#include "diagnose.h" |
|||
|
|||
int tt; |
|||
|
|||
crtinit() |
|||
{ |
|||
struct SYSCFG * pSYSCFG; |
|||
hregbc = 0x0f000; |
|||
hregde = 0x0C000; |
|||
diagnose(); |
|||
pSYSCFG = 0x0C000; |
|||
tt = pSYSCFG->cnfgdata.termtype; |
|||
} |
|||
|
|||
crtclr() |
|||
{ |
|||
int i; |
|||
|
|||
switch(tt) { |
|||
case TERM_TTY: |
|||
for(i=0;i<43;i++) { |
|||
printf("%c%c",CR,LF); |
|||
} |
|||
break; |
|||
case TERM_ANSI: |
|||
printf("%c[2J",ESC); |
|||
break; |
|||
case TERM_WYSE: |
|||
printf("%c+",ESC); |
|||
break; |
|||
case TERM_VT52: |
|||
printf("%cJ%cH",ESC,ESC); |
|||
break; |
|||
}; |
|||
} |
|||
|
|||
crtlc(line,col) |
|||
int line; |
|||
int col; |
|||
{ |
|||
int i; |
|||
|
|||
switch(tt) { |
|||
case TERM_TTY: |
|||
break; |
|||
case TERM_ANSI: |
|||
printf("%c[%d;%d%c",ESC,line,col,0x66); |
|||
break; |
|||
case TERM_WYSE: |
|||
printf("%c+",ESC); |
|||
break; |
|||
case TERM_VT52: |
|||
printf("%cY%c%c",ESC,' '+line,' '+col); |
|||
break; |
|||
}; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
/*
|
|||
|
|||
SINGLEQUOTE equ 0 |
|||
RIGHTQUOTE equ 0 |
|||
LEFTQUOTE equ 0 |
|||
|
|||
wy50row db ' !"#$%&' |
|||
db 39 |
|||
db '()*+,-./01234567' |
|||
|
|||
wy50col db ' !"#$%&' |
|||
db 39 |
|||
db '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_' |
|||
db 96 |
|||
db 'abcdefghijklmno' |
|||
|
|||
templine db 0 |
|||
tempcol db 0 |
|||
|
|||
*/ |
|||
|
|||
|
|||
/********************/ |
|||
/* eof - ctermcap.c */ |
|||
/********************/ |
|||
|
|||
@ -0,0 +1,6 @@ |
|||
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */ |
|||
|
|||
extern crtinit(); |
|||
extern crtclr(); |
|||
extern crtlc(); |
|||
|
|||
@ -0,0 +1,47 @@ |
|||
; diagnose.asm 5/23/2012 dwg - diagnose binding for Aztec C |
|||
|
|||
global hrega_,1 |
|||
global hregbc_,2 |
|||
global hregde_,2 |
|||
global hreghl_,2 |
|||
|
|||
public diagnose_ |
|||
diagnose_: |
|||
push psw |
|||
push b |
|||
push d |
|||
push h |
|||
|
|||
lhld hregbc_ |
|||
mov b,h |
|||
mov c,l |
|||
|
|||
lhld hregde_ |
|||
mov d,h |
|||
mov e,l |
|||
|
|||
lhld hreghl_ |
|||
|
|||
lda hrega_ |
|||
|
|||
db 0cfh ; rst 8 |
|||
|
|||
sta hrega_ |
|||
shld hreghl_ |
|||
|
|||
mov l,e |
|||
mov h,d |
|||
shld hregde_ |
|||
|
|||
mov l,c |
|||
mov h,b |
|||
shld hregbc_ |
|||
|
|||
pop h |
|||
pop d |
|||
pop b |
|||
pop psw |
|||
|
|||
RET |
|||
|
|||
END |
|||
@ -0,0 +1,12 @@ |
|||
/* diagnose.h 5/23/2012 dwg - */ |
|||
|
|||
extern char hrega; |
|||
extern unsigned int hregbc; |
|||
extern unsigned int hregde; |
|||
extern unsigned int hreghl; |
|||
|
|||
extern diagnose(); |
|||
|
|||
/********************/ |
|||
/* eof - diagnose.h */ |
|||
/********************/ |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue