wayne 13 years ago
parent
commit
d4e655286f
  1. BIN
      tags/v2.3/Apps/apps-bins/comfiles.lbr
  2. BIN
      tags/v2.3/Apps/apps-srcs/sources.lbr
  3. BIN
      tags/v2.3/Apps/core/access.com
  4. BIN
      tags/v2.3/Apps/core/cpmname.com
  5. BIN
      tags/v2.3/Apps/core/findfile.com
  6. BIN
      tags/v2.3/Apps/core/map.com
  7. BIN
      tags/v2.3/Apps/core/meta.com
  8. BIN
      tags/v2.3/Apps/core/multifmt.com
  9. BIN
      tags/v2.3/Apps/core/rem.com
  10. BIN
      tags/v2.3/Apps/core/setlabel.com
  11. BIN
      tags/v2.3/Apps/core/sysgen.com
  12. BIN
      tags/v2.3/Apps/core/termtype.com
  13. BIN
      tags/v2.3/Apps/core/view.com
  14. 20
      tags/v2.3/Apps/crossdev/APPLVERS.H
  15. 67
      tags/v2.3/Apps/crossdev/ASMIFACE.ASM
  16. 14
      tags/v2.3/Apps/crossdev/ASMIFACE.H
  17. 4
      tags/v2.3/Apps/crossdev/BANNER.H
  18. 71
      tags/v2.3/Apps/crossdev/BDOSCALL.ASM
  19. 8
      tags/v2.3/Apps/crossdev/BDOSCALL.H
  20. BIN
      tags/v2.3/Apps/crossdev/BIN/AS80.EXE
  21. BIN
      tags/v2.3/Apps/crossdev/BIN/CCZ.EXE
  22. BIN
      tags/v2.3/Apps/crossdev/BIN/HEX80.EXE
  23. BIN
      tags/v2.3/Apps/crossdev/BIN/LIBUTIL.EXE
  24. BIN
      tags/v2.3/Apps/crossdev/BIN/LN80.EXE
  25. BIN
      tags/v2.3/Apps/crossdev/BIN/MAKE.EXE
  26. 80
      tags/v2.3/Apps/crossdev/BIOSCALL.ASM
  27. 8
      tags/v2.3/Apps/crossdev/BIOSCALL.H
  28. BIN
      tags/v2.3/Apps/crossdev/C.LIB
  29. 41
      tags/v2.3/Apps/crossdev/CBANNER.C
  30. 1
      tags/v2.3/Apps/crossdev/CBANNER.H
  31. 133
      tags/v2.3/Apps/crossdev/CHARS.C
  32. 57
      tags/v2.3/Apps/crossdev/CLOGICAL.C
  33. 18
      tags/v2.3/Apps/crossdev/CLOGICAL.H
  34. 53
      tags/v2.3/Apps/crossdev/CMEMORY.C
  35. 108
      tags/v2.3/Apps/crossdev/CNAMEPT1.C
  36. 113
      tags/v2.3/Apps/crossdev/CNAMEPT2.C
  37. 216
      tags/v2.3/Apps/crossdev/CNAMEPT3.C
  38. 198
      tags/v2.3/Apps/crossdev/CNAMEPT4.C
  39. 73
      tags/v2.3/Apps/crossdev/CNFGDATA.H
  40. 196
      tags/v2.3/Apps/crossdev/CPM80.H
  41. BIN
      tags/v2.3/Apps/crossdev/CPM86/AME86.EXE
  42. BIN
      tags/v2.3/Apps/crossdev/CPM86/AME86DOS.EXE
  43. BIN
      tags/v2.3/Apps/crossdev/CPM86/ARCV.COM
  44. BIN
      tags/v2.3/Apps/crossdev/CPM86/AS.EXE
  45. 8
      tags/v2.3/Apps/crossdev/CPM86/ASSERT.H
  46. BIN
      tags/v2.3/Apps/crossdev/CPM86/C.LIB
  47. BIN
      tags/v2.3/Apps/crossdev/CPM86/CC.EXE
  48. BIN
      tags/v2.3/Apps/crossdev/CPM86/CCB.EXE
  49. BIN
      tags/v2.3/Apps/crossdev/CPM86/CNM.EXE
  50. BIN
      tags/v2.3/Apps/crossdev/CPM86/CPM.EXE
  51. BIN
      tags/v2.3/Apps/crossdev/CPM86/CRC.EXE
  52. 20
      tags/v2.3/Apps/crossdev/CPM86/CTYPE.H
  53. BIN
      tags/v2.3/Apps/crossdev/CPM86/D11.LIB
  54. BIN
      tags/v2.3/Apps/crossdev/CPM86/D20.LIB
  55. BIN
      tags/v2.3/Apps/crossdev/CPM86/DIFF.EXE
  56. 26
      tags/v2.3/Apps/crossdev/CPM86/DIOCTL.H
  57. 29
      tags/v2.3/Apps/crossdev/CPM86/ERRNO.H
  58. 7
      tags/v2.3/Apps/crossdev/CPM86/FCNTL.H
  59. BIN
      tags/v2.3/Apps/crossdev/CPM86/G.LIB
  60. 16
      tags/v2.3/Apps/crossdev/CPM86/GRAPH.C
  61. BIN
      tags/v2.3/Apps/crossdev/CPM86/GRAPH.EXE
  62. BIN
      tags/v2.3/Apps/crossdev/CPM86/GRAPH.O
  63. 4
      tags/v2.3/Apps/crossdev/CPM86/HELLO.C
  64. BIN
      tags/v2.3/Apps/crossdev/CPM86/HELLO.CMD
  65. BIN
      tags/v2.3/Apps/crossdev/CPM86/HELLO.EXE
  66. BIN
      tags/v2.3/Apps/crossdev/CPM86/HELLO.O
  67. BIN
      tags/v2.3/Apps/crossdev/CPM86/HEX86.EXE
  68. 82
      tags/v2.3/Apps/crossdev/CPM86/IO.H
  69. 41
      tags/v2.3/Apps/crossdev/CPM86/LIBC.H
  70. 210
      tags/v2.3/Apps/crossdev/CPM86/LMACROS.H
  71. BIN
      tags/v2.3/Apps/crossdev/CPM86/LN.EXE
  72. BIN
      tags/v2.3/Apps/crossdev/CPM86/M.LIB
  73. BIN
      tags/v2.3/Apps/crossdev/CPM86/M87.LIB
  74. BIN
      tags/v2.3/Apps/crossdev/CPM86/M87S.LIB
  75. BIN
      tags/v2.3/Apps/crossdev/CPM86/MAKE.EXE
  76. 8
      tags/v2.3/Apps/crossdev/CPM86/MAKEFILE
  77. 1
      tags/v2.3/Apps/crossdev/CPM86/MAP.BAT
  78. 11
      tags/v2.3/Apps/crossdev/CPM86/MATH.H
  79. 2
      tags/v2.3/Apps/crossdev/CPM86/MEMORY.H
  80. BIN
      tags/v2.3/Apps/crossdev/CPM86/OBD.EXE
  81. BIN
      tags/v2.3/Apps/crossdev/CPM86/ORD.EXE
  82. 55
      tags/v2.3/Apps/crossdev/CPM86/REGS.H
  83. BIN
      tags/v2.3/Apps/crossdev/CPM86/S.LIB
  84. 5
      tags/v2.3/Apps/crossdev/CPM86/SEARCH.H
  85. 4
      tags/v2.3/Apps/crossdev/CPM86/SETJMP.H
  86. 19
      tags/v2.3/Apps/crossdev/CPM86/SGTTY.H
  87. 15
      tags/v2.3/Apps/crossdev/CPM86/SIGNAL.H
  88. BIN
      tags/v2.3/Apps/crossdev/CPM86/SQZ.EXE
  89. 29
      tags/v2.3/Apps/crossdev/CPM86/STAT.H
  90. 45
      tags/v2.3/Apps/crossdev/CPM86/STDIO.H
  91. 22
      tags/v2.3/Apps/crossdev/CPM86/TIME.H
  92. 8
      tags/v2.3/Apps/crossdev/CPMAPPL.H
  93. 53
      tags/v2.3/Apps/crossdev/CPMBDOS.H
  94. 682
      tags/v2.3/Apps/crossdev/CPMBIND.H
  95. 104
      tags/v2.3/Apps/crossdev/CPMBIOS.H
  96. 86
      tags/v2.3/Apps/crossdev/CPMNAME.C
  97. 94
      tags/v2.3/Apps/crossdev/CTERMCAP.C
  98. 6
      tags/v2.3/Apps/crossdev/CTERMCAP.H
  99. 47
      tags/v2.3/Apps/crossdev/DIAGNOSE.ASM
  100. 12
      tags/v2.3/Apps/crossdev/DIAGNOSE.H

BIN
tags/v2.3/Apps/apps-bins/comfiles.lbr

Binary file not shown.

BIN
tags/v2.3/Apps/apps-srcs/sources.lbr

Binary file not shown.

BIN
tags/v2.3/Apps/core/access.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/cpmname.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/findfile.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/map.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/meta.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/multifmt.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/rem.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/setlabel.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/sysgen.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/termtype.com

Binary file not shown.

BIN
tags/v2.3/Apps/core/view.com

Binary file not shown.

20
tags/v2.3/Apps/crossdev/APPLVERS.H

@ -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 */
/********************/


67
tags/v2.3/Apps/crossdev/ASMIFACE.ASM

@ -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


14
tags/v2.3/Apps/crossdev/ASMIFACE.H

@ -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 */
/********************/


4
tags/v2.3/Apps/crossdev/BANNER.H

@ -0,0 +1,4 @@
/* banner.h */
extern sbanner();
extern banner();


71
tags/v2.3/Apps/crossdev/BDOSCALL.ASM

@ -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


8
tags/v2.3/Apps/crossdev/BDOSCALL.H

@ -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();


BIN
tags/v2.3/Apps/crossdev/BIN/AS80.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/BIN/CCZ.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/BIN/HEX80.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/BIN/LIBUTIL.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/BIN/LN80.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/BIN/MAKE.EXE

Binary file not shown.

80
tags/v2.3/Apps/crossdev/BIOSCALL.ASM

@ -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


8
tags/v2.3/Apps/crossdev/BIOSCALL.H

@ -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();


BIN
tags/v2.3/Apps/crossdev/C.LIB

Binary file not shown.

41
tags/v2.3/Apps/crossdev/CBANNER.C

@ -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);
}


1
tags/v2.3/Apps/crossdev/CBANNER.H

@ -0,0 +1 @@

133
tags/v2.3/Apps/crossdev/CHARS.C

@ -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;
}


57
tags/v2.3/Apps/crossdev/CLOGICAL.C

@ -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 */
/********************/


18
tags/v2.3/Apps/crossdev/CLOGICAL.H

@ -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 */
/********************/


53
tags/v2.3/Apps/crossdev/CMEMORY.C

@ -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;
}
}


108
tags/v2.3/Apps/crossdev/CNAMEPT1.C

@ -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 */
/********************/


113
tags/v2.3/Apps/crossdev/CNAMEPT2.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 */
/********************/


216
tags/v2.3/Apps/crossdev/CNAMEPT3.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;
*/


198
tags/v2.3/Apps/crossdev/CNAMEPT4.C

@ -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 */
/********************/


73
tags/v2.3/Apps/crossdev/CNFGDATA.H

@ -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 */
/********************/

196
tags/v2.3/Apps/crossdev/CPM80.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 */
/*****************/


BIN
tags/v2.3/Apps/crossdev/CPM86/AME86.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/AME86DOS.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/ARCV.COM

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/AS.EXE

Binary file not shown.

8
tags/v2.3/Apps/crossdev/CPM86/ASSERT.H

@ -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

BIN
tags/v2.3/Apps/crossdev/CPM86/C.LIB

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/CC.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/CCB.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/CNM.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/CPM.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/CRC.EXE

Binary file not shown.

20
tags/v2.3/Apps/crossdev/CPM86/CTYPE.H

@ -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)

BIN
tags/v2.3/Apps/crossdev/CPM86/D11.LIB

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/D20.LIB

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/DIFF.EXE

Binary file not shown.

26
tags/v2.3/Apps/crossdev/CPM86/DIOCTL.H

@ -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.
*/

29
tags/v2.3/Apps/crossdev/CPM86/ERRNO.H

@ -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

7
tags/v2.3/Apps/crossdev/CPM86/FCNTL.H

@ -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

BIN
tags/v2.3/Apps/crossdev/CPM86/G.LIB

Binary file not shown.

16
tags/v2.3/Apps/crossdev/CPM86/GRAPH.C

@ -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');
}

BIN
tags/v2.3/Apps/crossdev/CPM86/GRAPH.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/GRAPH.O

Binary file not shown.

4
tags/v2.3/Apps/crossdev/CPM86/HELLO.C

@ -0,0 +1,4 @@
main()
{
printf("Hello Woprd!!");
}

BIN
tags/v2.3/Apps/crossdev/CPM86/HELLO.CMD

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/HELLO.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/HELLO.O

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/HEX86.EXE

Binary file not shown.

82
tags/v2.3/Apps/crossdev/CPM86/IO.H

@ -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)

41
tags/v2.3/Apps/crossdev/CPM86/LIBC.H

@ -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)

210
tags/v2.3/Apps/crossdev/CPM86/LMACROS.H

@ -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

BIN
tags/v2.3/Apps/crossdev/CPM86/LN.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/M.LIB

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/M87.LIB

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/M87S.LIB

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/MAKE.EXE

Binary file not shown.

8
tags/v2.3/Apps/crossdev/CPM86/MAKEFILE

@ -0,0 +1,8 @@
hello.cmd: hello.c
cc hello
ln -o hello.cmd hello.o -lc
clean:
erase hello.cmd

1
tags/v2.3/Apps/crossdev/CPM86/MAP.BAT

@ -0,0 +1 @@
z:mount i /Users/doug/Downloads/azcpm32d

11
tags/v2.3/Apps/crossdev/CPM86/MATH.H

@ -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

2
tags/v2.3/Apps/crossdev/CPM86/MEMORY.H

@ -0,0 +1,2 @@
extern char *memcpy(), *memchr(), *memcpy(), memset();
extern int memcmp();

BIN
tags/v2.3/Apps/crossdev/CPM86/OBD.EXE

Binary file not shown.

BIN
tags/v2.3/Apps/crossdev/CPM86/ORD.EXE

Binary file not shown.

55
tags/v2.3/Apps/crossdev/CPM86/REGS.H

@ -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

BIN
tags/v2.3/Apps/crossdev/CPM86/S.LIB

Binary file not shown.

5
tags/v2.3/Apps/crossdev/CPM86/SEARCH.H

@ -0,0 +1,5 @@
typedef int VISIT;
#define preorder 1
#define postorder 2
#define endorder 3
#define leaf 4

4
tags/v2.3/Apps/crossdev/CPM86/SETJMP.H

@ -0,0 +1,4 @@
/* Copyright (C) 1983 by Manx Software Systems */
#define JBUFSIZE (6*sizeof(int))
typedef char jmp_buf[JBUFSIZE];

19
tags/v2.3/Apps/crossdev/CPM86/SGTTY.H

@ -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 */

15
tags/v2.3/Apps/crossdev/CPM86/SIGNAL.H

@ -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

BIN
tags/v2.3/Apps/crossdev/CPM86/SQZ.EXE

Binary file not shown.

29
tags/v2.3/Apps/crossdev/CPM86/STAT.H

@ -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
*/

45
tags/v2.3/Apps/crossdev/CPM86/STDIO.H

@ -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

22
tags/v2.3/Apps/crossdev/CPM86/TIME.H

@ -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();

8
tags/v2.3/Apps/crossdev/CPMAPPL.H

@ -0,0 +1,8 @@
/* cpmappl.h */
extern banner();
/*******************/
/* eof - cpmappl.h */
/*******************/


53
tags/v2.3/Apps/crossdev/CPMBDOS.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];
};


682
tags/v2.3/Apps/crossdev/CPMBIND.H

@ -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
*/


104
tags/v2.3/Apps/crossdev/CPMBIOS.H

@ -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;
};


86
tags/v2.3/Apps/crossdev/CPMNAME.C

@ -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 */
/********************/

94
tags/v2.3/Apps/crossdev/CTERMCAP.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 */
/********************/


6
tags/v2.3/Apps/crossdev/CTERMCAP.H

@ -0,0 +1,6 @@
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */
extern crtinit();
extern crtclr();
extern crtlc();


47
tags/v2.3/Apps/crossdev/DIAGNOSE.ASM

@ -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

12
tags/v2.3/Apps/crossdev/DIAGNOSE.H

@ -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…
Cancel
Save