diff --git a/Apps/crossdev/2DRIVE.C b/Apps/crossdev/2DRIVE.C
new file mode 100644
index 00000000..c80e722d
--- /dev/null
+++ b/Apps/crossdev/2DRIVE.C
@@ -0,0 +1,68 @@
+/* twodrive.c 7/11/2012 dwg - */
+
+/* This program is experimental and is not for release because
+ it contains techniques which are not recommended because
+ there are better API functions to do these operations. */
+
+
+#include "cpmbios.h"
+#include "bioscall.h"
+
+#include "cpmbdos.h"
+#include "bdoscall.h"
+
+#define u8 unsigned char
+#define u16 unsigned int
+
+struct DPH * pDPH_C;
+struct DPB * pDPB_C;
+u8 * pDU_C;
+u16 * pCUR_C;
+u16 * pNUM_C;
+
+struct DPH * pDPH_D;
+struct DPB * pDPB_D;
+u8 * pDU_D;
+u16 * pCUR_D;
+u16 * pNUM_D;
+
+main(argc,argv)
+ int argc;
+ char *argv[];
+{
+
+ ireghl = pSELDSK;
+ iregbc = DRIVEC;
+ iregde = 0;
+ bioscall();
+ pDPH_C = ireghl;
+ pDPB_C = pDPH_C->dpb;
+ pDU_C = ireghl -1;
+ *pDU_C = 0X41;
+ printf("Current C: DevUnit is %02x\n",*pDU_C);
+ pCUR_C = ireghl + 18;
+ *pCUR_C = 0;
+ printf("Current C: Logical Unit is %d\n",* pCUR_C);
+ pNUM_C = ireghl + 20;
+ *pNUM_C = 64/9;
+ printf("Current C: Number of LU's is %d\n",* pNUM_C);
+
+ ireghl = pSELDSK;
+ iregbc = DRIVED;
+ iregde = 0;
+ bioscall();
+ pDPH_D = ireghl;
+ pDPB_D = pDPH_D->dpb;
+ pDU_D = ireghl -1;
+ *pDU_D = 0x41;
+ printf("Current D: DevUnit is %02x\n",*pDU_D);
+ pCUR_D = ireghl + 18;
+ *pCUR_D = 1;
+ printf("Current D: Logical Unit is %d\n",* pCUR_D);
+ pNUM_D = ireghl + 20;
+ *pNUM_D = 64/9;
+ printf("Current D: Number of LU's is %d\n",* pNUM_D);
+
+
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/2MAP.C b/Apps/crossdev/2MAP.C
new file mode 100644
index 00000000..48dfb65b
--- /dev/null
+++ b/Apps/crossdev/2MAP.C
@@ -0,0 +1,322 @@
+/* map.c 6/7/2012 dwg - */
+
+#include "portab.h"
+#include "globals.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "memory.h"
+
+#include "cpmbind.h"
+
+#include "infolist.h"
+#include "dphdpb.h"
+#include "dphmap.h"
+#include "metadata.h"
+#include "clogical.h"
+#include "applvers.h"
+
+#define MAXDRIVE 8
+
+/* Drive List Geometry */
+#define COL1 0
+#define COL2 (80/4)
+#define COL3 (80/2)
+#define COL4 (COL2+COL3)
+#define LINE 3
+
+/* Logical Unit List Geometry */
+#define LGUT 5
+#define COL1A 0
+#define COL2A (80/3)
+#define COL3A (2*COL2A)
+
+/* Nomenclature Geometry */
+#define LINE2 8
+
+/* Misc Info Geometry */
+#define CDLINE 6
+
+/* BDOS Function number */
+#define RETCURR 25
+
+/* function defined in bdoscall.asm */
+extern lurst();
+
+struct BIOS * pBIOS;
+
+struct DPH * pDPH;
+
+int devunit;
+int dev;
+int unit;
+int currlu;
+int numlu;
+int drivenum;
+int drive;
+int deflu;
+
+char szTemp[128];
+
+int readsec(drive,track,sector,buffer)
+ int drive;
+ int track;
+ int sector;
+ unsigned int buffer;
+{
+ ireghl = pSELDSK;
+ iregbc = drive;
+ iregde = 0;
+ bioscall();
+
+ ireghl = pSETTRK;
+ iregbc = track;
+ bioscall();
+
+ ireghl = pSETSEC;
+ iregbc = sector;
+ bioscall();
+
+ ireghl = pSETDMA;
+ iregbc = buffer;
+ bioscall();
+
+ ireghl = pREAD;
+ bioscall();
+ return irega;
+}
+
+
+
+
+int haslu(dr)
+ int dr;
+{
+ if(0 < lugnum(dr)) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
+
+
+void dispdph(l,c,drive,ptr)
+ int l;
+ int c;
+ char drive;
+ struct DPH *ptr;
+{
+
+/*
+ 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;
+*/
+ crtlc(l,c);
+ printf("%c: ",drive);
+
+ devunit = lugdu(drive-'A');
+ dev = devunit & 0xf0;
+ unit = devunit & 0x0f;
+
+ currlu = lugcur(drive-'A');
+ switch(dev) {
+ case DEV_MD:
+ if(0 == unit) printf("ROM");
+ if(1 == unit) printf("RAM");
+ break;
+ case DEV_FD:
+ printf("FD%d",unit);
+ break;
+ case DEV_IDE:
+ printf("IDE%d",unit);
+ break;
+ case DEV_ATAPI:
+ printf("ATAPI%d",unit);
+ break;
+ case DEV_PPIDE:
+ printf("PPIDE%d",unit);
+ break;
+ case DEV_SD:
+ printf("SD%d",unit);
+ break;
+ case DEV_PRPSD:
+ printf("PRPSD%d",unit);
+ break;
+ default:
+ printf("UNK");
+ break;
+ };
+
+ if('L' == (unsigned char)ptr->sigl) {
+ if('U' == (unsigned char)ptr->sigu) {
+/* printf("-LU%d",(int)ptr->current); */
+ printf("-LU%d",currlu);
+ }
+ }
+
+/* printf("dpb=0x%04x, ",(unsigned int)ptr->dpb);
+ printf("sigl=0x%02x, ",(unsigned char)ptr->sigl);
+ printf("sigu=0x%02x, ",(unsigned char)ptr->sigu);
+ printf("curr=0x%04x, ",(unsigned int)ptr->current);
+ printf("numb=0x%04x", (unsigned int)ptr->number);
+*/
+
+}
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ int i;
+ int mylu;
+ int drivenum;
+ int column;
+ int line;
+ char szDrive[32];
+ char szLuNum[32];
+
+ if(argc == 3) {
+
+ strcpy(szDrive,argv[1]);
+ strcpy(szLuNum,argv[2]);
+
+ mylu = atoi(szLuNum);
+
+ if(strlen(szDrive) == 2) {
+ if(':' == szDrive[1]) {
+ switch(szDrive[0]) {
+ case 'a':
+ case 'A':
+ luscur(0,mylu);
+ break;
+ case 'b':
+ case 'B':
+ luscur(1,mylu);
+ break;
+ case 'c':
+ case 'C':
+ luscur(2,mylu);
+ break;
+ case 'd':
+ case 'D':
+ luscur(3,mylu);
+ break;
+ case 'e':
+ case 'E':
+ luscur(4,mylu);
+ break;
+ case 'f':
+ case 'F':
+ luscur(5,mylu);
+ break;
+ case 'g':
+ case 'G':
+ luscur(6,mylu);
+ break;
+ case 'h':
+ case 'H':
+ luscur(7,mylu);
+ break;
+ default:
+ break;
+ }
+
+ }
+ }
+ exit(1);
+ }
+
+
+ pBIOS = BIOSAD;
+
+ crtinit();
+ crtclr();
+ crtlc(0,0);
+
+ printf("MAP.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 - System Storage Drives and Logical Units");
+
+ ireghl = pGETINFO;
+ bioscall();
+ pINFOLIST = ireghl;
+
+ crtlc(CDLINE,COL3A+LGUT);
+ printf("infolist.version %d\n",pINFOLIST->version);
+
+ pDPHMAP = (struct DPHMAPA *)pINFOLIST->dphmap;
+
+ dispdph(LINE, COL1+LGUT-1,'A',(struct DPH *)pDPHMAP->drivea);
+ dispdph(LINE+1,COL1+LGUT-1,'B',(struct DPH *)pDPHMAP->driveb);
+ dispdph(LINE, COL2+LGUT-1,'C',(struct DPH *)pDPHMAP->drivec);
+ dispdph(LINE+1,COL2+LGUT-1,'D',(struct DPH *)pDPHMAP->drived);
+ dispdph(LINE, COL3+LGUT-1,'E',(struct DPH *)pDPHMAP->drivee);
+ dispdph(LINE+1,COL3+LGUT-1,'F',(struct DPH *)pDPHMAP->drivef);
+ dispdph(LINE, COL4+LGUT-1,'G',(struct DPH *)pDPHMAP->driveg);
+ dispdph(LINE+1,COL4+LGUT-1,'H',(struct DPH *)pDPHMAP->driveh);
+
+ dregbc = RETCURR;
+ bdoscall();
+ drive = drega;
+
+ crtlc(CDLINE,5);
+ printf("Current drive is %c:",'A'+drive);
+
+ devunit = lugdu(drive);
+ dev = devunit & 0xf0;
+ unit = devunit & 0x0f;
+ currlu = lugcur(drive);
+ deflu = currlu;
+ numlu = lugnum(drive);
+
+ crtlc(CDLINE,COL2A+LGUT);
+ printf("Number of LUs is %d\n",lugnum(drive));
+
+ if(0.
+
+;----------------------------------------------------------------------
+ maclib portab
+ maclib globals
+ maclib cpmbdos
+ maclib printers
+ maclib banner
+ maclib applvers
+ maclib z80
+ maclib memory
+ maclib version
+ maclib cpmappl
+ maclib banner
+;-----------------------
+
+ do$start
+
+ jmp around$bandata
+argv dw prog,dat,prod,orig,ser,myname,0
+prog db 'ACCESS.COM $'
+ date
+ serial
+ product
+ originator
+ oriname
+uuid db '08D4953E-B6F4-4673-990C-7E17A0A299BD$'
+around$bandata:
+
+ sbanner argv
+
+ lda 80h ; pick up the command tail length provided by CCP
+ cpi 0 ; were there any parameters given?
+ jnz no$usage ; If not, go around
+ printf 'usage - access '
+ jmp do$exit
+no$usage:
+
+ memcpy work$fcb,PRIFCB,32 ; Save initial default FCB from CCP
+
+ printf 'Checking: '
+
+ mvi a,'$' ; place a terminating dollar sign
+ sta PRIFCB+9 ; at the end of the filname field
+ print PRIFCB+1 ; and print the filename portion
+
+ conout '.' ; print the seperating dot
+
+ memcpy PRIFCB,work$fcb,16 ; get a fresh copy of the initial FCB
+ mvi a,'$' ; place a terminating dollar sign
+ sta PRIFCB+12 ; at the end of the filetype field
+ print PRIFCB+9 ; and print the filetype
+ print crlf ; followed by a CR and LF
+
+ memcpy PRIFCB,work$fcb,32 ; restore the initial FCB
+
+ mvi c,FOPEN ; Try to open the given filename
+ lxi d,PRIFCB ; using the primary default FCB
+ call BDOS ; with a BDOS call
+ cpi 255 ; Test for Open Failure (255)
+ jnz done ; jump if file existed
+
+ mvi c,FDELETE ; Delete the A:$$$.SUB file
+ lxi d,del$fcb ; using an alternative FCB
+ call BDOS
+
+ printf 'Submit file terminated due to missing file$'
+
+ jmp do$exit ; Go to the one true exit point
+
+done:
+ printf 'File found, Submit may proceed'
+do$exit:
+ do$end
+
+ newfcb del$fcb,1,'$$$ SUB'
+
+work$fcb ds 36 ; A place to save a copy of the default FCB on entry
+
+crlf db CR,LF ; a dollar sign terminated CR and LF
+term db '$' ; a general purpose terminating character
+
+ end start
+
+; eof - access.asm
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/ACCESS.BAT b/Apps/crossdev/ACCESS.BAT
new file mode 100644
index 00000000..c233bcdb
--- /dev/null
+++ b/Apps/crossdev/ACCESS.BAT
@@ -0,0 +1,18 @@
+rem access.sub 9/5/2012 dwg - build access from sources
+
+if not exist access.rel erase access.cpm
+if not exist access.rel z80mu rmac access
+
+if not exist printers.rel erase access.cpm
+if not exist printers.rel z80mu rmac printers
+
+if not exist memory.rel erase access.cpm
+if not exist memory.rel z80mu rmac memory
+
+if not exist banner.rel erase access.cpm
+if not exist banner.rel z80mu rmac banner
+
+if not exist access.cpm z80mu link access,memory,banner,printers
+if not exist access.cpm rename access.com access.cpm
+
+dir access.cpm
diff --git a/Apps/crossdev/ACCESS.CPM b/Apps/crossdev/ACCESS.CPM
new file mode 100644
index 00000000..dbf6b878
Binary files /dev/null and b/Apps/crossdev/ACCESS.CPM differ
diff --git a/Apps/crossdev/ACCESS.REL b/Apps/crossdev/ACCESS.REL
new file mode 100644
index 00000000..0b69846a
Binary files /dev/null and b/Apps/crossdev/ACCESS.REL differ
diff --git a/Apps/crossdev/ACCESS.SUB b/Apps/crossdev/ACCESS.SUB
new file mode 100644
index 00000000..66ec69d7
--- /dev/null
+++ b/Apps/crossdev/ACCESS.SUB
@@ -0,0 +1,7 @@
+e:rem access.sub 9/5/2012 dwg - build access from sources
+rasm80 access
+rasm80 printers
+rasm80 memory
+rasm80 banner
+link80 access,memory,banner,printers
+
\ No newline at end of file
diff --git a/Apps/crossdev/ACCESS.SYM b/Apps/crossdev/ACCESS.SYM
new file mode 100644
index 00000000..a05bf1be
--- /dev/null
+++ b/Apps/crossdev/ACCESS.SYM
@@ -0,0 +1,8 @@
+0103 HEXREF 0113 IDSIG 0115 IDRMJ 0116 IDRMN
+0117 IDRUP 0118 IDRTP 0119 IDMON 011A IDDAY
+011B IDYR 0120 PRESTK 0122 BEGIN 09C1 PRDWOR
+0999 PRHBYT 09AE PRHWOR 0554 XBANNE 07FF XSBANN
+0546 XMEMCP 0547 XMEMSE 0983 PRHNYB 09CD PDEC
+09EF PDEC1 09F1 PDEC2 0A0D PDEC3 0A24 PDEC4
+0A25 PDEC5
+
\ No newline at end of file
diff --git a/Apps/crossdev/ANSI.H b/Apps/crossdev/ANSI.H
new file mode 100644
index 00000000..a6e6f32f
Binary files /dev/null and b/Apps/crossdev/ANSI.H differ
diff --git a/Apps/crossdev/APPLVERS.H b/Apps/crossdev/APPLVERS.H
index 06d9aa5f..5eaa18ac 100644
--- a/Apps/crossdev/APPLVERS.H
+++ b/Apps/crossdev/APPLVERS.H
@@ -1,20 +1,20 @@
-/****************************/
-/* applvers.h dwg - 2.0.0.0 */
-/****************************/
+/************************************/
+/* applvers.h dwg - 2.2.0.3 Beta */
+/************************************/
#define A_RMJ 2
-#define A_RMN 0
+#define A_RMN 3
#define A_RUP 0
#define A_RTP 0
-#define A_MONTH 6
-#define A_DAY 10
-#define A_YEAR 2012
-#define A_YR 12
+#define A_MONTH 1
+#define A_DAY 16
+#define A_YEAR 2013
+#define A_YR 13
/********************/
/* eof - applvers.h */
/********************/
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/APPLVERS.LIB b/Apps/crossdev/APPLVERS.LIB
new file mode 100644
index 00000000..f20a6db1
--- /dev/null
+++ b/Apps/crossdev/APPLVERS.LIB
@@ -0,0 +1,34 @@
+; applvers.lib 2/29/2012 dwg - For RomWBW 2.1.1 Release
+
+A$RMJ equ 2
+A$RMN equ 2
+A$RUP equ 0
+A$RTP equ 0
+
+A$MONTH equ 2
+A$DAY equ 15
+A$YEAR equ 2013
+
+date macro
+dat db ' 2/15/2013$'
+ endm
+
+serial macro
+ser db '654321$'
+ endm
+
+product macro
+prod db 'CPM80$'
+ endm
+
+originator macro
+orig db 'DWG$'
+ endm
+
+oriname macro
+myname db ' Douglas W Goodall $'
+ endm
+
+; eof - applvers.lib
+
+
diff --git a/Apps/crossdev/AS.COM b/Apps/crossdev/AS.COM
new file mode 100644
index 00000000..c8c41b79
Binary files /dev/null and b/Apps/crossdev/AS.COM differ
diff --git a/Apps/crossdev/ASCII.H b/Apps/crossdev/ASCII.H
new file mode 100644
index 00000000..8e1b7765
--- /dev/null
+++ b/Apps/crossdev/ASCII.H
@@ -0,0 +1,13 @@
+/* ascii.h 11/25/2012 dwg - */
+
+#define ASCII_BS 8
+#define ASCII_TAB 9
+#define ASCII_LF 10
+#define ASCII_VT 11
+#define ASCII_FF 12
+#define ASCII_CR 13
+#define ASCII_ESC 27
+
+/* eof - ascii.h */
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/ASMIFACE.O b/Apps/crossdev/ASMIFACE.O
new file mode 100644
index 00000000..fa0de31b
Binary files /dev/null and b/Apps/crossdev/ASMIFACE.O differ
diff --git a/Apps/crossdev/ASMIFACE.REL b/Apps/crossdev/ASMIFACE.REL
new file mode 100644
index 00000000..fa0de31b
Binary files /dev/null and b/Apps/crossdev/ASMIFACE.REL differ
diff --git a/Apps/crossdev/AUTOEXEC.Z80 b/Apps/crossdev/AUTOEXEC.Z80
new file mode 100644
index 00000000..f60431fa
--- /dev/null
+++ b/Apps/crossdev/AUTOEXEC.Z80
@@ -0,0 +1,18 @@
+;
+; This is a sample AUTOEXEC.Z80 file. Tailor it to your own preferences,
+; or delete it entirely.
+;
+set_bdos min
+set_cpmecho off
+set_cpmlist lpt1
+set_cpmpun com1
+set_cpmrdr com1
+set_cpu z80
+set_fake on
+set_illop fault
+set_iobase 400
+set_mask on
+set_source z80
+set_term h19
+set_vars on
+coldboot
diff --git a/Apps/crossdev/BANKER.ASM b/Apps/crossdev/BANKER.ASM
new file mode 100644
index 00000000..4dbf960e
--- /dev/null
+++ b/Apps/crossdev/BANKER.ASM
@@ -0,0 +1,656 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global pINFOLIS_,2
+ global metadata_,128
+ global pSYSCFG_,2
+ global pCBIOS_,2
+ PUBLIC main_
+main_: lxi d,.2
+ call csave
+ LXI H,0
+ XCHG
+ LXI H,-132-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-6596
+ SHLD ireghl_
+ CALL bioscall_
+ LHLD ireghl_
+ SHLD pINFOLIS_
+ LHLD pINFOLIS_
+ PUSH H
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,-6656
+ SHLD pCBIOS_
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ CALL crtinit_
+ POP D
+ CALL crtclr_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,1
+ PUSH H
+ LXI H,1
+ PUSH H
+ LXI H,2
+ PUSH H
+ LXI H,2012
+ PUSH H
+ LXI H,29
+ PUSH H
+ LXI H,8
+ PUSH H
+ LXI H,.1+31
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,16
+ DAD SP
+ SPHL
+ LXI H,.1+64
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LXI H,0
+ PUSH H
+ LXI H,2
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,3
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,.1+107
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,4
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,9
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+117
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,5
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,10
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+126
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,6
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,11
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+135
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,7
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,12
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+144
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,9
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,7
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-16384
+ DAD D
+ SHLD dregde_
+ LXI H,9
+ SHLD dregbc_
+ CALL bdoscall_
+ LXI H,0
+ PUSH H
+ LXI H,10
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,5
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-16384
+ DAD D
+ XCHG
+ LXI H,0-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,128
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,-124-.2
+ DAD SP
+ PUSH H
+ CALL memset_
+ POP D
+ POP D
+ POP D
+ LXI H,11
+ PUSH H
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-124-.2
+ DAD SP
+ PUSH H
+ CALL memcpy_
+ POP D
+ POP D
+ POP D
+ LXI H,-128-.2
+ DAD SP
+ PUSH H
+ LXI H,.1+153
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,3
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,.1+156
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,4
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pCBIOS_
+ LXI D,75
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+166
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,5
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pCBIOS_
+ LXI D,76
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+175
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,6
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pCBIOS_
+ LXI D,77
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+184
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,7
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pCBIOS_
+ LXI D,78
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+193
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,9
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pINFOLIS_
+ LXI D,4
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,128
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,-124-.2
+ DAD SP
+ PUSH H
+ CALL memset_
+ POP D
+ POP D
+ POP D
+ LXI H,127
+ PUSH H
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-124-.2
+ DAD SP
+ PUSH H
+ CALL memcpy_
+ POP D
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-130-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .4
+.3:
+ LXI H,-130-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.4:
+ LXI H,-130-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,128
+ CALL .ul
+ JZ .5
+ LXI H,-130-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-128-.2
+ DAD SP
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,45
+ POP D
+ CALL .eq
+ JZ .6
+ LXI H,-132-.2
+ DAD SP
+ mov a,m
+ inx h
+ ora m
+ JZ .7
+ LXI H,0
+ PUSH H
+ LXI H,-128-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-126-.2
+ DAD SP
+ DAD D
+ POP D
+ MOV M,E
+ JMP .8
+.7:
+ LXI H,1
+ XCHG
+ LXI H,-132-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+.8:
+.6:
+ JMP .3
+.5:
+ LXI H,-128-.2
+ DAD SP
+ PUSH H
+ LXI H,.1+202
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,26
+ PUSH H
+ LXI H,10
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pINFOLIS_
+ LXI D,6
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,0-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,128
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,-124-.2
+ DAD SP
+ PUSH H
+ CALL memset_
+ POP D
+ POP D
+ POP D
+ LXI H,11
+ PUSH H
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-124-.2
+ DAD SP
+ PUSH H
+ CALL memcpy_
+ POP D
+ POP D
+ POP D
+ LXI H,-128-.2
+ DAD SP
+ PUSH H
+ LXI H,.1+205
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,52
+ PUSH H
+ LXI H,3
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,.1+208
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,52
+ PUSH H
+ LXI H,4
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,2
+ PUSH H
+ LXI H,.1+219
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,52
+ PUSH H
+ LXI H,5
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,1
+ PUSH H
+ LXI H,.1+228
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,52
+ PUSH H
+ LXI H,6
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,1
+ PUSH H
+ LXI H,.1+237
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,52
+ PUSH H
+ LXI H,7
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,.1+246
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,52
+ PUSH H
+ LXI H,10
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,29
+ PUSH H
+ LXI H,8
+ PUSH H
+ LXI H,12
+ PUSH H
+ LXI H,.1+255
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,0
+ PUSH H
+ LXI H,23
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ RET
+.2 EQU -136
+.1:
+ DB 112,111,115,116,32,71,69,84,73,78,70,79,32,105,114
+ DB 101,103,104,108,32,105,115,32,48,120,37,48,52,120,10
+ DB 0,66,65,78,75,69,82,46,67,79,77,32,37,100,47
+ DB 37,100,47,37,100,32,118,37,100,46,37,100,46,37,100
+ DB 46,37,100,0,32,100,119,103,32,45,32,68,105,115,112
+ DB 108,97,121,32,77,101,109,111,114,121,32,66,97,110,107
+ DB 32,67,104,97,114,97,99,116,101,114,105,115,116,105,99
+ DB 115,0,82,79,77,32,66,97,110,107,49,0,82,77,74
+ DB 32,61,32,37,100,0,82,77,78,32,61,32,37,100,0
+ DB 82,85,80,32,61,32,37,100,0,82,84,80,32,61,32
+ DB 37,100,0,37,115,0,67,66,73,79,83,32,72,68,82
+ DB 0,82,77,74,32,61,32,37,100,0,82,77,78,32,61
+ DB 32,37,100,0,82,85,80,32,61,32,37,100,0,82,84
+ DB 80,32,61,32,37,100,0,37,115,0,37,115,0,66,65
+ DB 78,75,69,82,46,67,79,77,0,82,77,74,32,61,32
+ DB 37,100,0,82,77,78,32,61,32,37,100,0,82,85,80
+ DB 32,61,32,37,100,0,82,84,80,32,61,32,37,100,0
+ DB 37,48,50,100,37,48,50,100,37,48,50,100,0
+ extrn crtlc_
+ extrn crtclr_
+ extrn crtinit_
+ extrn printf_
+ extrn diagnose_
+ extrn hregde_
+ extrn hregbc_
+ extrn bioscall_
+ extrn ireghl_
+ extrn bdoscall_
+ extrn dregde_
+ extrn dregbc_
+ extrn memset_
+ extrn memcpy_
+ extrn .eq
+ extrn .ul
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/BANKER.C b/Apps/crossdev/BANKER.C
new file mode 100644
index 00000000..b6974de6
--- /dev/null
+++ b/Apps/crossdev/BANKER.C
@@ -0,0 +1,153 @@
+/* banker.c 6/7/2012 dwg - */
+
+#include "stdio.h"
+#include "stdlib.h"
+#include "memory.h"
+
+/* #include "cpmbind.h" */
+
+#include "std.h"
+#include "infolist.h"
+#include "metadata.h"
+
+/* #include "setlunum.h" */
+
+#include "applvers.h"
+#include "bdoscall.h"
+#include "cpmbdos.h"
+#include "bioscall.h"
+#include "cpmbios.h"
+#include "diagnose.h"
+#include "cnfgdata.h"
+#include "syscfg.h"
+#include "applvers.h"
+
+#define COL1 0
+#define COL2 (80/3)
+#define COL3 (2*COL2)
+#define LINE 2
+
+#define BDOS 5 /* memory address of BDOS invocation */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+struct SYSCFG * pSYSCFG;
+struct BIOS * pCBIOS;
+
+int main(argc,argv)
+ int argc;
+ char *argv[] ;
+{
+
+ char * varloc;
+ char * tstloc;
+ char temp[128];
+
+ int i;
+ int bFirst;
+
+ bFirst = 0;
+
+ ireghl = pGETINFO;
+ bioscall();
+ pINFOLIST = ireghl;
+ printf("post GETINFO ireghl is 0x%04x\n",pINFOLIST);
+
+ pCBIOS = 0x0e600;
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+ pSYSCFG = HIGHSEG;
+
+ crtinit(pSYSCFG->cnfgdata.termtype);
+ crtclr();
+ crtlc(0,0);
+
+ printf("BANKER.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 Memory Bank Characteristics");
+
+ hregbc = 0x0f000;
+ hregde = 0x0c000;
+ diagnose();
+ pSYSCFG = 0x0C000;
+
+ crtlc(LINE+0,COL1);
+ crtlc(LINE+1,COL1);
+ printf("ROM Bank1");
+ crtlc(LINE+2,COL1);
+ printf("RMJ = %d",pSYSCFG->cnfgdata.rmj);
+ crtlc(LINE+3,COL1);
+ printf("RMN = %d",pSYSCFG->cnfgdata.rmn);
+ crtlc(LINE+4,COL1);
+ printf("RUP = %d",pSYSCFG->cnfgdata.rup);
+ crtlc(LINE+5,COL1);
+ printf("RTP = %d",pSYSCFG->cnfgdata.rtp);
+ crtlc(LINE+7,COL1);
+ varloc = pSYSCFG->varloc;
+/* dregde = (unsigned int)varloc-0x200+0x0c000; */
+ dregde = (unsigned int)varloc+0x0c000;
+
+ dregbc = 9;
+ bdoscall();
+ crtlc(LINE+8,COL1);
+/* tstloc = 0x0c000-0x0200+(unsigned int)pSYSCFG->tstloc; */
+ tstloc = 0x0c000+(unsigned int)pSYSCFG->tstloc;
+ memset(temp,0,sizeof(temp));
+ memcpy(temp,tstloc,11);
+ printf("%s",temp);
+
+ crtlc(LINE+1,COL2);
+ printf("CBIOS HDR");
+ crtlc(LINE+2,COL2);
+ printf("RMJ = %d",pCBIOS->rmj);
+ crtlc(LINE+3,COL2);
+ printf("RMN = %d",pCBIOS->rmn);
+ crtlc(LINE+4,COL2);
+ printf("RUP = %d",pCBIOS->rup);
+ crtlc(LINE+5,COL2);
+ printf("RTP = %d",pCBIOS->rtp);
+ /* */
+ crtlc(LINE+7,COL2);
+ varloc = pINFOLIST->varloc;
+ memset(temp,0,sizeof(temp));
+ memcpy(temp,varloc,sizeof(temp)-1);
+ for(i=0;itstloc;
+ memset(temp,0,sizeof(temp));
+ memcpy(temp,tstloc,11);
+ printf("%s",temp);
+
+ crtlc(LINE+1,COL3);
+ printf("BANKER.COM");
+ crtlc(LINE+2,COL3);
+ printf("RMJ = %d",A_RMJ);
+ crtlc(LINE+3,COL3);
+ printf("RMN = %d",A_RMN);
+ crtlc(LINE+4,COL3);
+ printf("RUP = %d",A_RUP);
+ crtlc(LINE+5,COL3);
+ printf("RTP = %d",A_RTP);
+
+ crtlc(LINE+8,COL3);
+ printf("%02d%02d%02d",A_YR,A_MONTH,A_DAY);
+ crtlc(23,0);
+}
+
+/*****************/
+/* eof - cview.c */
+/*****************/
+
\ No newline at end of file
diff --git a/Apps/crossdev/BANNER.ASM b/Apps/crossdev/BANNER.ASM
new file mode 100644
index 00000000..935a8671
--- /dev/null
+++ b/Apps/crossdev/BANNER.ASM
@@ -0,0 +1,156 @@
+; banner.asm 9/5/2012 dwg - new version semantics - #.#.# (#)
+
+ maclib portab
+ maclib globals
+ maclib cpmbios
+ maclib cpmbdos
+ maclib bioshdr
+ maclib printers
+ maclib cpmappl
+ maclib applvers
+
+ cseg
+
+
+; entered with argv in hl
+ public x$banner
+x$banner:
+ shld argv
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
+
+
+ printf '----------------------------------------'
+ print crlf
+ lhld xprog ! xchg ! mvi c,9 ! call BDOS
+ printf ' '
+ IF A$MONTH LT 10
+ conout ' '
+ ENDIF
+ IF A$DAY LT 10
+ conout ' '
+ ENDIF
+ lxi h,A$MONTH
+ call pr$d$word
+ conout '/'
+ lxi h,A$DAY
+ call pr$d$word
+ conout '/'
+ lxi h,A$YEAR
+ call pr$d$word
+ printf ' '
+ printf 'Version '
+ lxi h,A$RMJ
+ call pr$d$word
+ conout '.'
+ lxi h,A$RMN
+ call pr$d$word
+ conout '.'
+ lxi h,A$RUP
+ call pr$d$word
+ printf ' ('
+ lxi h,A$RTP
+ call pr$d$word
+ conout ')'
+ print crlf
+ printf 'S/N '
+
+ lhld xprod ! xchg ! mvi c,9 ! call BDOS
+
+ conout '-'
+
+ lhld xorig ! xchg ! mvi c,9 ! call BDOS
+
+ conout '-'
+
+; print xser
+ lhld xser ! xchg ! mvi c,9 ! call BDOS
+
+ printf ' '
+; printf 'All Rights Reserved'
+ printf 'Licensed under GPL3'
+ print crlf
+ printf 'Copyright (C) 2011-12'
+
+ lhld xnam ! xchg ! mvi c,9 ! call BDOS
+
+ print crlf
+ printf '----------------------------------------'
+ print crlf
+
+ ret
+
+
+; entered with argv in hl
+ public x$sbanner
+x$sbanner:
+ shld argv
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
+ mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
+
+
+; printf '----------------------------------------'
+; print crlf
+ lhld xprog ! xchg ! mvi c,9 ! call BDOS
+ printf ' '
+ IF A$MONTH LT 10
+ conout ' '
+ ENDIF
+ IF A$DAY LT 10
+ conout ' '
+ ENDIF
+ lxi h,A$MONTH
+ call pr$d$word
+ conout '/'
+ lxi h,A$DAY
+ call pr$d$word
+ conout '/'
+ lxi h,A$YEAR
+ call pr$d$word
+ printf ' '
+ printf 'Vers. '
+ lxi h,A$RMJ
+ call pr$d$word
+ conout '.'
+ lxi h,A$RMN
+ call pr$d$word
+ conout '.'
+ lxi h,A$RUP
+ call pr$d$word
+ printf ' ( '
+ lxi h,A$RTP
+ call pr$d$word
+ printf ') '
+ printf 'COPR Douglas Goodall Licensed w/GPLv3'
+
+
+ print crlf
+
+ ret
+
+
+;----------------------------------------------------------------
+
+argv ds 2
+;----------------
+xprog ds 2
+xvers ds 2
+xprod ds 2
+xorig ds 2
+xser ds 2
+xnam ds 2
+
+crlf db CR,LF,'$'
+
+ end
+
+; eof - banner.asm
+
\ No newline at end of file
diff --git a/Apps/crossdev/BANNER.LIB b/Apps/crossdev/BANNER.LIB
new file mode 100644
index 00000000..fca38939
--- /dev/null
+++ b/Apps/crossdev/BANNER.LIB
@@ -0,0 +1,18 @@
+; banner.lib 7/19/2012 dwg - for 2.0.0.0 B22
+; banner.lib 2/17/2012 dwg - review for release 1.5.1.0
+; banner.lib 2/11/2012 dwg - banner library declarations
+
+ extrn x$banner
+banner macro argv
+ lxi h,argv
+ call x$banner
+ endm
+
+ extrn x$sbanner
+sbanner macro argv
+ lxi h,argv
+ call x$sbanner
+ endm
+
+; eof - banner.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/BANNER.REL b/Apps/crossdev/BANNER.REL
new file mode 100644
index 00000000..e3566c2b
Binary files /dev/null and b/Apps/crossdev/BANNER.REL differ
diff --git a/Apps/crossdev/BANNER.SYM b/Apps/crossdev/BANNER.SYM
new file mode 100644
index 00000000..78bc51c5
--- /dev/null
+++ b/Apps/crossdev/BANNER.SYM
@@ -0,0 +1,29 @@
+000F ADAY 0009 AL0OFS 000A AL1OFS 000E ALVOFS 0002 AMONTH
+041E ARGV 0002 ARMJ 0002 ARMN 0000 ARTP 0000 ARUP
+07DD AYEAR 0005 BDOS E600 BIBOOT E609 BICONIN E60C BICONOUT
+E606 BICONST 0000 BIDRVA 0001 BIDRVB 0002 BIDRVC 0003 BIDRVD
+0004 BIDRVE 0005 BIDRVF 0006 BIDRVG 0007 BIDRVH E618 BIHOME
+E60F BILIST E62D BILISTST E612 BIPUNCH E627 BIREAD E615 BIREADER
+E630 BISECTRN E61B BISELDSK E624 BISETDMA E621 BISETSEC E61E BISETTRK
+E603 BIWBOOT E62A BIWRITE 0003 BLMOFS 0002 BSHOFS 0001 BYTESIZE
+000B CKSOFS 003A COLON 000D CR 0001 CREAD 042C CRLF
+0020 CROFS 000C CSVOFS 0012 CUROFS 0002 CWRITE 0010 D0OFS
+0008 DBFOFS 0080 DEFBUF 000F DPBLEN 000A DPBOFS 0010 DPHLEN
+0001 DRIVEB 0007 DRMOFS 0000 DROFS 000D DSKRESET 0005 DSMOFS
+0001 ENGLISH 001B ESC 0004 EXMOFS 000C EXOFS 0001 F1OFS
+0002 F2OFS 0003 F3OFS 0004 F4OFS 0005 F5OFS 0006 F6OFS
+0007 F7OFS 0008 F8OFS 0000 FALSE 0024 FCBLEN 0010 FCLOSE
+0023 FCOMPSIZE 0013 FDELETE 0016 FMAKE 000F FOPEN 0017 FRENAME
+0020 LENFCB 000A LF 0010 LU1OFS 0011 LU2OFS 0010 MAXLABEL
+0000 NEVER 0014 NLUOFS 00E5 OEMID 000D OFFOFS 0000 PRDWORD
+0000 PRHBYTE 0000 PRHWORD 005C PRIFCB 0009 PRINTSTR 0021 R0OFS
+0022 R1OFS 0023 R2OFS 000F RCOFS 000A READCONBUF 0014 READSEQ
+0025 RESETDRIVE 0019 RETCURR 000C RETVERNO E64B RMJ E64C RMN
+E64E RTP E64D RUP 0002 RV1OFS 0004 RV2OFS 0006 RV3OFS
+000D S1OFS 000E S2OFS 006C SECFCB 000E SELDSK 001A SETDMA
+0024 SETRANDREC 0000 SPANISH 0000 SPTOFS 0200 STACKSIZE 0009 T1OFS
+000A T2OFS 000B T3OFS 0000 TERMCPM 0001 TRUE 0002 WORDSIZE
+0022 WRITERAND 0028 WRITERANDZF 0015 WRITESEQ 0000 XBANNER
+0000 XLTOFS 042A XNAM 0426 XORIG 0424 XPROD 0420 XPROG
+02AB XSBANNER 0428 XSER 0422 XVERS
+
\ No newline at end of file
diff --git a/Apps/crossdev/BDOSCALL.O b/Apps/crossdev/BDOSCALL.O
new file mode 100644
index 00000000..ce37563d
Binary files /dev/null and b/Apps/crossdev/BDOSCALL.O differ
diff --git a/Apps/crossdev/BDOSCALL.REL b/Apps/crossdev/BDOSCALL.REL
new file mode 100644
index 00000000..ce37563d
Binary files /dev/null and b/Apps/crossdev/BDOSCALL.REL differ
diff --git a/Apps/crossdev/BIOSCALL.O b/Apps/crossdev/BIOSCALL.O
new file mode 100644
index 00000000..9a6a9fba
Binary files /dev/null and b/Apps/crossdev/BIOSCALL.O differ
diff --git a/Apps/crossdev/BIOSCALL.REL b/Apps/crossdev/BIOSCALL.REL
new file mode 100644
index 00000000..9a6a9fba
Binary files /dev/null and b/Apps/crossdev/BIOSCALL.REL differ
diff --git a/Apps/crossdev/BIOSHDR.LIB b/Apps/crossdev/BIOSHDR.LIB
new file mode 100644
index 00000000..f315a292
--- /dev/null
+++ b/Apps/crossdev/BIOSHDR.LIB
@@ -0,0 +1,385 @@
+; biohdr.lib 2/19/2012 dwg - BIOS header display macros
+; copyright (C) 2011 Douglas Goodall. All Rights Reserved.
+; Licensed to N8VEM Community for non-commercial use only.
+
+; 2/19/2012 dwg - review for release 1.5.1.0
+; 2/05/2012 dwg - added DSKM (DM_ROM...) better late than never
+; 2/05/2012 dwg - added prpsdenable,prpsdtrace, and prpsdcapacity
+; 1/16/2012 dwg - extend LU numbers to 0x1C entries (256MB)
+; 1/11/2012 dwg - added new setlu for 1.4 slice technique
+; 12/18/2011 dwg - added REVISION (from svn)
+; 12/07/2011 dwg - BIOS header enhancement for version 1.3
+
+; Common Configuration items,
+; Valid in all configurations
+RMJ equ 0E64Bh
+RMN equ RMJ+1
+RUP equ RMN+1
+RTP equ RUP+1
+
+ if 0
+BANPTR equ RTP+1
+DKMP equ BANPTR+2
+DBBOOL equ DKMP+2 ; Disk Boot Boolean
+DBDRV equ DBBOOL+1 ; Disk Boot Drive Code
+FREQ equ DBDRV+1
+PLAT equ FREQ+1 ; Hardware Platform
+DIOPLT equ PLAT+1
+VDUPLT equ DIOPLT+1
+ROMSIZ equ VDUPLT+1
+RAMSIZ equ ROMSIZ+2
+CRAM equ RAMSIZ+2
+DSKY equ CRAM+1 ; Is Display/Keyboard Attached?
+UART equ DSKY+1 ; Is UART Enabled?
+VDUEN equ UART+1
+FDEN equ VDUEN+1 ; Is Floppy Disk Support Enabled
+FDTR equ FDEN+1 ; Is Floppy Disk Error Tracing Enabled?
+FMED equ FDTR+1 ; Floppy Disk Media Type
+FALT equ FMED+1 ; Alternative Floppy Disk Media Type
+FAUT equ FALT+1 ; Is Floppy Disk Automatic Sensing Enabled?
+IDEN equ FAUT+1 ; Is On-Board IDE Support Enabled
+IDTR equ IDEN+1
+IDE8 equ IDTR+1
+IDCP equ IDE8+1 ; 1/13/2012 IDE Capacity
+PPEN equ IDCP+2 ; Is PPIDE Support Enablned?
+PPTR equ PPEN+1 ; Is PPIDE Tracing Enabled?
+PP8B equ PPTR+1
+PPCP equ PP8B+1 ; 1/13/2012 PPIDE Capacity
+PSLW equ PPCP+2 ; Use NOPs for recovery-time compensation
+BTYP equ PSLW+1
+BTTO equ BTYP+1
+BTDF equ BTTO+1
+BAUD equ BTDF+1 ; What is the Console Baud Rate
+
+; Only Valid if PLATFORM == PLT_N8
+CLKDIV equ BAUD+2 ; Z180_CLKDIV
+MEMWAIT equ CLKDIV+1 ; Z180_MEMWAIT
+IOWAIT equ MEMWAIT+1 ; Z180_IOWAIT
+CNTLB0 equ IOWAIT+1 ; Z180_CNTLB0
+CNTLB1 equ CNTLB0+1 ; Z180_CNTLB1
+SDENABLE equ CNTLB1+1
+SDTRACE equ SDENABLE+1
+SDCP equ SDTRACE+1 ; 1/13/2012 SD Capacity
+VDPTR equ SDCP+2 ; pointer to VDU Data
+FDPTR equ VDPTR+2 ; pointer to FD Data
+IDEPTR equ FDPTR+2 ; pointer to IDE Data
+PPIPTR equ IDEPTR+2 ; pointer to PPIDE_DATA Data
+PPIPTR2 equ PPIPTR+2 ; pointer to PPIDE.ASM DATA
+
+DEFIO equ PPIPTR2+2 ; pointer to DEFIOBYTE
+LDRC equ DEFIO+1 ; pointer to LDRCON
+DBGC equ LDRC+1 ; pointer to DBGCON
+TTYP equ DBGC+1 ; pointer to TERMTYPE
+REV equ TTYP+1 ; subversion revision
+
+TMDT equ REV+2 ; startup date and time
+
+PSDE equ TMDT+6 ; prpsdenable
+PSDT equ PSDE+1 ; prpsdtrace
+PSDC equ PSDT+1 ; prpsdcapacity
+PRCE equ PSDC+2
+
+DSKM equ PRCE+1 ; DM_ROM...
+
+DTSZ equ DSKM+1 ; DATASIZE
+
+; LU0 LU1 LU2 LU3 LU4 LU5 LU6 LU7 LU8 LU9
+; 41 82 c3 104 145 186 1c7 208 249 286
+;
+; LU10 LU11 LU12 LU13 LU14 LU15 LU16
+; 2c7 308 349 38a 3cb 40c 44d
+
+LU0 equ 0 ; 041h ; PPIDE1 offset for first slice (default)
+LU1 equ 1 ; 082h ; PPIDE1 offset for second slice
+LU2 equ 2 ; 0C3h ; PPIDE1 offset for third slice
+LU3 equ 3 ; 104h ; PPIDE1 offset for fourth slice
+LU4 equ 4 ; 145h ; PPIDE1 offset for fifth slice
+LU5 equ 5 ; 186h ; PPIDE1 offset for sixth slice
+LU6 equ 6 ; 1c7h ; PPIDE1 offset for seventh slice
+LU7 equ 7 ; 208h ; PPIDE1 offset for eighth slice
+LU8 equ 8 ; 249h ; PPIDE1 offset for ninth slice
+LU9 equ 9 ; 286h ; PPIDE1 offset for tenth slice
+LU10 equ 10
+LU11 equ 11
+LU12 equ 12
+LU13 equ 13
+LU14 equ 14
+LU15 equ 15
+LU16 equ 16
+LU17 equ 17
+LU18 equ 18
+LU19 equ 19
+LU20 equ 20
+LU21 equ 21
+LU22 equ 22
+LU23 equ 23
+LU24 equ 24
+LU25 equ 25
+LU26 equ 26 ; 0x1a
+LU27 equ 27 ; 0x1b (1Cth entry)
+
+ endif
+
+DRIVEB equ 1 ; 0=A, 1=B...
+
+
+setlu13 macro offset
+ lxi h,PPIPTR2 ; set pointer to ppide.asm data
+ mov e,m ; dereference pointer
+ inx h
+ mov d,m ; de -> ppide.asm data
+ xchg ; hl -> ppide.asm data
+ lxi d,6 ; offset to offset
+ dad d ; hl -> offset in ppide.asm data
+ lxi d,offset ; load caller's parameter in de
+ mov m,e ; stuff LO offset byte into offset
+ inx h ; bump ptr
+ mov m,d ; stuff HO offset byte into offset
+ mvi c,13 ; BDOS DSKRESET
+ call 5 ; call BDOS
+ endm
+
+getlu13 macro
+ lxi h,PPIPTR2 ; set pointer to ppide.asm data
+ mov e,m ; dereference pointer
+ inx h
+ mov d,m ; de -> ppide.asm data
+ xchg ; hl -> ppide.asm data
+ lxi d,6 ; offset to offset
+ dad d ; hl -> offset in ppide.asm data
+ mov e,m ; pick up LO byte of offset
+ inx h ; bump ptr
+ mov d,m ; pick up HO byte of offset
+ xchg ; hl = offset
+ endm
+
+setlu14 macro offset
+ lxi h,PPIPTR2 ; set pointer to ppide.asm data
+ mov e,m ; dereference pointer
+ inx h
+ mov d,m ; de -> ppide.asm data
+ xchg ; hl -> ppide.asm data
+ lxi d,6 ; offset to offset
+ dad d ; hl -> offset in ppide.asm data
+ lxi d,offset ; load caller's parameter in de
+ mov m,e ; stuff LO offset byte into offset
+ inx h ; bump ptr
+ mov m,d ; stuff HO offset byte into offset
+ mvi c,13 ; BDOS DSKRESET
+ call 5 ; call BDOS
+ endm
+
+getlu14 macro
+ lxi h,PPIPTR2 ; set pointer to ppide.asm data
+ mov e,m ; dereference pointer
+ inx h
+ mov d,m ; de -> ppide.asm data
+ xchg ; hl -> ppide.asm data
+ lxi d,6 ; offset to offset
+ dad d ; hl -> offset in ppide.asm data
+ mov e,m ; pick up LO byte of offset
+ inx h ; bump ptr
+ mov d,m ; pick up HO byte of offset
+ xchg ; hl = offset
+ endm
+
+setlu macro drive,slice
+ local dontboth,msg,msg2
+ mvi c,drive
+ call BISELDSK
+ lxi d,16
+ dad d
+ mov a,m
+ cpi 'L'
+ jnz dontboth
+ inx h
+ mov a,m
+ cpi 'U'
+ jnz dontboth
+ inx h
+ mvi a,slice
+ mov m,a
+ print msg
+ mvi a,drive
+ adi 'A'
+ mov e,a
+ mvi c,2
+ call BDOS
+ print msg2
+ lxi h,slice
+ call pr$d$word
+ jmp dontboth
+msg db CR,LF,'Drive $'
+msg2 db ': set to Logical Unit (slice) $'
+dontboth:
+ endm
+
+
+xluset macro
+ local ldrive,lslice,dontboth,msg,msg2
+ ; C = DRIVE
+ ; A = SLICE
+ sta lslice
+ mov a,c
+ sta ldrive
+
+ call BISELDSK ; uses c parameter (drive)
+ lxi d,16
+ dad d
+ mov a,m
+ cpi 'L'
+ jnz dontboth
+ inx h
+ mov a,m
+ cpi 'U'
+ jnz dontboth
+ inx h
+ lda lslice
+ mov m,a ; put slice into CURRENT
+
+; print msg
+; lda ldrive
+; adi 'A'
+; mov e,a
+; mvi c,2
+; call BDOS
+; print msg2
+; lda lslice
+; mov l,a
+; mvi h,0
+; call pr$d$word
+
+ jmp dontboth
+msg db CR,LF,'Drive $'
+msg2 db ': set to Logical Unit (slice) $'
+ldrive db 0
+lslice db 0
+dontboth:
+ endm
+
+
+
+
+
+
+
+hdrlit macro ptr,val,msg
+ local notval
+ lxi h,ptr
+ mvi a,val
+ cmp m
+ jnz notval
+ print msg
+notval:
+ endm
+
+
+hdrbool macro ptr,tmsg,fmsg
+ local itstrue,itsfalse,imdone
+ enter
+ lxi h,ptr
+ mov a,m
+ cpi TRUE
+ jnz itsfalse
+ lxi d,tmsg
+ jmp imdone
+itsfalse: lxi d,fmsg
+imdone: mvi c,PRINTSTR
+ call BDOS
+ leave
+ endm
+
+hdrbyte macro ptr,msg
+ enter
+ mvi c,PRINTSTR
+ lxi d,msg
+ call BDOS
+ lxi h,ptr
+ mov a,m
+ call pr$h$byte
+
+ conout '('
+ mov e,m
+ mov d,0
+ xchg
+ call pr$d$word
+ conout ')'
+
+ leave
+ endm
+
+hdrpbyte macro ptr,msg
+ enter
+ mvi c,PRINTSTR
+ lxi d,msg
+ call BDOS
+ lxi h,PTR
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ mov a,m
+ call pr$h$byte
+
+; conout ' '
+ conout '('
+ mov e,m
+ mov d,0
+ xchg
+ call pr$d$word
+ conout ')'
+ leave
+ endm
+
+hdrword macro ptr,msg
+ enter
+
+ mvi c,PRINTSTR
+ lxi d,msg
+ call BDOS
+
+ lxi h,ptr
+ inx h
+ mov a,m
+ call pr$h$byte
+
+ lxi h,ptr
+ mov a,m
+ call pr$h$byte
+
+ conout '('
+ lxi h,ptr
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ call pr$d$word
+ conout ')'
+ leave
+ endm
+
+syncerr macro
+ print syncmsg
+ exit
+ endm
+
+hdrvalid macro
+ local byte1ok,byte2ok
+ enter
+ lxi h,CFDA
+ mov a,m
+ cpi 0DAh
+ jz byte1ok
+ syncerr
+byte1ok:
+ inx h
+ mov al,m
+ cpi 0CFh
+ jz byte2ok
+ syncerr
+byte2ok:
+ leave
+ endm
+
+; eof - bioshdr.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/CBANNER.ASM b/Apps/crossdev/CBANNER.ASM
new file mode 100644
index 00000000..7648636c
--- /dev/null
+++ b/Apps/crossdev/CBANNER.ASM
@@ -0,0 +1,208 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ DSEG
+ public lines_
+lines_:
+ DW .1+0
+ CSEG
+.1:
+ DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
+ DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
+ DB 45,45,45,45,45,45,45,45,45,45,0
+ DSEG
+ public line1_
+line1_:
+ DW .2+0
+ CSEG
+.2:
+ DB 49,50,51,52,53,54,55,56,46,49,50,51,32,109,109
+ DB 47,100,100,47,121,121,121,121,32,32,86,101,114,115,105
+ DB 111,110,32,120,46,120,46,120,46,120,0
+ DSEG
+ public line2_
+line2_:
+ DW .3+0
+ CSEG
+.3:
+ DB 83,47,78,32,67,80,77,56,48,45,68,87,71,45,54
+ DB 53,52,51,50,49,32,76,105,99,101,110,115,101,100,32
+ DB 117,110,100,101,114,32,71,80,76,51,0
+ DSEG
+ public line3_
+line3_:
+ DW .4+0
+ CSEG
+.4:
+ DB 67,111,112,121,114,105,103,104,116,32,40,67,41,32,50
+ DB 48,49,49,45,49,50,32,68,111,117,103,108,97,115,32
+ DB 87,46,32,71,111,111,100,97,108,108,0
+ PUBLIC sbanner_
+sbanner_: lxi d,.6
+ call csave
+ LXI H,8-.6
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.5+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,2013
+ PUSH H
+ LXI H,16
+ PUSH H
+ LXI H,1
+ PUSH H
+ LXI H,.5+4
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,3
+ PUSH H
+ LXI H,2
+ PUSH H
+ LXI H,.5+18
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,10
+ DAD SP
+ SPHL
+ LXI H,.5+39
+ PUSH H
+ CALL printf_
+ POP D
+ RET
+.6 EQU -128
+.5:
+ DB 37,115,32,0,37,50,100,47,37,50,100,47,37,52,100
+ DB 32,32,0,86,101,114,115,105,111,110,32,37,100,46,37
+ DB 100,46,37,100,46,37,100,32,0,67,79,80,82,32,68
+ DB 111,117,103,108,97,115,32,71,111,111,100,97,108,108,32
+ DB 76,105,99,101,110,115,101,100,32,119,47,71,80,76,118
+ DB 51,10,0
+ PUBLIC banner_
+banner_: lxi d,.8
+ call csave
+ LHLD lines_
+ PUSH H
+ LXI H,.7+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.8
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-122-.8
+ DAD SP
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+.9:
+ LXI H,-124-.8
+ DAD SP
+ PUSH H
+ CALL strlen_
+ POP D
+ PUSH H
+ LXI H,12
+ POP D
+ XCHG
+ CALL .gt
+ JZ .10
+ LXI H,.7+4
+ PUSH H
+ LXI H,-122-.8
+ DAD SP
+ PUSH H
+ CALL strcat_
+ POP D
+ POP D
+ JMP .9
+.10:
+ LXI H,-124-.8
+ DAD SP
+ PUSH H
+ LXI H,.7+6
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,2013
+ PUSH H
+ LXI H,16
+ PUSH H
+ LXI H,1
+ PUSH H
+ LXI H,.7+10
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,3
+ PUSH H
+ LXI H,2
+ PUSH H
+ LXI H,.7+24
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,10
+ DAD SP
+ SPHL
+ LHLD line2_
+ PUSH H
+ LXI H,.7+45
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LHLD line3_
+ PUSH H
+ LXI H,.7+49
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LHLD lines_
+ PUSH H
+ LXI H,.7+53
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ RET
+.8 EQU -128
+.7:
+ DB 37,115,10,0,32,0,37,115,32,0,37,50,100,47,37
+ DB 50,100,47,37,52,100,32,32,0,86,101,114,115,105,111
+ DB 110,32,37,100,46,37,100,46,37,100,46,37,100,10,0
+ DB 37,115,10,0,37,115,10,0,37,115,10,0
+ extrn strcat_
+ extrn strlen_
+ extrn strcpy_
+ extrn printf_
+ extrn .gt
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CBANNER.O b/Apps/crossdev/CBANNER.O
new file mode 100644
index 00000000..5759d5a0
Binary files /dev/null and b/Apps/crossdev/CBANNER.O differ
diff --git a/Apps/crossdev/CC.COM b/Apps/crossdev/CC.COM
new file mode 100644
index 00000000..1fbf701b
Binary files /dev/null and b/Apps/crossdev/CC.COM differ
diff --git a/Apps/crossdev/CC.TMP b/Apps/crossdev/CC.TMP
new file mode 100644
index 00000000..24a91743
--- /dev/null
+++ b/Apps/crossdev/CC.TMP
@@ -0,0 +1,333 @@
+ extrn .begin,.chl,.swt
+ extrn zsave,zret
+ global termtype_,1
+ DSEG
+ public wy50row_
+wy50row_:
+ DB 32
+ DB 33
+ DB 34
+ DB 35
+ DB 36
+ DB 37
+ DB 38
+ DB 39
+ DB 40
+ DB 41
+ DB 42
+ DB 43
+ DB 44
+ DB 45
+ DB 46
+ DB 47
+ DB 48
+ DB 49
+ DB 50
+ DB 51
+ DB 52
+ DB 53
+ DB 54
+ DB 55
+ CSEG
+ DSEG
+ public wy50col_
+wy50col_:
+ DB 32
+ DB 33
+ DB 34
+ DB 35
+ DB 36
+ DB 37
+ DB 38
+ DB 39
+ DB 40
+ DB 41
+ DB 42
+ DB 43
+ DB 44
+ DB 45
+ DB 46
+ DB 47
+ DB 48
+ DB 49
+ DB 50
+ DB 51
+ DB 52
+ DB 53
+ DB 54
+ DB 55
+ DB 56
+ DB 57
+ DB 58
+ DB 59
+ DB 60
+ DB 61
+ DB 62
+ DB 63
+ DB 64
+ DB 65
+ DB 66
+ DB 67
+ DB 68
+ DB 69
+ DB 70
+ DB 71
+ DB 72
+ DB 73
+ DB 74
+ DB 75
+ DB 76
+ DB 77
+ DB 78
+ DB 79
+ DB 80
+ DB 81
+ DB 82
+ DB 83
+ DB 84
+ DB 85
+ DB 86
+ DB 87
+ DB 88
+ DB 89
+ DB 90
+ DB 91
+ DB 92
+ DB 93
+ DB 94
+ DB 95
+ DB 96
+ DB 97
+ DB 98
+ DB 99
+ DB 100
+ DB 101
+ DB 102
+ DB 103
+ DB 104
+ DB 105
+ DB 106
+ DB 107
+ DB 108
+ DB 109
+ DB 110
+ DB 111
+ CSEG
+ PUBLIC crtinit_
+crtinit_: lxi d,.2
+ call zsave
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ XCHG
+ MOV A,L
+ STA termtype_
+ RET
+.2 EQU 0
+ PUBLIC crtclr_
+crtclr_: lxi d,.3
+ call zsave
+ LDA termtype_
+ MOV L,A
+ MVI H,0
+ JMP .4
+.6:
+ LXI H,0
+ XCHG
+ LXI H,6-.3
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .8
+.7:
+ LXI H,6-.3
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.8:
+ LXI H,6-.3
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,43
+ CALL .lt
+ JZ .9
+ LXI H,10
+ PUSH H
+ LXI H,13
+ PUSH H
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ JMP .7
+.9:
+ JMP .5
+.10:
+ LXI H,27
+ PUSH H
+ LXI H,.1+5
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .5
+.11:
+ LXI H,27
+ PUSH H
+ LXI H,.1+11
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .5
+.12:
+ LXI H,27
+ PUSH H
+ LXI H,27
+ PUSH H
+ LXI H,.1+15
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ JMP .5
+.4:
+ CALL .swt
+ DW 4
+ DW 0,.6
+ DW 1,.10
+ DW 2,.11
+ DW 3,.12
+ DW .5
+.5:
+ RET
+.3 EQU -2
+.1:
+ DB 37,99,37,99,0,37,99,91,50,74,0,37,99,43,0
+ DB 37,99,74,37,99,72,0
+ PUBLIC crtlc_
+crtlc_: lxi d,.14
+ call zsave
+ LDA termtype_
+ MOV L,A
+ MVI H,0
+ JMP .15
+.17:
+ JMP .16
+.18:
+ LXI H,102
+ PUSH H
+ LXI H,16-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,16-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,27
+ PUSH H
+ LXI H,.13+0
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,10
+ DAD SP
+ SPHL
+ JMP .16
+.19:
+ LXI H,14-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,wy50col_
+ DAD D
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,14-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,wy50row_
+ DAD D
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,27
+ PUSH H
+ LXI H,.13+11
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ JMP .16
+.20:
+ LXI H,14-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,32
+ DAD D
+ PUSH H
+ LXI H,14-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,32
+ DAD D
+ PUSH H
+ LXI H,27
+ PUSH H
+ LXI H,.13+19
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ JMP .16
+.15:
+ CALL .swt
+ DW 4
+ DW 0,.17
+ DW 1,.18
+ DW 2,.19
+ DW 3,.20
+ DW .16
+.16:
+ RET
+.14 EQU -2
+.13:
+ DB 37,99,91,37,100,59,37,100,37,99,0,37,99,61,37
+ DB 99,37,99,0,37,99,89,37,99,37,99,0
+ extrn printf_
+ extrn .lt
+ END
diff --git a/Apps/crossdev/CHARS.ASM b/Apps/crossdev/CHARS.ASM
new file mode 100644
index 00000000..47bae2f6
--- /dev/null
+++ b/Apps/crossdev/CHARS.ASM
@@ -0,0 +1,970 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global pDPHMAP_,2
+ global pDPHVEC_,24
+ DSEG
+ public pSYSCFG_
+pSYSCFG_:
+ DW -16384
+ CSEG
+ DSEG
+ public map_
+map_:
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 1
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ CSEG
+ DSEG
+ public attroff_
+attroff_:
+ DB 27
+ DB 91
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public attrbold_
+attrbold_:
+ DB 27
+ DB 91
+ DB 49
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public attrlow_
+attrlow_:
+ DB 27
+ DB 91
+ DB 50
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public attrundr_
+attrundr_:
+ DB 27
+ DB 91
+ DB 52
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public attrblnk_
+attrblnk_:
+ DB 27
+ DB 91
+ DB 53
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public attrrevs_
+attrrevs_:
+ DB 27
+ DB 91
+ DB 55
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public attrinvs_
+attrinvs_:
+ DB 27
+ DB 91
+ DB 56
+ DB 109
+ DB 0
+ CSEG
+ DSEG
+ public graphon_
+graphon_:
+ DB 27
+ DB 70
+ DB 0
+ CSEG
+ DSEG
+ public graphoff_
+graphoff_:
+ DB 27
+ DB 71
+ DB 0
+ CSEG
+ DSEG
+ public atreset_
+atreset_:
+ DB 48
+ DB 0
+ CSEG
+ DSEG
+ public atbold_
+atbold_:
+ DB 49
+ DB 0
+ CSEG
+ DSEG
+ public atdim_
+atdim_:
+ DB 50
+ DB 0
+ CSEG
+ DSEG
+ public atundrsc_
+atundrsc_:
+ DB 52
+ DB 0
+ CSEG
+ DSEG
+ public atblink_
+atblink_:
+ DB 53
+ DB 0
+ CSEG
+ DSEG
+ public atrevs_
+atrevs_:
+ DB 55
+ DB 0
+ CSEG
+ DSEG
+ public athidden_
+athidden_:
+ DB 56
+ DB 0
+ CSEG
+ DSEG
+ public fgblack_
+fgblack_:
+ DB 51
+ DB 48
+ DB 0
+ CSEG
+ DSEG
+ public fgred_
+fgred_:
+ DB 51
+ DB 49
+ DB 0
+ CSEG
+ DSEG
+ public fggreen_
+fggreen_:
+ DB 51
+ DB 50
+ DB 0
+ CSEG
+ DSEG
+ public fgyellow_
+fgyellow_:
+ DB 51
+ DB 51
+ DB 0
+ CSEG
+ DSEG
+ public fgblue_
+fgblue_:
+ DB 51
+ DB 52
+ DB 0
+ CSEG
+ DSEG
+ public fgmagent_
+fgmagent_:
+ DB 51
+ DB 53
+ DB 0
+ CSEG
+ DSEG
+ public fgcyan_
+fgcyan_:
+ DB 51
+ DB 54
+ DB 0
+ CSEG
+ DSEG
+ public fgwhite_
+fgwhite_:
+ DB 51
+ DB 55
+ DB 0
+ CSEG
+ DSEG
+ public bgblack_
+bgblack_:
+ DB 52
+ DB 48
+ DB 0
+ CSEG
+ DSEG
+ public bgred_
+bgred_:
+ DB 52
+ DB 49
+ DB 0
+ CSEG
+ DSEG
+ public bggreen_
+bggreen_:
+ DB 52
+ DB 50
+ DB 0
+ CSEG
+ DSEG
+ public bgyellow_
+bgyellow_:
+ DB 52
+ DB 51
+ DB 0
+ CSEG
+ DSEG
+ public bgblue_
+bgblue_:
+ DB 52
+ DB 52
+ DB 0
+ CSEG
+ DSEG
+ public bgmagent_
+bgmagent_:
+ DB 52
+ DB 53
+ DB 0
+ CSEG
+ DSEG
+ public bgcyan_
+bgcyan_:
+ DB 52
+ DB 54
+ DB 0
+ CSEG
+ DSEG
+ public bgwhite_
+bgwhite_:
+ DB 52
+ DB 55
+ DB 0
+ CSEG
+ PUBLIC dispattr_
+dispattr_: lxi d,.2
+ call csave
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,27
+ PUSH H
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,10
+ DAD SP
+ SPHL
+ RET
+.2 EQU 0
+.1:
+ DB 37,99,91,37,115,59,37,115,59,37,115,109,0
+ PUBLIC main_
+main_: lxi d,.4
+ call csave
+ LXI H,1
+ XCHG
+ LXI H,8-.4
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .5
+ LXI H,1
+ XCHG
+ LXI H,2-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .7
+.6:
+ LXI H,2-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.7:
+ LXI H,2-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,8-.4
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .8
+ LXI H,2-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ XCHG
+ LXI H,10-.4
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL atoi_
+ POP D
+ PUSH H
+ LXI H,.3+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .6
+.8:
+ JMP .9
+.5:
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ CALL crtinit_
+ POP D
+ CALL crtclr_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,bgblack_
+ PUSH H
+ LXI H,fggreen_
+ PUSH H
+ LXI H,atbold_
+ PUSH H
+ CALL dispattr_
+ POP D
+ POP D
+ POP D
+ LXI H,.3+3
+ PUSH H
+ CALL banner_
+ POP D
+ LXI H,attroff_
+ PUSH H
+ LXI H,.3+9
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,bgblack_
+ PUSH H
+ LXI H,fgcyan_
+ PUSH H
+ LXI H,atbold_
+ PUSH H
+ CALL dispattr_
+ POP D
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-4-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .11
+.10:
+ LXI H,-4-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.11:
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16
+ CALL .lt
+ JZ .12
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ DAD H
+ LXI D,9
+ DAD D
+ PUSH H
+ LXI H,6
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.3+12
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .10
+.12:
+ LXI H,attroff_
+ PUSH H
+ LXI H,.3+17
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-6-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .14
+.13:
+ LXI H,-6-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.14:
+ LXI H,-6-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16
+ CALL .lt
+ JZ .15
+ LXI H,4
+ PUSH H
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,7
+ DAD D
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,bgblack_
+ PUSH H
+ LXI H,fgcyan_
+ PUSH H
+ LXI H,atbold_
+ PUSH H
+ CALL dispattr_
+ POP D
+ POP D
+ POP D
+ LXI H,-6-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.3+20
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,attroff_
+ PUSH H
+ LXI H,.3+25
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-4-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .17
+.16:
+ LXI H,-4-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.17:
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16
+ CALL .lt
+ JZ .18
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ DAD H
+ LXI D,10
+ DAD D
+ PUSH H
+ LXI H,-4-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,7
+ DAD D
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,-6-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ DAD H
+ DAD H
+ DAD H
+ XCHG
+ LXI H,-4-.4
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ LXI D,map_
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .19
+ LXI H,.3+28
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .20
+.19:
+ LXI H,-6-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ DAD H
+ DAD H
+ DAD H
+ XCHG
+ LXI H,-4-.4
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ PUSH H
+ LXI H,.3+30
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+.20:
+ JMP .16
+.18:
+ LXI H,bgblack_
+ PUSH H
+ LXI H,fgcyan_
+ PUSH H
+ LXI H,atbold_
+ PUSH H
+ CALL dispattr_
+ POP D
+ POP D
+ POP D
+ LXI H,-6-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.3+33
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,attroff_
+ PUSH H
+ LXI H,.3+40
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .13
+.15:
+.9:
+ LXI H,0
+ RET
+.4 EQU -10
+.3:
+ DB 37,99,0,67,72,65,82,83,0,37,115,0,91,37,120
+ DB 93,0,37,115,0,91,37,120,93,0,37,115,0,46,0
+ DB 37,99,0,32,32,91,37,120,93,0,37,115,0
+ extrn atoi_
+ extrn printf_
+ extrn banner_
+ extrn crtlc_
+ extrn crtclr_
+ extrn crtinit_
+ extrn diagnose_
+ extrn hregde_
+ extrn hregbc_
+ extrn .eq
+ extrn .lt
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CHARS.C b/Apps/crossdev/CHARS.C
index 242fd5c4..10d3fd1e 100644
--- a/Apps/crossdev/CHARS.C
+++ b/Apps/crossdev/CHARS.C
@@ -8,10 +8,19 @@
#include "cpm80.h"
#include "cpmappl.h"
#include "applvers.h"
+#include "cnfgdata.h"
+#include "syscfg.h"
#define TOP 0
#define LEFT 4
+#define BDOS 5 /* memory address of BDOS invocation */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+struct SYSCFG * pSYSCFG = HIGHSEG;
+
char map[256] =
{
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
@@ -92,7 +101,17 @@ int main(argc,argv)
}
} else {
- crtinit();
+
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+ pSYSCFG = HIGHSEG;
+
+/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
+
+
+ crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
@@ -130,4 +149,4 @@ int main(argc,argv)
return 0;
}
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/CHARS.SUB b/Apps/crossdev/CHARS.SUB
new file mode 100644
index 00000000..3a21c6d9
--- /dev/null
+++ b/Apps/crossdev/CHARS.SUB
@@ -0,0 +1,18 @@
+e:rem chars.sub 7/22/2012 dwg - build chars from source
+cc chars
+as chars
+as bdoscall
+as bioscall
+as diagnose
+cc cbanner
+as cbanner
+cc ctermcap
+as ctermcap
+ln chars.o bdoscall.o bioscall.o cbanner.o diagnose.o ctermcap.o c.lib
+era chars.o
+era bdoscall.o
+era bioscall.o
+era diagose.o
+era cbanner.o
+era ctermcap.o
+
\ No newline at end of file
diff --git a/Apps/crossdev/CHECK.SUB b/Apps/crossdev/CHECK.SUB
new file mode 100644
index 00000000..bc711968
--- /dev/null
+++ b/Apps/crossdev/CHECK.SUB
@@ -0,0 +1,12 @@
+e:access access.com
+e:access cpmname.com
+e:access findfile.com
+e:access map.com
+e:access meta.com
+e:access multifmt.com
+e:access rem.com
+e:access setlabel.com
+e:access sysgen.com
+e:access termtype.com
+e:access view.com
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLEAN.SUB b/Apps/crossdev/CLEAN.SUB
new file mode 100644
index 00000000..46363e2d
--- /dev/null
+++ b/Apps/crossdev/CLEAN.SUB
@@ -0,0 +1,27 @@
+era *.bak
+era *.prn
+era *.rel
+era *.sym
+era *.lst
+era *.o
+era sect0*.h
+era sect1*.h
+era sect2*.h
+era sect3*.h
+era sect4*.h
+era sect5*.h
+era sect6*.h
+era sect7*.h
+era sect8*.h
+era sect9*.h
+era sect0*.inc
+era sect1*.inc
+era sect2*.inc
+era sect3*.inc
+era sect4*.inc
+era sect5*.inc
+era sect6*.inc
+era sect7*.inc
+era sect8*.inc
+era sect9*.inc
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLEAR.ASM b/Apps/crossdev/CLEAR.ASM
new file mode 100644
index 00000000..261b3d1f
--- /dev/null
+++ b/Apps/crossdev/CLEAR.ASM
@@ -0,0 +1,44 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global style_,1
+ global vdp_rege_,960
+ global pINFOLIS_,2
+ global metadata_,128
+ global pCNFGDAT_,2
+ global pSYSCFG_,2
+ PUBLIC main_
+main_: lxi d,.2
+ call csave
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ CALL crtinit_
+ POP D
+ CALL crtclr_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ RET
+.2 EQU -1
+ extrn diagnose_
+ extrn hregde_
+ extrn hregbc_
+ extrn crtlc_
+ extrn crtclr_
+ extrn crtinit_
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLEAR.C b/Apps/crossdev/CLEAR.C
new file mode 100644
index 00000000..2edfea8d
--- /dev/null
+++ b/Apps/crossdev/CLEAR.C
@@ -0,0 +1,48 @@
+/* clear.c 11/23/2012 dwg - */
+
+#include "portab.h"
+#include "globals.h"
+
+#include "stdio.h"
+#include "stdlib.h"
+#include "memory.h"
+#include "applvers.h"
+#include "n8chars.h"
+#include "tms9918.h"
+#include "std.h"
+#include "ctermcap.h"
+#include "cpmbdos.h"
+#include "bdoscall.h"
+#include "hbios.h"
+#include "asmiface.h"
+#include "diagnose.h"
+#include "cnfgdata.h"
+#include "syscfg.h"
+#include "cpmbind.h"
+#include "infolist.h"
+#include "metadata.h"
+#include "clogical.h"
+
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+struct CNFGDATA * pCNFGDATA;
+struct SYSCFG * pSYSCFG;
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ char column;
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+ pSYSCFG = HIGHSEG;
+ crtinit(pSYSCFG->cnfgdata.termtype);
+ crtclr();
+ crtlc(0,0);
+}
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLEAR.SUB b/Apps/crossdev/CLEAR.SUB
new file mode 100644
index 00000000..5a9b9907
--- /dev/null
+++ b/Apps/crossdev/CLEAR.SUB
@@ -0,0 +1,10 @@
+e:rem clear.sub 7/22/2012 dwg - build clear from sources
+cc clear
+as clear
+as bdoscall
+as bioscall
+cc ctermcap
+as ctermcap
+as diagnose
+ln clear.o diagnose.o bioscall.o bdoscall.o ctermcap.o c.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLOGICAL.ASM b/Apps/crossdev/CLOGICAL.ASM
new file mode 100644
index 00000000..017c74b6
--- /dev/null
+++ b/Apps/crossdev/CLOGICAL.ASM
@@ -0,0 +1,159 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ PUBLIC lugcur_
+lugcur_: lxi d,.2
+ call csave
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-6602
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LHLD xregde_
+ RET
+.2 EQU 0
+ PUBLIC lugnum_
+lugnum_: lxi d,.3
+ call csave
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,12-.3
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-6602
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LHLD xreghl_
+ RET
+.3 EQU 0
+ PUBLIC lugdu_
+lugdu_: lxi d,.4
+ call csave
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,12-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-6602
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LHLD xregbc_
+ LXI D,8
+ XCHG
+ CALL .ur
+ RET
+.4 EQU 0
+ PUBLIC luscur_
+luscur_: lxi d,.5
+ call csave
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,12-.5
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-6602
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LHLD xreghl_
+ PUSH H
+ LXI H,12-.5
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LHLD xregbc_
+ PUSH H
+ LXI H,-6599
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ RET
+.5 EQU 0
+ PUBLIC lusnum_
+lusnum_: lxi d,.6
+ call csave
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,12-.6
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-6602
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,10-.6
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LHLD xregde_
+ PUSH H
+ LHLD xregbc_
+ PUSH H
+ LXI H,-6599
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ RET
+.6 EQU 0
+ extrn asmif_
+ extrn xreghl_
+ extrn xregde_
+ extrn xregbc_
+ extrn .ur
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLOGICAL.H b/Apps/crossdev/CLOGICAL.H
index 37385b8e..c0624494 100644
--- a/Apps/crossdev/CLOGICAL.H
+++ b/Apps/crossdev/CLOGICAL.H
@@ -1,11 +1,7 @@
-
/*****************************/
/* clogical.H 6/4/2012 dwg - */
/*****************************/
-#define METATRK 0
-#define METASEC 11
-
extern lugdu();
extern lugcur();
extern luscur();
@@ -15,4 +11,4 @@ extern lusnum();
/********************/
/* eof - clogical.h */
/********************/
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/CLOGICAL.O b/Apps/crossdev/CLOGICAL.O
new file mode 100644
index 00000000..cb9e3a5c
Binary files /dev/null and b/Apps/crossdev/CLOGICAL.O differ
diff --git a/Apps/crossdev/CLS.C b/Apps/crossdev/CLS.C
new file mode 100644
index 00000000..2bbf9c2f
--- /dev/null
+++ b/Apps/crossdev/CLS.C
@@ -0,0 +1,127 @@
+/* cls.c 7/21/2012 dwg - elegant form of clear screen program */
+
+/*
+#include "stdio.h"
+#include "applvers.h"
+*/
+
+/* declarations for HBIOS access */
+extern char hrega;
+extern unsigned int hregbc;
+extern unsigned int hregde;
+extern unsigned int hreghl;
+extern diagnose();
+
+/* declaration dir BIOS and BDOS and low level calls */
+extern char xrega;
+extern unsigned int xregbc;
+extern unsigned int xregde;
+extern unsigned int xreghl;
+extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
+
+#define BDOS 5 /* memory address of BDOS invocation */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+/* pointer based Configuration Data structure */
+struct CNFGDATA {
+ unsigned char rmj;
+ unsigned char rmn;
+ unsigned char rup;
+ unsigned char rtp;
+ unsigned char diskboot;
+ unsigned char devunit;
+ unsigned int bootlu;
+ unsigned char hour;
+ unsigned char minute;
+ unsigned char second;
+ unsigned char month;
+ unsigned char day;
+ unsigned char year;
+ unsigned char freq;
+ unsigned char platform;
+ unsigned char dioplat;
+ unsigned char vdumode;
+ unsigned int romsize;
+ unsigned int ramsize;
+ unsigned char clrramdk;
+ unsigned char dskyenable;
+ unsigned char uartenable;
+ unsigned char vduenable;
+ unsigned char fdenable;
+ unsigned char fdtrace;
+ unsigned char fdmedia;
+ unsigned char fdmediaalt;
+ unsigned char fdmauto;
+ unsigned char ideenable;
+ unsigned char idetrace;
+ unsigned char ide8bit;
+ unsigned int idecapacity;
+ unsigned char ppideenable;
+ unsigned char ppidetrace;
+ unsigned char ppide8bit;
+ unsigned int ppidecapacity;
+ unsigned char ppideslow;
+ unsigned char boottype;
+ unsigned char boottimeout;
+ unsigned char bootdefault;
+ unsigned int baudrate;
+ unsigned char ckdiv;
+ unsigned char memwait;
+ unsigned char iowait;
+ unsigned char cntlb0;
+ unsigned char cntlb1;
+ unsigned char sdenable;
+ unsigned char sdtrace;
+ unsigned int sdcapacity;
+ unsigned char sdcsio;
+ unsigned char sdcsiofast;
+ unsigned char defiobyte;
+ unsigned char termtype;
+ unsigned int revision;
+ unsigned char prpsdenable;
+ unsigned char prpsdtrace;
+ unsigned int prpsdcapacity;
+ unsigned char prpconenable;
+ unsigned int biossize;
+ unsigned char pppenable;
+ unsigned char pppsdenable;
+ unsigned char pppsdtrace;
+ unsigned int pppsdcapacity;
+ unsigned char pppconenable;
+ unsigned char prpenable;
+};
+
+struct JMP {
+ unsigned char opcode; /* JMP opcode */
+ unsigned int address; /* JMP address */
+};
+
+struct SYSCFG {
+ struct JMP jmp;
+ void * cnfloc;
+ void * tstloc;
+ void * varloc;
+ struct CNFGDATA cnfgdata;
+ char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
+} * pSYSCFG = HIGHSEG;
+
+
+main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the HBIOS function */
+
+ crtinit(pSYSCFG->cnfgdata.termtype); /* pass termtype to init */
+
+ crtclr();
+
+ crtlc(0,0);
+}
+
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/CMEMORY.ASM b/Apps/crossdev/CMEMORY.ASM
new file mode 100644
index 00000000..cb11cdc3
--- /dev/null
+++ b/Apps/crossdev/CMEMORY.ASM
@@ -0,0 +1,283 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ PUBLIC memcmp_
+memcmp_: lxi d,.2
+ call csave
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,10-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,0-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,-2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .4
+.3:
+ LXI H,-2-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.4:
+ LXI H,-2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,12-.2
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .5
+ LXI H,0-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ MOV E,M
+ MVI D,0
+ POP H
+ CALL .ne
+ JZ .6
+ LXI H,0
+ RET
+.6:
+ JMP .3
+.5:
+ LXI H,1
+ RET
+.2 EQU -6
+ PUBLIC memcpy_
+memcpy_: lxi d,.7
+ call csave
+ LXI H,10-.7
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2-.7
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,8-.7
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,0-.7
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,-2-.7
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .9
+.8:
+ LXI H,-2-.7
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.9:
+ LXI H,-2-.7
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,12-.7
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .10
+ LXI H,2-.7
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ MOV E,M
+ PUSH D
+ LXI H,2-.7
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ POP D
+ MOV M,E
+ JMP .8
+.10:
+ RET
+.7 EQU -6
+ PUBLIC memset_
+memset_: lxi d,.11
+ call csave
+ LXI H,8-.11
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2-.11
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,0-.11
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .13
+.12:
+ LXI H,0-.11
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.13:
+ LXI H,0-.11
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,12-.11
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .ul
+ JZ .14
+ LXI H,10-.11
+ DAD SP
+ MOV E,M
+ PUSH D
+ LXI H,4-.11
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ POP D
+ MOV M,E
+ JMP .12
+.14:
+ RET
+.11 EQU -4
+ extrn .ne
+ extrn .lt
+ extrn .ul
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CMEMORY.O b/Apps/crossdev/CMEMORY.O
new file mode 100644
index 00000000..d58456b5
Binary files /dev/null and b/Apps/crossdev/CMEMORY.O differ
diff --git a/Apps/crossdev/CNAMEPT1.ASM b/Apps/crossdev/CNAMEPT1.ASM
new file mode 100644
index 00000000..98b7e2d6
--- /dev/null
+++ b/Apps/crossdev/CNAMEPT1.ASM
@@ -0,0 +1,527 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global cache_,17
+ PUBLIC cnamept1_
+cnamept1_: lxi d,.2
+ call csave
+ LXI H,.1+0
+ PUSH H
+ LXI H,cache_
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ INX H
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+17
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ INX H
+ INX H
+ INX H
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+51
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,5
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+85
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,7
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+119
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,9
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+153
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,10
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+175
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,11
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+197
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,12
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+219
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+241
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,13
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .3
+.5:
+ LXI H,.1+261
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.6:
+ LXI H,.1+266
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.3:
+ CALL .swt
+ DW 2
+ DW 0,.6
+ DW 1,.5
+ DW .4
+.4:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,14
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+272
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,15
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+298
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,23
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+324
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+349
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,24
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .7
+.9:
+ LXI H,.1+369
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .8
+.10:
+ LXI H,.1+375
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .8
+.11:
+ LXI H,.1+380
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .8
+.7:
+ CALL .swt
+ DW 3
+ DW 1,.9
+ DW 2,.10
+ DW 3,.11
+ DW .8
+.8:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+383
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,25
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .12
+.14:
+ LXI H,.1+403
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.15:
+ LXI H,.1+415
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.16:
+ LXI H,.1+429
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.17:
+ LXI H,.1+441
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.18:
+ LXI H,.1+453
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.19:
+ LXI H,.1+463
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.20:
+ LXI H,.1+478
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.12:
+ CALL .swt
+ DW 6
+ DW 0,.14
+ DW 1,.15
+ DW 2,.16
+ DW 3,.17
+ DW 4,.18
+ DW 5,.19
+ DW .20
+.13:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+486
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,26
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .21
+.23:
+ LXI H,.1+506
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.24:
+ LXI H,.1+518
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.25:
+ LXI H,.1+529
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.26:
+ LXI H,.1+541
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.27:
+ LXI H,.1+555
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.28:
+ LXI H,.1+567
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.21:
+ CALL .swt
+ DW 5
+ DW 0,.23
+ DW 1,.24
+ DW 2,.25
+ DW 3,.26
+ DW 4,.27
+ DW .28
+.22:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,27
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+577
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,29
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+599
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ RET
+.2 EQU 0
+.1:
+ DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
+ DB 97,0,115,121,115,99,102,103,45,62,106,109,112,32,32
+ DB 32,32,32,32,32,32,32,32,32,32,106,112,32,32,48
+ DB 37,48,52,120,104,0,115,121,115,99,102,103,45,62,99
+ DB 110,102,108,111,99,32,32,32,32,32,32,32,32,32,46
+ DB 100,119,32,48,37,48,52,120,104,0,115,121,115,99,102
+ DB 103,45,62,116,115,116,108,111,99,32,32,32,32,32,32
+ DB 32,32,32,46,100,119,32,48,37,48,52,120,104,0,115
+ DB 121,115,99,102,103,45,62,118,97,114,108,111,99,32,32
+ DB 32,32,32,32,32,32,32,46,100,119,32,48,37,48,52
+ DB 120,104,0,37,115,46,114,109,106,32,32,32,32,32,32
+ DB 32,32,32,32,32,61,32,37,100,0,37,115,46,114,109
+ DB 110,32,32,32,32,32,32,32,32,32,32,32,61,32,37
+ DB 100,0,37,115,46,114,117,112,32,32,32,32,32,32,32
+ DB 32,32,32,32,61,32,37,100,0,37,115,46,114,116,112
+ DB 32,32,32,32,32,32,32,32,32,32,32,61,32,37,100
+ DB 0,37,115,46,100,105,115,107,98,111,111,116,32,32,32
+ DB 32,32,32,61,32,0,84,82,85,69,0,70,65,76,83
+ DB 69,0,37,115,46,100,101,118,117,110,105,116,32,32,32
+ DB 32,32,32,32,61,32,48,120,37,48,50,120,0,37,115
+ DB 46,98,111,111,116,108,117,32,32,32,32,32,32,32,32
+ DB 61,32,48,120,37,48,52,120,0,37,115,46,102,114,101
+ DB 113,32,32,32,32,32,32,32,32,32,32,61,32,37,100
+ DB 77,72,122,0,37,115,46,112,108,97,116,102,111,114,109
+ DB 32,32,32,32,32,32,61,32,0,78,56,86,69,77,0
+ DB 90,69,84,65,0,78,56,0,37,115,46,100,105,111,112
+ DB 108,97,116,32,32,32,32,32,32,32,61,32,0,68,73
+ DB 79,80,76,84,95,78,79,78,69,0,68,73,79,80,76
+ DB 84,95,68,73,83,75,73,79,0,68,73,79,80,76,84
+ DB 95,90,69,84,65,0,68,73,79,80,76,84,95,68,73
+ DB 68,69,0,68,73,79,80,76,84,95,78,56,0,68,73
+ DB 79,80,76,84,95,68,73,83,75,73,79,51,0,85,110
+ DB 107,110,111,119,110,0,37,115,46,118,100,117,109,111,100
+ DB 101,32,32,32,32,32,32,32,61,32,0,86,68,85,80
+ DB 76,84,95,78,79,78,69,0,86,68,85,80,76,84,95
+ DB 86,68,85,0,86,68,85,80,76,84,95,86,68,85,67
+ DB 0,86,68,85,80,76,84,95,80,82,79,80,73,79,0
+ DB 86,68,85,80,76,84,95,86,80,78,56,0,85,110,107
+ DB 110,111,119,110,33,33,0,37,115,46,114,111,109,115,105
+ DB 122,101,32,32,32,32,32,32,32,61,32,37,100,0,37
+ DB 115,46,114,97,109,115,105,122,101,32,32,32,32,32,32
+ DB 32,61,32,37,100,0
+ extrn printf_
+ extrn strcpy_
+ extrn pager_
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CNAMEPT1.O b/Apps/crossdev/CNAMEPT1.O
new file mode 100644
index 00000000..30243fe5
Binary files /dev/null and b/Apps/crossdev/CNAMEPT1.O differ
diff --git a/Apps/crossdev/CNAMEPT2.ASM b/Apps/crossdev/CNAMEPT2.ASM
new file mode 100644
index 00000000..a8280c90
--- /dev/null
+++ b/Apps/crossdev/CNAMEPT2.ASM
@@ -0,0 +1,480 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global cache_,17
+ PUBLIC cnamept2_
+cnamept2_: lxi d,.2
+ call csave
+ LXI H,.1+0
+ PUSH H
+ LXI H,cache_
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+17
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,31
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .3
+.5:
+ LXI H,.1+37
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.6:
+ LXI H,.1+47
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.7:
+ LXI H,.1+56
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.3:
+ CALL .swt
+ DW 3
+ DW 0,.5
+ DW 1,.6
+ DW 2,.7
+ DW .4
+.4:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+68
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,32
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .8
+.10:
+ LXI H,.1+88
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .9
+.11:
+ LXI H,.1+93
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .9
+.8:
+ CALL .swt
+ DW 2
+ DW 0,.11
+ DW 1,.10
+ DW .9
+.9:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+99
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,33
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .12
+.14:
+ LXI H,.1+119
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.15:
+ LXI H,.1+124
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.12:
+ CALL .swt
+ DW 2
+ DW 0,.15
+ DW 1,.14
+ DW .13
+.13:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+130
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,34
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .16
+.18:
+ LXI H,.1+150
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .17
+.19:
+ LXI H,.1+155
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .17
+.16:
+ CALL .swt
+ DW 2
+ DW 0,.19
+ DW 1,.18
+ DW .17
+.17:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+161
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,35
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .20
+.22:
+ LXI H,.1+181
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .21
+.23:
+ LXI H,.1+186
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .21
+.20:
+ CALL .swt
+ DW 2
+ DW 0,.23
+ DW 1,.22
+ DW .21
+.21:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,35
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .24
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+192
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,36
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .25
+.27:
+ LXI H,.1+212
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .26
+.28:
+ LXI H,.1+219
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .26
+.29:
+ LXI H,.1+232
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .26
+.30:
+ LXI H,.1+243
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .26
+.31:
+ LXI H,.1+254
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .26
+.25:
+ CALL .swt
+ DW 4
+ DW 0,.27
+ DW 1,.28
+ DW 2,.29
+ DW 3,.30
+ DW .31
+.26:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+264
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,37
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .32
+.34:
+ LXI H,.1+284
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+291
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .33
+.35:
+ LXI H,.1+329
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+336
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .33
+.36:
+ LXI H,.1+376
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+383
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .33
+.37:
+ LXI H,.1+422
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+429
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .33
+.38:
+ LXI H,.1+468
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .33
+.32:
+ CALL .swt
+ DW 4
+ DW 0,.34
+ DW 1,.35
+ DW 2,.36
+ DW 3,.37
+ DW .38
+.33:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+478
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,38
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .39
+.41:
+ LXI H,.1+498
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+505
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.42:
+ LXI H,.1+543
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+550
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.43:
+ LXI H,.1+590
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+597
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.44:
+ LXI H,.1+636
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,.1+643
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.39:
+ CALL .swt
+ DW 4
+ DW 0,.41
+ DW 1,.42
+ DW 2,.43
+ DW 3,.44
+ DW .40
+.40:
+ CALL pager_
+.24:
+ RET
+.2 EQU 0
+.1:
+ DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
+ DB 97,0,37,115,46,99,108,114,114,97,109,100,107,32,32
+ DB 32,32,32,32,61,32,0,67,76,82,95,78,69,86,69
+ DB 82,0,67,76,82,95,65,85,84,79,0,67,76,82,95
+ DB 65,76,76,87,65,89,83,0,37,115,46,100,115,107,121
+ DB 101,110,97,98,108,101,32,32,32,32,61,32,0,84,82
+ DB 85,69,0,70,65,76,83,69,0,37,115,46,117,97,114
+ DB 116,101,110,97,98,108,101,32,32,32,32,61,32,0,84
+ DB 82,85,69,0,70,65,76,83,69,0,37,115,46,118,100
+ DB 117,101,110,97,98,108,101,32,32,32,32,32,61,32,0
+ DB 84,82,85,69,0,70,65,76,83,69,0,37,115,46,102
+ DB 100,101,110,97,98,108,101,32,32,32,32,32,32,61,32
+ DB 0,84,82,85,69,0,70,65,76,83,69,0,37,115,46
+ DB 102,100,116,114,97,99,101,32,32,32,32,32,32,32,61
+ DB 32,0,83,105,108,101,110,116,0,70,97,116,97,108,32
+ DB 69,114,114,111,114,115,0,65,108,108,32,69,114,114,111
+ DB 114,115,0,69,118,101,114,121,116,104,105,110,103,0,85
+ DB 110,107,110,111,119,110,33,33,0,37,115,46,102,100,109
+ DB 101,100,105,97,32,32,32,32,32,32,32,61,32,0,70
+ DB 68,77,55,50,48,0,32,32,51,46,53,32,55,50,48
+ DB 75,66,32,50,45,115,105,100,101,100,32,56,48,32,84
+ DB 114,107,115,32,57,32,83,101,99,116,111,114,115,0,70
+ DB 68,77,49,52,52,0,32,32,51,46,53,32,49,46,52
+ DB 52,77,66,32,50,45,115,105,100,101,100,32,56,48,32
+ DB 84,114,107,115,32,49,56,32,83,101,99,116,111,114,115
+ DB 0,70,68,77,51,54,48,0,32,32,53,46,50,53,32
+ DB 51,54,48,75,66,32,50,45,115,105,100,101,100,32,52
+ DB 48,32,84,114,107,115,32,57,32,83,101,99,116,111,114
+ DB 115,0,70,68,77,49,50,48,0,32,32,51,46,53,32
+ DB 49,46,50,77,66,32,50,45,115,105,100,101,100,32,56
+ DB 48,32,84,114,107,115,32,49,53,32,83,101,99,116,111
+ DB 114,115,0,85,110,107,110,111,119,110,33,33,0,37,115
+ DB 46,102,100,109,101,100,105,97,97,108,116,32,32,32,32
+ DB 61,32,0,70,68,77,55,50,48,0,32,32,51,46,53
+ DB 32,55,50,48,75,66,32,50,45,115,105,100,101,100,32
+ DB 56,48,32,84,114,107,115,32,57,32,83,101,99,116,111
+ DB 114,115,0,70,68,77,49,52,52,0,32,32,51,46,53
+ DB 32,49,46,52,52,77,66,32,50,45,115,105,100,101,100
+ DB 32,56,48,32,84,114,107,115,32,49,56,32,83,101,99
+ DB 116,111,114,115,0,70,68,77,51,54,48,0,32,32,53
+ DB 46,50,53,32,51,54,48,75,66,32,50,45,115,105,100
+ DB 101,100,32,52,48,32,84,114,107,115,32,57,32,83,101
+ DB 99,116,111,114,115,0,70,68,77,49,50,48,0,32,32
+ DB 51,46,53,32,49,46,50,77,66,32,50,45,115,105,100
+ DB 101,100,32,56,48,32,84,114,107,115,32,49,53,32,83
+ DB 101,99,116,111,114,115,0
+ extrn printf_
+ extrn strcpy_
+ extrn pager_
+ extrn .eq
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CNAMEPT2.O b/Apps/crossdev/CNAMEPT2.O
new file mode 100644
index 00000000..ad28d6bb
Binary files /dev/null and b/Apps/crossdev/CNAMEPT2.O differ
diff --git a/Apps/crossdev/CNAMEPT3.ASM b/Apps/crossdev/CNAMEPT3.ASM
new file mode 100644
index 00000000..1d77ae04
--- /dev/null
+++ b/Apps/crossdev/CNAMEPT3.ASM
@@ -0,0 +1,794 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global cache_,17
+ PUBLIC cnamept3_
+cnamept3_: lxi d,.2
+ call csave
+ LXI H,.1+0
+ PUSH H
+ LXI H,cache_
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+17
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,39
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .3
+.5:
+ LXI H,.1+37
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.6:
+ LXI H,.1+42
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.3:
+ CALL .swt
+ DW 2
+ DW 0,.6
+ DW 1,.5
+ DW .4
+.4:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+48
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,40
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .7
+.9:
+ LXI H,.1+68
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .8
+.10:
+ LXI H,.1+73
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .8
+.7:
+ CALL .swt
+ DW 2
+ DW 0,.10
+ DW 1,.9
+ DW .8
+.8:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,40
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .11
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+79
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,41
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .12
+.14:
+ LXI H,.1+95
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.15:
+ LXI H,.1+102
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.16:
+ LXI H,.1+109
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.17:
+ LXI H,.1+120
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .13
+.12:
+ CALL .swt
+ DW 3
+ DW 0,.14
+ DW 1,.15
+ DW 2,.16
+ DW .17
+.13:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+130
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,42
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .18
+.20:
+ LXI H,.1+149
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .19
+.21:
+ LXI H,.1+154
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .19
+.22:
+ LXI H,.1+160
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .19
+.18:
+ CALL .swt
+ DW 2
+ DW 0,.21
+ DW 1,.20
+ DW .22
+.19:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,43
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+170
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+.11:
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+194
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,45
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .23
+.25:
+ LXI H,.1+214
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .24
+.26:
+ LXI H,.1+219
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .24
+.23:
+ CALL .swt
+ DW 2
+ DW 0,.26
+ DW 1,.25
+ DW .24
+.24:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,45
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .27
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+225
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,46
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .28
+.30:
+ LXI H,.1+245
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .29
+.31:
+ LXI H,.1+252
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .29
+.32:
+ LXI H,.1+259
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .29
+.33:
+ LXI H,.1+270
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .29
+.28:
+ CALL .swt
+ DW 3
+ DW 0,.30
+ DW 1,.31
+ DW 2,.32
+ DW .33
+.29:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+280
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,47
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .34
+.36:
+ LXI H,.1+300
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .35
+.37:
+ LXI H,.1+305
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .35
+.38:
+ LXI H,.1+311
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .35
+.34:
+ CALL .swt
+ DW 2
+ DW 0,.37
+ DW 1,.36
+ DW .38
+.35:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,48
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+321
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+345
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .39
+.41:
+ LXI H,.1+365
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.42:
+ LXI H,.1+370
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.43:
+ LXI H,.1+376
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.39:
+ CALL .swt
+ DW 2
+ DW 0,.42
+ DW 1,.41
+ DW .43
+.40:
+ CALL pager_
+.27:
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+386
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,51
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .44
+.46:
+ LXI H,.1+406
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .45
+.47:
+ LXI H,.1+414
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .45
+.44:
+ CALL .swt
+ DW 2
+ DW 1,.46
+ DW 2,.47
+ DW .45
+.45:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,52
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+422
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,53
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+452
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,54
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,10-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,54
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+475
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,24
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,3
+ POP D
+ CALL .eq
+ JZ .48
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,56
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+511
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,57
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+533
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,58
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+559
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,59
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+585
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,60
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+611
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+637
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,61
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .49
+.51:
+ LXI H,.1+657
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .50
+.52:
+ LXI H,.1+662
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .50
+.53:
+ LXI H,.1+668
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .50
+.49:
+ CALL .swt
+ DW 2
+ DW 0,.52
+ DW 1,.51
+ DW .53
+.50:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+678
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,62
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .54
+.56:
+ LXI H,.1+698
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .55
+.57:
+ LXI H,.1+703
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .55
+.58:
+ LXI H,.1+709
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .55
+.54:
+ CALL .swt
+ DW 2
+ DW 0,.57
+ DW 1,.56
+ DW .58
+.55:
+ CALL pager_
+.48:
+ RET
+.2 EQU 0
+.1:
+ DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
+ DB 97,0,37,115,46,102,100,109,97,117,116,111,32,32,32
+ DB 32,32,32,32,61,32,0,84,82,85,69,0,70,65,76
+ DB 83,69,0,37,115,46,105,100,101,101,110,97,98,108,101
+ DB 32,32,32,32,32,61,32,0,84,82,85,69,0,70,65
+ DB 76,83,69,0,37,115,46,105,100,101,116,114,97,99,101
+ DB 32,32,61,32,0,83,73,76,69,78,84,0,69,82,82
+ DB 79,82,83,0,69,86,69,82,89,84,72,73,78,71,0
+ DB 85,110,107,110,111,119,110,33,33,0,37,115,46,100,101
+ DB 56,98,105,116,32,32,32,32,32,32,32,61,32,0,84
+ DB 82,85,69,0,70,65,76,83,69,0,85,110,107,110,111
+ DB 119,110,33,33,0,37,115,46,105,100,101,99,97,112,97
+ DB 99,105,116,121,32,32,32,61,32,37,100,77,66,0,37
+ DB 115,46,112,112,105,100,101,101,110,97,98,108,101,32,32
+ DB 32,61,32,0,84,82,85,69,0,70,65,76,83,69,0
+ DB 37,115,46,112,112,105,100,101,116,114,97,99,101,32,32
+ DB 32,32,61,32,0,83,73,76,69,78,84,0,69,82,82
+ DB 79,82,83,0,69,86,69,82,89,84,72,73,78,71,0
+ DB 85,110,107,110,111,119,110,33,33,0,37,115,46,112,112
+ DB 105,100,101,56,98,105,116,32,32,32,32,32,61,32,0
+ DB 84,82,85,69,0,70,65,76,83,69,0,85,110,107,110
+ DB 111,119,110,33,33,0,37,115,46,112,112,105,100,101,99
+ DB 97,112,97,99,105,116,121,32,61,32,37,100,75,66,0
+ DB 37,115,46,112,112,105,100,101,115,108,111,119,32,32,32
+ DB 32,32,61,32,0,84,82,85,69,0,70,65,76,83,69
+ DB 0,85,110,107,110,111,119,110,33,33,0,37,115,46,98
+ DB 111,111,116,116,121,112,101,32,32,32,32,32,32,61,32
+ DB 0,66,84,95,77,69,78,85,0,66,84,95,65,85,84
+ DB 79,0,37,115,46,98,111,111,116,116,105,109,101,111,117
+ DB 116,32,32,32,61,32,37,100,32,115,101,99,111,110,100
+ DB 115,0,37,115,46,98,111,111,116,100,101,102,97,117,108
+ DB 116,32,32,32,61,32,37,99,58,0,37,115,46,98,97
+ DB 117,100,114,97,116,101,32,32,32,32,32,32,61,32,37
+ DB 117,32,40,48,120,37,48,52,120,41,32,66,97,117,100
+ DB 0,37,115,46,99,107,100,105,118,32,32,32,32,32,32
+ DB 32,32,32,61,32,37,100,0,37,115,46,109,101,109,119
+ DB 97,105,116,32,32,32,32,32,32,32,61,32,48,120,37
+ DB 48,50,120,0,37,115,46,105,111,119,97,105,116,32,32
+ DB 32,32,32,32,32,32,61,32,48,120,37,48,50,120,0
+ DB 37,115,46,99,110,116,108,98,48,32,32,32,32,32,32
+ DB 32,32,61,32,48,120,37,48,50,120,0,37,115,46,99
+ DB 110,116,108,98,49,32,32,32,32,32,32,32,32,61,32
+ DB 48,120,37,48,50,120,0,37,115,46,115,100,101,110,97
+ DB 98,108,101,32,32,32,32,32,32,61,32,0,84,82,85
+ DB 69,0,70,65,76,83,69,0,85,110,107,110,111,119,110
+ DB 33,33,0,37,115,46,115,100,116,114,97,99,101,32,32
+ DB 32,32,32,32,32,61,32,0,84,82,85,69,0,70,65
+ DB 76,83,69,0,85,110,107,110,111,119,110,33,33,0
+ extrn printf_
+ extrn strcpy_
+ extrn pager_
+ extrn .eq
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CNAMEPT3.O b/Apps/crossdev/CNAMEPT3.O
new file mode 100644
index 00000000..4d1a1517
Binary files /dev/null and b/Apps/crossdev/CNAMEPT3.O differ
diff --git a/Apps/crossdev/CNAMEPT4.ASM b/Apps/crossdev/CNAMEPT4.ASM
new file mode 100644
index 00000000..437a4620
--- /dev/null
+++ b/Apps/crossdev/CNAMEPT4.ASM
@@ -0,0 +1,742 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global cache_,17
+ PUBLIC cnamept4_
+cnamept4_: lxi d,.2
+ call csave
+ LXI H,.1+0
+ PUSH H
+ LXI H,cache_
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,24
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,3
+ POP D
+ CALL .eq
+ JZ .3
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,63
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+17
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+41
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,65
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .4
+.6:
+ LXI H,.1+61
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .5
+.7:
+ LXI H,.1+66
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .5
+.8:
+ LXI H,.1+72
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .5
+.4:
+ CALL .swt
+ DW 2
+ DW 0,.7
+ DW 1,.6
+ DW .8
+.5:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+82
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,66
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .9
+.11:
+ LXI H,.1+102
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .10
+.12:
+ LXI H,.1+107
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .10
+.13:
+ LXI H,.1+113
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .10
+.9:
+ CALL .swt
+ DW 2
+ DW 0,.12
+ DW 1,.11
+ DW .13
+.10:
+ CALL pager_
+.3:
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,67
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+123
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+149
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .14
+.16:
+ LXI H,.1+169
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .15
+.17:
+ LXI H,.1+178
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .15
+.18:
+ LXI H,.1+188
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .15
+.19:
+ LXI H,.1+198
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .15
+.20:
+ LXI H,.1+208
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .15
+.14:
+ CALL .swt
+ DW 4
+ DW 0,.16
+ DW 1,.17
+ DW 2,.18
+ DW 3,.19
+ DW .20
+.15:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,69
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+218
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+240
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,84
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .21
+.23:
+ LXI H,.1+260
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.24:
+ LXI H,.1+265
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.25:
+ LXI H,.1+271
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .22
+.21:
+ CALL .swt
+ DW 2
+ DW 0,.24
+ DW 1,.23
+ DW .25
+.22:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,84
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .26
+ LXI H,.1+281
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,71
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .27
+.29:
+ LXI H,.1+301
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .28
+.30:
+ LXI H,.1+306
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .28
+.31:
+ LXI H,.1+312
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .28
+.27:
+ CALL .swt
+ DW 2
+ DW 0,.30
+ DW 1,.29
+ DW .31
+.28:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,71
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .32
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+322
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,72
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .33
+.35:
+ LXI H,.1+342
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .34
+.36:
+ LXI H,.1+349
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .34
+.37:
+ LXI H,.1+356
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .34
+.38:
+ LXI H,.1+367
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .34
+.33:
+ CALL .swt
+ DW 3
+ DW 0,.35
+ DW 1,.36
+ DW 2,.37
+ DW .38
+.34:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+377
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+397
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,75
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .39
+.41:
+ LXI H,.1+417
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.42:
+ LXI H,.1+422
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.43:
+ LXI H,.1+428
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .40
+.39:
+ CALL .swt
+ DW 2
+ DW 0,.42
+ DW 1,.41
+ DW .43
+.40:
+ CALL pager_
+.32:
+.26:
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,76
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+438
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+460
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,78
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .44
+.46:
+ LXI H,.1+480
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .45
+.47:
+ LXI H,.1+485
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .45
+.48:
+ LXI H,.1+491
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .45
+.44:
+ CALL .swt
+ DW 2
+ DW 0,.47
+ DW 1,.46
+ DW .48
+.45:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,78
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .49
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+501
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,79
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .50
+.52:
+ LXI H,.1+520
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .51
+.53:
+ LXI H,.1+525
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .51
+.54:
+ LXI H,.1+531
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .51
+.50:
+ CALL .swt
+ DW 2
+ DW 0,.53
+ DW 1,.52
+ DW .54
+.51:
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+541
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,80
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .55
+.57:
+ LXI H,.1+561
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .56
+.58:
+ LXI H,.1+568
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .56
+.59:
+ LXI H,.1+575
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .56
+.60:
+ LXI H,.1+586
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .56
+.55:
+ CALL .swt
+ DW 3
+ DW 0,.57
+ DW 1,.58
+ DW 2,.59
+ DW .60
+.56:
+ CALL pager_
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,73
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+596
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ CALL pager_
+ LXI H,cache_
+ PUSH H
+ LXI H,.1+618
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,83
+ DAD D
+ MOV E,M
+ MVI D,0
+ XCHG
+ JMP .61
+.63:
+ LXI H,.1+638
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .62
+.64:
+ LXI H,.1+643
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .62
+.65:
+ LXI H,.1+649
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .62
+.61:
+ CALL .swt
+ DW 2
+ DW 0,.64
+ DW 1,.63
+ DW .65
+.62:
+ CALL pager_
+.49:
+ RET
+.2 EQU 0
+.1:
+ DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
+ DB 97,0,37,115,46,115,100,99,97,112,97,99,105,116,121
+ DB 32,32,32,32,61,32,37,117,75,66,0,37,115,46,115
+ DB 100,99,115,105,111,32,32,32,32,32,32,32,32,61,32
+ DB 0,84,82,85,69,0,70,65,76,83,69,0,85,110,107
+ DB 110,111,119,110,33,33,0,37,115,46,115,100,99,115,105
+ DB 111,102,97,115,116,32,32,32,32,61,32,0,84,82,85
+ DB 69,0,70,65,76,83,69,0,85,110,107,110,111,119,110
+ DB 33,33,0,37,115,46,100,101,102,105,111,98,121,116,101
+ DB 32,32,32,32,32,61,32,48,120,37,48,50,120,0,37
+ DB 115,46,116,101,114,109,116,121,112,101,32,32,32,32,32
+ DB 32,61,32,0,84,69,82,77,95,84,84,89,0,84,69
+ DB 82,77,95,65,78,83,73,0,84,69,82,77,95,87,89
+ DB 83,69,0,84,69,82,77,95,86,84,53,50,0,85,110
+ DB 107,110,111,119,110,33,33,0,37,115,46,114,101,118,105
+ DB 115,105,111,110,32,32,32,32,32,32,61,32,37,100,0
+ DB 37,115,46,112,114,112,101,110,97,98,108,101,32,32,32
+ DB 32,32,61,32,0,84,82,85,69,0,70,65,76,83,69
+ DB 0,85,110,107,110,111,119,110,33,33,0,37,115,46,112
+ DB 114,112,115,100,101,110,97,98,108,101,32,32,32,61,32
+ DB 0,84,82,85,69,0,70,65,76,83,69,0,85,110,107
+ DB 110,111,119,110,33,33,0,37,115,46,112,114,112,115,100
+ DB 116,114,97,99,101,32,32,32,32,61,32,0,83,73,76
+ DB 69,78,84,0,69,82,82,79,82,83,0,69,86,69,82
+ DB 89,84,72,73,78,71,0,85,110,107,110,111,119,110,33
+ DB 33,0,37,115,46,112,114,112,115,100,99,97,112,97,99
+ DB 105,116,121,32,61,32,0,37,115,46,112,114,112,99,111
+ DB 110,101,110,97,98,108,101,32,32,61,32,0,84,82,85
+ DB 69,0,70,65,76,83,69,0,85,110,107,110,111,119,110
+ DB 33,33,0,37,115,46,98,105,111,115,115,105,122,101,32
+ DB 32,32,32,32,32,61,32,37,100,0,37,115,46,112,112
+ DB 112,101,110,97,98,108,101,32,32,32,32,32,61,32,0
+ DB 84,82,85,69,0,70,65,76,83,69,0,85,110,107,110
+ DB 111,119,110,33,33,0,37,115,46,112,112,112,115,100,101
+ DB 110,97,98,108,101,32,32,61,32,0,84,82,85,69,0
+ DB 70,65,76,83,69,0,85,110,107,110,111,119,110,33,33
+ DB 0,37,115,46,112,112,112,115,100,116,114,97,99,101,32
+ DB 32,32,32,61,32,0,83,73,76,69,78,84,0,69,82
+ DB 82,79,82,83,0,69,86,69,82,89,84,72,73,78,71
+ DB 0,85,110,107,110,111,119,110,33,33,0,37,115,46,112
+ DB 112,112,99,97,112,97,99,105,116,121,32,32,32,61,32
+ DB 37,100,0,37,115,46,112,112,112,99,111,110,101,110,97
+ DB 98,108,101,32,32,61,32,0,84,82,85,69,0,70,65
+ DB 76,83,69,0,85,110,107,110,111,119,110,33,33,0
+ extrn printf_
+ extrn strcpy_
+ extrn pager_
+ extrn .eq
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CNAMEPT4.O b/Apps/crossdev/CNAMEPT4.O
new file mode 100644
index 00000000..50309b57
Binary files /dev/null and b/Apps/crossdev/CNAMEPT4.O differ
diff --git a/Apps/crossdev/CNFGDATA.LIB b/Apps/crossdev/CNFGDATA.LIB
new file mode 100644
index 00000000..10b24d99
--- /dev/null
+++ b/Apps/crossdev/CNFGDATA.LIB
@@ -0,0 +1,210 @@
+; cnfgdata.lib 7/19/2012 dwg -
+
+byte equ 1
+word equ 2
+
+;; /* cnfgdata.h 6/04/2012 dwg - */
+;;
+;; struct CNFGDATA {
+;; unsigned char rmj;
+cfgrmj equ 08009h
+;;
+;; unsigned char rmn;
+cfgrmn equ cfgrmj + byte
+;;
+;; unsigned char rup;
+cfgrup equ cfgrmn + byte
+;;
+;; unsigned char rtp;
+cfgrtp equ cfgrup + byte
+;;
+;; unsigned char diskboot;
+diskboot equ cfgrtp + byte
+;;
+;; unsigned char devunit;
+devunit equ diskboot + byte
+;;
+;; unsigned int bootlu;
+bootlu equ devunit + byte
+;;
+;; unsigned char hour;
+hour equ bootlu + word
+;;
+;; unsigned char minute;
+minute equ hour + byte
+;;
+;; unsigned char second;
+second equ minute + byte
+;;
+;; unsigned char month;
+month equ second + byte
+;;
+;; unsigned char day;
+day equ month + byte
+;;
+;; unsigned char year;
+year equ day + byte
+;;
+;; unsigned char freq;
+freq equ year + byte
+;;
+;; unsigned char platform;
+platform equ freq+ byte
+;;
+;; unsigned char dioplat;
+dioplat equ platform + byte
+;;
+;; unsigned char vdumode;
+vdumode equ dioplat + byte
+;;
+;; unsigned int romsize;
+romsize equ vdumode + byte
+;;
+;; unsigned int ramsize;
+ramsize equ romsize + word
+;;
+;; unsigned char clrramdk;
+clrramdk equ ramsize + word
+;;
+;; unsigned char dskyenable;
+dskyenable equ clrramdk + byte
+;;
+;; unsigned char uartenable;
+uartenable equ dskyenable + byte
+;;
+;; unsigned char vduenable;
+vduenable equ uartenable + byte
+;;
+;; unsigned char fdenable;
+fdenable equ vduenable + byte
+;;
+;; unsigned char fdtrace;
+fdtrace equ fdenable + byte
+;;
+;; unsigned char fdmedia;
+fdmedia equ fdtrace + byte
+;;
+;; unsigned char fdmediaalt;
+fdmediaalt equ fdmedia + byte
+;;
+;; unsigned char fdmauto;
+fdmauto equ fdmediaalt + byte
+;;
+;; unsigned char ideenable;
+ideenable equ fdmauto + byte
+;;
+;; unsigned char idetrace;
+idetrace equ ideenable + byte
+;;
+;; unsigned char ide8bit;
+ide8bit equ idetrace + byte
+;;
+;; unsigned int idecapacity;
+idecapacity equ ide8bit + byte
+;;
+;; unsigned char ppideenable;
+ppideenable equ idecapacity + word
+;;
+;; unsigned char ppidetrace;
+ppidetrace equ ppideenable + byte
+;;
+;; unsigned char ppide8bit;
+ppide8bit equ ppidetrace + byte
+;;
+;; unsigned int ppidecapacity;
+ppidecapacity equ ppide8bit + byte
+;;
+;; unsigned char ppideslow;
+ppideslow equ ppidecapacity + word
+;;
+;; unsigned char boottype;
+boottype equ ppideslow + byte
+;;
+;; unsigned char boottimeout;
+boottimeout equ boottype + byte
+;;
+;; unsigned char bootdefault;
+bootdefault equ boottimeout + byte
+;;
+;; unsigned int baudrate;
+baudrate equ bootdefault + byte
+;;
+;; unsigned char ckdiv;
+ckdiv equ baudrate + word
+;;
+;; unsigned char memwait;
+memwait equ ckdiv + byte
+;;
+;; unsigned char iowait;
+iowait equ memwait + byte
+;;
+;; unsigned char cntlb0;
+cntlb0 equ iowait + byte
+;;
+;; unsigned char cntlb1;
+cntlb1 equ cntlb0 + byte
+;;
+;; unsigned char sdenable;
+sdenable equ cntlb1 + byte
+;;
+;; unsigned char sdtrace;
+sdtrace equ sdenable + byte
+;;
+;; unsigned int sdcapacity;
+sdcapacity equ sdtrace + byte
+;;
+;; unsigned char sdcsio;
+sdcsio equ sdcapacity + word
+;;
+;; unsigned char sdcsiofast;
+sdcsiofast equ sdcsio + byte
+;;
+;; unsigned char defiobyte;
+defiobyte equ sdcsiofast + byte
+;;
+;; unsigned char termtype;
+termtype equ defiobyte + byte
+;;
+;; unsigned int revision;
+revision equ termtype + byte
+;;
+;; unsigned char prpsdenable;
+prpsdenable equ revision + word
+;;
+;; unsigned char prpsdtrace;
+prpsdtrace equ prpsdenable + byte
+;;
+;; unsigned int prpsdcapacity;
+prpsdcapacity equ prpsdtrace + byte
+;;
+;; unsigned char prpconenable;
+prpconenable equ prpsdcapacity + word
+;;
+;; unsigned int biossize;
+biossize equ prpconenable + byte
+;;
+;; unsigned char pppenable;
+pppenable equ biossize + word
+;;
+;; unsigned char pppsdenable;
+pppsdenable equ pppenable + byte
+;;
+;; unsigned char pppsdtrace;
+pppsdtrace equ pppsdenable + byte
+;;
+;; unsigned int pppsdcapacity;
+pppsdcapacity equ pppsdtrace + byte
+;;
+;; unsigned char pppconenable;
+pppconenable equ pppsdcapacity + word
+;;
+;; unsigned char prpenable;
+prpenable equ pppconenable + byte
+;;
+;; };
+;;
+;; /********************/
+;; /* eof - cnfgdata.h */
+;; /********************/
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/CONVERT.C b/Apps/crossdev/CONVERT.C
new file mode 100644
index 00000000..57cfdf2a
--- /dev/null
+++ b/Apps/crossdev/CONVERT.C
@@ -0,0 +1,80 @@
+/* convert.c 7/11/2012 dwg -
+
+ The purpose of this program is similar to the CP/M dump program
+ except that in addition to the normal hexadecimal bytes, a field
+ of ascii bytes to the right are displayed as well.
+
+*/
+
+#include "stdio.h"
+
+
+char visible[256] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
+};
+
+#include "cvt2h.h"
+
+unsigned char sector[32767];
+
+main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ int i,j;
+ int offset;
+ int result;
+ unsigned char byte;
+ char name[32];
+
+
+ FILE * fd;
+
+ for(i=0;i0;i--) {
+ if(sector[i] != 0) break;
+ }
+
+ sprintf(name,"sect%04x.h",0);
+ cvt2h(sector,i,name);
+ fclose(fd);
+
+ exit(0);
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/COREAPPS.BAK b/Apps/crossdev/COREAPPS.BAK
new file mode 100644
index 00000000..5ad6bb86
--- /dev/null
+++ b/Apps/crossdev/COREAPPS.BAK
@@ -0,0 +1,28 @@
+rem coreapps.bat 2/15/2013 dwg - build all core apps using batch files
+
+if not exist access.cpm call access.bat
+
+if not exist cpmname.cpm call cpmname.bat
+
+if not exist findfile.cpm call findfile.bat
+if not exist findfile.cpm pause
+
+if not exist map.cpm call map.bat
+
+if not exist meta.cpm call meta.bat
+
+if not exist multifmt.cpm call multifmt.bat
+
+if not exist rem.cpm call makerem.bat
+
+if not exist setlabel.cpm call setlabel.bat
+
+if not exist sysgen.cpm call sysgen.bat
+
+if not exist termtype.cpm call termtype.bat
+
+if not exist view.cpm call view.bat
+
+rem All Core Apps Built
+dir *.cpm /w
+
diff --git a/Apps/crossdev/COREAPPS.BAT b/Apps/crossdev/COREAPPS.BAT
new file mode 100644
index 00000000..bdd9ddea
--- /dev/null
+++ b/Apps/crossdev/COREAPPS.BAT
@@ -0,0 +1,38 @@
+rem coreapps.bat 2/15/2013 dwg - build all core apps using batch files
+
+if not exist access.cpm call access.bat
+if not exist access.cpm pause
+
+if not exist cpmname.cpm call cpmname.bat
+if not exist cpmname.cpm pause
+
+if not exist findfile.cpm call findfile.bat
+if not exist findfile.cpm pause
+
+if not exist map.cpm call map.bat
+if not exist map.cpm pause
+
+if not exist meta.cpm call meta.bat
+if not exist meta.cpm pause
+
+if not exist multifmt.cpm call multifmt.bat
+if not exist multifmt.cpm pause
+
+if not exist rem.cpm call makerem.bat
+if not exist rem.cpm pause
+
+if not exist setlabel.cpm call setlabel.bat
+if not exist setlabel.cpm pause
+
+if not exist sysgen.cpm call sysgen.bat
+if not exist sysgen.cpm pause
+
+if not exist termtype.cpm call termtype.bat
+if not exist termtype.cpm pause
+
+if not exist view.cpm call view.bat
+if not exist view.cpm pause
+
+rem All Core Apps Built
+dir *.cpm /w
+
diff --git a/Apps/crossdev/COREAPPS.SUB b/Apps/crossdev/COREAPPS.SUB
new file mode 100644
index 00000000..e6681ac7
--- /dev/null
+++ b/Apps/crossdev/COREAPPS.SUB
@@ -0,0 +1,71 @@
+e:rmac access
+e:rmac banner
+e:rmac findfile
+e:rmac hbios
+e:rmac identity
+e:rmac labelib
+e:rmac memory
+e:rmac metadata
+e:rmac printers
+e:rmac rem
+e:rmac setlabel
+e:rmac terminal
+as asmiface
+as bdoscall
+as bioscall
+cc cbanner
+as cbanner
+cc clogical
+as clogical
+cc cmemory
+as cmemory
+cc cnamept1
+as cnamept1
+cc cnamept2
+as cnamept2
+cc cnamept3
+as cnamept3
+cc cnamept4
+as cnamept4
+cc cpmname
+as cpmname
+cc ctermcap
+as ctermcap
+as diagnose
+cc map
+as map
+cc meta
+as meta
+cc multifmt
+as multifmt
+cc sectorio
+as sectorio
+cc sysgen
+as sysgen
+cc termtype
+as termtype
+cc view
+as view
+e:link access,memory,banner,printers
+ln cpmname.o ctermcap.o cnamept1.o cnamept2.o cnamept3.o cnamept4.o cmemory.o diagnose.o bioscall.o bdoscall.o c.lib
+e:link findfile,hbios,identity,banner,memory,printers,terminal
+ln map.o asmiface.o bioscall.o bdoscall.o clogical.o diagnose.o ctermcap.o c.lib
+ln meta.o asmiface.o bioscall.o bdoscall.o cbanner.o clogical.o diagnose.o ctermcap.o sectorio.o c.lib
+ln multifmt.o asmiface.o bioscall.o bdoscall.o clogical.o cmemory.o sectorio.o diagnose.o ctermcap.o c.lib
+e:link rem
+e:link setlabel,labelib,identity,printers,banner,metadata,memory
+ln sysgen.o sectorio.o ctermcap.o diagnose.o bdoscall.o bioscall.o c.lib
+ln termtype.o asmiface.o ctermcap.o diagnose.o c.lib
+ln view.o ctermcap.o diagnose.o bdoscall.o bioscall.o c.lib
+e:access access.com
+e:access cpmname.com
+e:access findfile.com
+e:access map.com
+e:access meta.com
+e:access multifmt.com
+e:access rem.com
+e:access setlabel.com
+e:access sysgen.com
+e:access termtype.com
+e:access view.com
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPM80.H b/Apps/crossdev/CPM80.H
index f7ed0bac..20d45f51 100644
--- a/Apps/crossdev/CPM80.H
+++ b/Apps/crossdev/CPM80.H
@@ -63,8 +63,7 @@ struct BIOS {
char diskboot;
char bootdrive;
- char devunit;
-
+
char rmj;
char rmn;
char rup;
@@ -193,4 +192,4 @@ struct DPHMAP * pDPHVEC[MAXDRIVE];
/*****************/
/* eof - cpm80.h */
/*****************/
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMAPPL.LIB b/Apps/crossdev/CPMAPPL.LIB
new file mode 100644
index 00000000..fa626600
--- /dev/null
+++ b/Apps/crossdev/CPMAPPL.LIB
@@ -0,0 +1,82 @@
+; cpmappl.lib 2/10/2012 dwg - begin 1.6 development
+; cpmappl.lib 2/04/2012 dwg - fix typo mov becomes mvi
+; cpmappl.lib 2/ 2/2012 dwg - initial version
+
+;
+; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
+;
+; This file is part of NuBiosDWG and is free software: you can
+; redistribute it and/or modify it under the terms of the GNU
+; General Public License as published by the Free Software Foundation,
+; either version 3 of the License, or (at your option) any later version.
+; This file is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+; You should have received a copy of the GNU General Public License
+; along with it. If not, see .
+;
+
+do$start macro
+
+start: jmp begin
+
+ public hexref
+hexref db '0123456789ABCDEF'
+
+ public id$sig,id$rmj,id$rmn,id$rup,id$rtp,id$mon,id$day,id$yr
+id$sig db 'ID'
+id$rmj db A$RMJ
+id$rmn db A$RMN
+id$rup db A$RUP
+id$rtp db A$RTP
+id$mon db A$MONTH
+id$day db A$DAY
+id$yr dw A$YEAR
+id$argv dw argv
+ db 0e5h
+
+
+ public pre$stk
+pre$stk ds 2
+
+ public begin
+begin: lxi h,0
+ dad sp
+ shld pre$stk
+ lxi sp,stack$top
+ nop
+ endm
+
+
+;---------------------------------
+
+
+do$end macro
+ lhld pre$stk
+ sphl
+
+ mvi c,13
+ call BDOS
+
+ ret
+ ds stack$size
+stack$top:
+
+ endm
+
+movfcb macro destn,source
+ lxi d,destn
+ lxi h,source
+ lxi b,LENFCB
+ ldir
+ endm
+
+copyfcb macro fcbname,source
+ local around
+ jmp around
+fcbname ds 32
+around:
+ endm
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMBDOS.H b/Apps/crossdev/CPMBDOS.H
index cc941b65..5ee0c55f 100644
--- a/Apps/crossdev/CPMBDOS.H
+++ b/Apps/crossdev/CPMBDOS.H
@@ -1,4 +1,3 @@
-/* cpmbdos.h 6/11/2012 dwg - */
#define TERMCPM 0
#define CONIN 1
@@ -50,4 +49,4 @@ struct FCB {
char filetype[3];
char filler[24];
};
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMBDOS.LIB b/Apps/crossdev/CPMBDOS.LIB
new file mode 100644
index 00000000..a5c8db6f
--- /dev/null
+++ b/Apps/crossdev/CPMBDOS.LIB
@@ -0,0 +1,174 @@
+; cpmbdos.lib 1/19/2012 dwg - add READ$CON$BUF (10)
+; cpmbdos.lib 1/15/2012 dwg - add more functions
+
+;
+; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
+;
+; This file is part of NuBiosDWG and is free software: you can
+; redistribute it and/or modify it under the terms of the GNU
+; General Public License as published by the Free Software Foundation,
+; either version 3 of the License, or (at your option) any later version.
+; This file is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+; You should have received a copy of the GNU General Public License
+; along with it. If not, see .
+;
+
+; BDOS function codes
+
+TERMCPM equ 0 ; return to command line
+CREAD equ 1 ; read a character
+CWRITE equ 2 ; write a character
+PRINTSTR equ 9 ; print string
+READ$CON$BUF equ 10 ; read console buffer
+RETVERNO equ 12 ; return version number
+DSKRESET equ 13 ; disk reset
+SELDSK equ 14 ; select disk
+FOPEN equ 15 ; open file
+FCLOSE equ 16 ; close file
+FDELETE equ 19 ; delete file
+READSEQ equ 20 ; read sequential
+WRITESEQ equ 21 ; write sequential
+FMAKE equ 22 ; make file
+FRENAME equ 23 ; rename file
+RETCURR equ 25 ; return current disk, 0=a
+SETDMA equ 26 ; set dma address
+WRITERAND equ 34 ; write random record
+FCOMPSIZE equ 35 ; compute file size
+SETRANDREC equ 36 ; set random record
+RESETDRIVE equ 37 ; reset drive
+WRITERANDZF equ 40 ; write random with zero fill
+
+OEMID equ 0E5h
+
+; File Control Block
+DR$OFS equ 0
+F1$OFS equ DR$OFS+BYTESIZE
+F2$OFS equ F1$OFS+BYTESIZE
+F3$OFS equ F2$OFS+BYTESIZE
+F4$OFS equ F3$OFS+BYTESIZE
+F5$OFS equ F4$OFS+BYTESIZE
+F6$OFS equ F5$OFS+BYTESIZE
+F7$OFS equ F6$OFS+BYTESIZE
+F8$OFS equ F7$OFS+BYTESIZE
+T1$OFS equ F8$OFS+BYTESIZE
+T2$OFS equ T1$OFS+BYTESIZE
+T3$OFS equ T2$OFS+BYTESIZE
+EX$OFS equ T3$OFS+BYTESIZE
+S1$OFS equ EX$OFS+BYTESIZE
+S2$OFS equ S1$OFS+BYTESIZE
+RC$OFS equ S2$OFS+BYTESIZE
+D0$OFS equ RC$OFS+BYTESIZE
+CR$OFS equ DR$OFS+32
+R0$OFS equ CR$OFS+BYTESIZE
+R1$OFS equ R0$OFS+BYTESIZE
+R2$OFS equ R1$OFS+BYTESIZE
+FCB$LEN equ R2$OFS+BYTESIZE
+
+; Memory Locations
+
+BDOS equ 5 ; entry point fo BDOS function calls
+PRIFCB equ 5Ch ; primary file control block address
+SECFCB equ 6Ch ; secondary file control block address
+LENFCB equ 32 ; length of file control block
+DEFBUF equ 80h ; address of default buffer
+
+
+EXIT macro
+ mvi c,TERMCPM
+ call BDOS
+ endm
+
+conin macro
+ push b ; save context B&C
+ push d ; save context D&E
+ push h ; save context H&L
+ mvi c,CREAD ; set up for console input BDOS call
+ call BDOS ; call BDOS function entry point
+ pop h ; restore context H&L
+ pop d ; restore context D&E
+ pop b ; restore context B&C
+ endm
+
+conout macro char
+ enter ; save all context regs
+ mvi c,CWRITE ; set for console output BDOS call
+ mvi e,char ; place output character in E as required
+ call bdos ; call BDOS function entry point
+ leave ; restore all context regs
+ endm
+
+conouta macro
+ enter
+ mvi c,CWRITE
+ mov e,a
+ call bdos
+ leave
+ endm
+
+PRINT macro addr
+ enter
+ mvi c,PRINTSTR
+ lxi d,addr
+ call BDOS
+ leave
+ endm
+
+PTRPRT macro addr
+ enter ; save all context registers
+ lxi h,addr ; load the address parameter into H&L
+ mov e,m ; pick up LO byte of new pointer
+ inx h ; bump index register
+ mov d,m ; pick up HO byte of new pointer
+ mvi c,PRINTSTR ; assembled pointer used for printstring call
+ call BDOS
+ leave ; restore all context registers
+ endm
+
+
+movfcb macro destn,source
+ lxi d,destn
+ lxi h,source
+ lxi b,LENFCB
+ ldir
+ endm
+
+copyfcb macro fcbname,source
+ local around
+ jmp around
+fcbname ds 32
+around:
+ endm
+
+printf macro parmdata
+ local around
+ local string
+ print string
+ jmp around
+string db parmdata
+ db '$'
+around:
+ endm
+
+printmsg macro parmdata
+ enter
+ local around
+ local string
+ print string
+ jmp around
+string db parmdata
+ db '$'
+around:
+ leave
+ endm
+
+newfcb macro fcbname,drive,filename
+fcbname db drive,filename
+ db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ endm
+
+
+; eof - cpmbdos.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMBIND.H b/Apps/crossdev/CPMBIND.H
index 0a0dfcf7..ae14800b 100644
--- a/Apps/crossdev/CPMBIND.H
+++ b/Apps/crossdev/CPMBIND.H
@@ -208,6 +208,8 @@ struct BIOS {
#define DEV_PPIDE 0x40
#define DEV_SD 0x50
#define DEV_PRPSD 0x60
+#define DEV_PPPSD 0x70
+#define DEV_HDSK 0x80
#define PLT_N8VEM 1
#define PLT_ZETA 2
@@ -679,4 +681,4 @@ TERM$VT52 equ 3
; eof - std.lib
*/
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMBIOS.LIB b/Apps/crossdev/CPMBIOS.LIB
new file mode 100644
index 00000000..82c80bea
--- /dev/null
+++ b/Apps/crossdev/CPMBIOS.LIB
@@ -0,0 +1,137 @@
+; cpmbios.lib 2/20/2012 dwg - get$off, get$drm, and get$spt need c=drvnum
+; cpmbios.lib 12/26/2011 dwg -
+
+; Copyright (C) 2011-2012 Douglas Goodall All Rights Reserved.
+; For non-commercial use by N8VEM community
+
+XLT$OFS equ 0 ; Translate Table
+RV1$OFS equ XLT$OFS+WORDSIZE ; Reserved Field 1
+RV2$OFS equ RV1$OFS+WORDSIZE ; Reserved Field 2
+RV3$OFS equ RV2$OFS+WORDSIZE ; Reserved Field 3
+DBF$OFS equ RV3$OFS+WORDSIZE ; Directory Buffer
+DPB$OFS equ DBF$OFS+WORDSIZE ; Diskk Parameter Block Pointer
+CSV$OFS equ DPB$OFS+WORDSIZE ; Checksum Vector
+ALV$OFS equ CSV$OFS+WORDSIZE ; Allocation Vector
+DPH$LEN equ ALV$OFS+WORDSIZE ; size of normal DPH
+LU1$OFS equ ALV$OFS+WORDSIZE ; Logical Unit Signature Byte 1 'L'
+LU2$OFS equ LU1$OFS+BYTESIZE ; Logical Unit Signature Byte 2 'U'
+CUR$OFS equ LU2$OFS+BYTESIZE ; Current Logical Unit (default)
+NLU$OFS equ CUR$OFS+WORDSIZE ; Number of LU's (capacity/9)
+
+
+SPT$OFS equ 0 ; Sectors Per Track
+BSH$OFS equ SPT$OFS+WORDSIZE ; Block Shift Factor
+BLM$OFS equ BSH$OFS+BYTESIZE ; Data Allocation Block Mask
+EXM$OFS equ BLM$OFS+BYTESIZE ; Extend Mask
+DSM$OFS equ EXM$OFS+BYTESIZE ; Disk Size Max
+DRM$OFS equ DSM$OFS+WORDSIZE ; Number of Directory Entries
+AL0$OFS equ DRM$OFS+WORDSIZE ; Allocation bitmask for directories
+AL1$OFS equ AL0$OFS+BYTESIZE ; Allocation bitmask for directories
+CKS$OFS equ AL1$OFS+BYTESIZE ; Size of Directory Check Vector
+OFF$OFS equ CKS$OFS+WORDSIZE ; Number of Reserved Tracks
+DPB$LEN equ OFF$OFS+WORDSIZE ; Disk Parameter Block Length
+
+; BIOS Memory Locations
+BIBOOT equ 0E600h
+BIWBOOT equ 0E603h
+BICONST equ 0E606h
+BICONIN equ 0E609h
+BICONOUT equ 0E60Ch
+BILIST equ 0E60Fh
+BIPUNCH equ 0E612h
+BIREADER equ 0E615h
+BIHOME equ 0E618h
+BISELDSK equ 0E61Bh
+BISETTRK equ 0E61Eh
+BISETSEC equ 0E621h
+BISETDMA equ 0E624h
+BIREAD equ 0E627h
+BIWRITE equ 0E62Ah
+BILISTST equ 0E62Dh
+BISECTRN equ 0E630h
+
+; These are rel zero drive number for talking to the BIOS
+; BDOS typically uses rel one drive codes
+
+BIDRVA equ 0
+BIDRVB equ 1
+BIDRVC equ 2
+BIDRVD equ 3
+BIDRVE equ 4
+BIDRVF equ 5
+BIDRVG equ 6
+BIDRVH equ 7
+
+; On entry: c=drive number
+get$spt macro
+ push psw
+ push b
+ push d
+ call BISELDSK
+ lxi d,DPB$OFS
+ dad d
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ lxi d,SPT$OFS
+ dad d
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ pop d
+ pop b
+ pop psw
+ endm
+
+; On entry: c=drive number
+get$drm macro
+ push psw
+ push b
+ push d
+ call BISELDSK
+ lxi d,DPB$OFS
+ dad d
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ lxi d,DRM$OFS
+ dad d
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ pop d
+ pop b
+ pop psw
+ endm
+
+; On entry, c=drive number
+get$off macro
+ push psw
+ push b
+ push d
+ call BISELDSK
+ lxi d,DPB$OFS
+ dad d
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ lxi d,OFF$OFS
+ dad d
+ mov e,m
+ inx h
+ mov d,m
+ xchg
+ pop d
+ pop b
+ pop psw
+ endm
+
+
+
+; eof - cpmbios.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMNAME.ASM b/Apps/crossdev/CPMNAME.ASM
new file mode 100644
index 00000000..d4b2fd0c
--- /dev/null
+++ b/Apps/crossdev/CPMNAME.ASM
@@ -0,0 +1,164 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global pINFOLIS_,2
+ global pSYSCFG_,2
+ global line_,2
+ PUBLIC main_
+main_: lxi d,.2
+ call csave
+ LXI H,5
+ SHLD line_
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ CALL crtinit_
+ POP D
+ CALL crtclr_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,3
+ PUSH H
+ LXI H,2
+ PUSH H
+ LXI H,2013
+ PUSH H
+ LXI H,16
+ PUSH H
+ LXI H,1
+ PUSH H
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,16
+ DAD SP
+ SPHL
+ LXI H,.1+36
+ PUSH H
+ CALL printf_
+ POP D
+ CALL pager_
+ CALL pager_
+ LXI H,-6596
+ SHLD ireghl_
+ CALL bioscall_
+ LHLD ireghl_
+ SHLD pINFOLIS_
+ LXI H,.1+72
+ PUSH H
+ CALL printf_
+ POP D
+ LHLD pINFOLIS_
+ INX H
+ INX H
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD dregde_
+ LXI H,9
+ SHLD dregbc_
+ CALL bdoscall_
+ CALL pager_
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LHLD pSYSCFG_
+ PUSH H
+ CALL cnamept1_
+ POP D
+ LHLD pSYSCFG_
+ PUSH H
+ CALL cnamept2_
+ POP D
+ LHLD pSYSCFG_
+ PUSH H
+ CALL cnamept3_
+ POP D
+ LHLD pSYSCFG_
+ PUSH H
+ CALL cnamept4_
+ POP D
+ RET
+.2 EQU -7
+.1:
+ DB 67,80,77,78,65,77,69,46,67,79,77,32,37,100,47
+ DB 37,100,47,37,100,32,118,37,100,46,37,100,46,37,100
+ DB 32,40,37,100,41,0,32,100,119,103,32,45,32,68,105
+ DB 115,112,108,97,121,32,83,121,115,116,101,109,32,67,111
+ DB 110,102,105,103,117,114,97,116,105,111,110,0,112,73,78
+ DB 70,79,76,73,83,84,45,62,98,97,110,112,116,114,32
+ DB 61,61,62,32,0
+ PUBLIC pager_
+pager_: lxi d,.4
+ call csave
+ LHLD line_
+ INX H
+ SHLD line_
+ LXI H,.3+0
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,24
+ XCHG
+ LHLD line_
+ CALL .eq
+ JZ .5
+ LXI H,.3+2
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,1
+ SHLD dregbc_
+ CALL bdoscall_
+ LXI H,1
+ SHLD line_
+.5:
+ RET
+.4 EQU 0
+.3:
+ DB 10,0,32,32,32,32,32,112,114,101,115,115,32,97,110
+ DB 121,32,107,101,121,32,116,111,32,99,111,110,116,105,110
+ DB 117,101,0
+ extrn printf_
+ extrn crtlc_
+ extrn crtclr_
+ extrn crtinit_
+ extrn cnamept4_
+ extrn cnamept3_
+ extrn cnamept2_
+ extrn cnamept1_
+ extrn diagnose_
+ extrn hregde_
+ extrn hregbc_
+ extrn bdoscall_
+ extrn dregde_
+ extrn dregbc_
+ extrn bioscall_
+ extrn ireghl_
+ extrn .eq
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMNAME.BAT b/Apps/crossdev/CPMNAME.BAT
new file mode 100644
index 00000000..33a14847
--- /dev/null
+++ b/Apps/crossdev/CPMNAME.BAT
@@ -0,0 +1,57 @@
+rem cpmname.sub 9/5/2012 dwg - build cpmname from sources
+
+if not exist cpmname.asm erase cpmname.cpm
+if not exist cpmname.asm erase cpmname.o
+if not exist cpmname.asm z80mu cc cpmname
+if not exist cpmname.o erase cpmname.cpm
+if not exist cpmname.o z80mu as cpmname
+
+if not exist cnamept1.asm erase cpmname.cpm
+if not exist cnamept1.asm erase cnamept1.o
+if not exist cnamept1.asm z80mu cc cnamept1
+if not exist cnamept1.o erase cpmname.cpm
+if not exist cnamept1.o z80mu as cnamept1
+
+if not exist cnamept2.asm erase cpmname.cpm
+if not exist cnamept2.asm erase cnamept2.o
+if not exist cnamept2.asm z80mu cc cnamept2
+if not exist cnamept2.o erase cpmname.cpm
+if not exist cnamept2.o z80mu as cnamept2
+
+if not exist cnamept3.asm erase cpmname.cpm
+if not exist cnamept3.asm erase cnamept3.o
+if not exist cnamept3.asm z80mu cc cnamept3
+if not exist cnamept3.o erase cpmname.cpm
+if not exist cnamept3.o z80mu as cnamept3
+
+if not exist cnamept4.asm erase cpmname.cpm
+if not exist cnamept4.asm erase cnamept4.o
+if not exist cnamept4.asm z80mu cc cnamept4
+if not exist cnamept4.o erase cpmname.cpm
+if not exist cnamept4.o z80mu as cnamept4
+
+if not exist bdoscall.o erase cpmname.cpm
+if not exist bdoscall.o z80mu as bdoscall
+
+if not exist bioscall.o erase cpmname.cpm
+if not exist bioscall.o z80mu as bioscall
+
+if not exist cmemory.asm erase cpmname.cpm
+if not exist cmemory.asm erase cmemory.o
+if not exist cmemory.asm z80mu cc cmemory
+if not exist cmemory.o erase cpmname.cpm
+if not exist cmemory.o z80mu as cmemory
+
+if not exist ctermcap.asm erase cpmname.cpm
+if not exist ctermcap.asm erase ctermcap.o
+if not exist ctermcap.asm z80mu cc ctermcap
+if not exist ctermcap.o erase cpmname.cpm
+if not exist ctermcap.o z80mu as ctermcap
+
+if not exist diagnose.o erase cpmname.cpm
+if not exist diagnose.o z80mu as diagnose
+
+if not exist cpmname.cpm z80mu ln cpmname.o ctermcap.o cnamept1.o cnamept2.o cnamept3.o cnamept4.o cmemory.o diagnose.o bioscall.o bdoscall.o c.lib
+if not exist cpmanme.cpm rename cpmname.com cpmname.cpm
+
+dir cpmname.cpm
diff --git a/Apps/crossdev/CPMNAME.C b/Apps/crossdev/CPMNAME.C
index 72b9d023..4853815f 100644
--- a/Apps/crossdev/CPMNAME.C
+++ b/Apps/crossdev/CPMNAME.C
@@ -13,6 +13,10 @@
#include "diagnose.h"
#include "std.h"
+#define BDOS 5 /* memory address of BDOS invocation */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
extern cnamept1();
@@ -20,7 +24,9 @@ extern cnamept2();
extern cnamept3();
extern cnamept4();
-struct SYSCFG * syscfg;
+
+
+struct SYSCFG * pSYSCFG;
int line;
int main(argc,argv)
@@ -36,8 +42,19 @@ int main(argc,argv)
char * pC;
line = 5;
+
+
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+ pSYSCFG = HIGHSEG;
+
+ crtinit(pSYSCFG->cnfgdata.termtype);
+ crtclr();
+ crtlc(0,0);
- printf("CPMNAME.COM %d/%d/%d v%d.%d.%d.%d",
+ 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();
@@ -54,16 +71,18 @@ int main(argc,argv)
bdoscall();
pager();
- syscfg = 0x8000;
hregbc = 0xf000;
- hregde = syscfg;
+ hregde = HIGHSEG;
diagnose();
- cnamept1(syscfg);
- cnamept2(syscfg);
- cnamept3(syscfg);
- cnamept4(syscfg);
+ pSYSCFG = HIGHSEG;
+
+
+ cnamept1(pSYSCFG);
+ cnamept2(pSYSCFG);
+ cnamept3(pSYSCFG);
+ cnamept4(pSYSCFG);
}
@@ -83,4 +102,4 @@ pager()
/* eof - ccpmname.c */
/********************/
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/CPMNAME.CPM b/Apps/crossdev/CPMNAME.CPM
new file mode 100644
index 00000000..665804f6
Binary files /dev/null and b/Apps/crossdev/CPMNAME.CPM differ
diff --git a/Apps/crossdev/CPMNAME.O b/Apps/crossdev/CPMNAME.O
new file mode 100644
index 00000000..07068550
Binary files /dev/null and b/Apps/crossdev/CPMNAME.O differ
diff --git a/Apps/crossdev/CPMNAME.SUB b/Apps/crossdev/CPMNAME.SUB
new file mode 100644
index 00000000..adba240b
--- /dev/null
+++ b/Apps/crossdev/CPMNAME.SUB
@@ -0,0 +1,20 @@
+e:rem cpmname.sub 9/5/2012 dwg - build cpmname from sources
+cc cpmname
+as cpmname
+cc cnamept1
+as cnamept1
+cc cnamept2
+as cnamept2
+cc cnamept3
+as cnamept3
+cc cnamept4
+as cnamept4
+as bdoscall
+as bioscall
+cc cmemory
+as cmemory
+cc ctermcap
+as ctermcap
+as diagnose
+ln cpmname.o ctermcap.o cnamept1.o cnamept2.o cnamept3.o cnamept4.o cmemory.o diagnose.o bioscall.o bdoscall.o c.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/CTERMCAP.ASM b/Apps/crossdev/CTERMCAP.ASM
new file mode 100644
index 00000000..50ae771d
--- /dev/null
+++ b/Apps/crossdev/CTERMCAP.ASM
@@ -0,0 +1,334 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global termtype_,1
+ DSEG
+ public wy50row_
+wy50row_:
+ DB 32
+ DB 33
+ DB 34
+ DB 35
+ DB 36
+ DB 37
+ DB 38
+ DB 39
+ DB 40
+ DB 41
+ DB 42
+ DB 43
+ DB 44
+ DB 45
+ DB 46
+ DB 47
+ DB 48
+ DB 49
+ DB 50
+ DB 51
+ DB 52
+ DB 53
+ DB 54
+ DB 55
+ CSEG
+ DSEG
+ public wy50col_
+wy50col_:
+ DB 32
+ DB 33
+ DB 34
+ DB 35
+ DB 36
+ DB 37
+ DB 38
+ DB 39
+ DB 40
+ DB 41
+ DB 42
+ DB 43
+ DB 44
+ DB 45
+ DB 46
+ DB 47
+ DB 48
+ DB 49
+ DB 50
+ DB 51
+ DB 52
+ DB 53
+ DB 54
+ DB 55
+ DB 56
+ DB 57
+ DB 58
+ DB 59
+ DB 60
+ DB 61
+ DB 62
+ DB 63
+ DB 64
+ DB 65
+ DB 66
+ DB 67
+ DB 68
+ DB 69
+ DB 70
+ DB 71
+ DB 72
+ DB 73
+ DB 74
+ DB 75
+ DB 76
+ DB 77
+ DB 78
+ DB 79
+ DB 80
+ DB 81
+ DB 82
+ DB 83
+ DB 84
+ DB 85
+ DB 86
+ DB 87
+ DB 88
+ DB 89
+ DB 90
+ DB 91
+ DB 92
+ DB 93
+ DB 94
+ DB 95
+ DB 96
+ DB 97
+ DB 98
+ DB 99
+ DB 100
+ DB 101
+ DB 102
+ DB 103
+ DB 104
+ DB 105
+ DB 106
+ DB 107
+ DB 108
+ DB 109
+ DB 110
+ DB 111
+ CSEG
+ PUBLIC crtinit_
+crtinit_: lxi d,.2
+ call csave
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ XCHG
+ MOV A,L
+ STA termtype_
+ RET
+.2 EQU 0
+ PUBLIC crtclr_
+crtclr_: lxi d,.3
+ call csave
+ LDA termtype_
+ MOV L,A
+ MVI H,0
+ JMP .4
+.6:
+ LXI H,0
+ XCHG
+ LXI H,2-.3
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .8
+.7:
+ LXI H,2-.3
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.8:
+ LXI H,2-.3
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,43
+ CALL .lt
+ JZ .9
+ LXI H,10
+ PUSH H
+ LXI H,13
+ PUSH H
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ JMP .7
+.9:
+ JMP .5
+.10:
+ LXI H,27
+ PUSH H
+ LXI H,.1+5
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .5
+.11:
+ LXI H,27
+ PUSH H
+ LXI H,.1+11
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .5
+.12:
+ LXI H,27
+ PUSH H
+ LXI H,27
+ PUSH H
+ LXI H,.1+15
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ JMP .5
+.4:
+ CALL .swt
+ DW 4
+ DW 0,.6
+ DW 1,.10
+ DW 2,.11
+ DW 3,.12
+ DW .5
+.5:
+ RET
+.3 EQU -2
+.1:
+ DB 37,99,37,99,0,37,99,91,50,74,0,37,99,43,0
+ DB 37,99,74,37,99,72,0
+ PUBLIC crtlc_
+crtlc_: lxi d,.14
+ call csave
+ LDA termtype_
+ MOV L,A
+ MVI H,0
+ JMP .15
+.17:
+ JMP .16
+.18:
+ LXI H,102
+ PUSH H
+ LXI H,12-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,12-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,27
+ PUSH H
+ LXI H,.13+0
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,10
+ DAD SP
+ SPHL
+ JMP .16
+.19:
+ LXI H,10-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,wy50col_
+ DAD D
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,10-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,wy50row_
+ DAD D
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,27
+ PUSH H
+ LXI H,.13+11
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ JMP .16
+.20:
+ LXI H,10-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,32
+ DAD D
+ PUSH H
+ LXI H,10-.14
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,32
+ DAD D
+ PUSH H
+ LXI H,27
+ PUSH H
+ LXI H,.13+19
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ JMP .16
+.15:
+ CALL .swt
+ DW 4
+ DW 0,.17
+ DW 1,.18
+ DW 2,.19
+ DW 3,.20
+ DW .16
+.16:
+ RET
+.14 EQU -2
+.13:
+ DB 37,99,91,37,100,59,37,100,37,99,0,37,99,61,37
+ DB 99,37,99,0,37,99,89,37,99,37,99,0
+ extrn printf_
+ extrn .lt
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/CTERMCAP.C b/Apps/crossdev/CTERMCAP.C
index ca1ffaf6..04baf9c4 100644
--- a/Apps/crossdev/CTERMCAP.C
+++ b/Apps/crossdev/CTERMCAP.C
@@ -8,23 +8,38 @@
#include "syscfg.h"
#include "diagnose.h"
-int tt;
+char termtype;
-crtinit()
+
+
+char wy50row[24] = { ' ', '!', '"', '#', '$', '%', '&', 39,
+ '(', ')', '*', '+', ',', '-', '.', '/',
+ '0', '1', '2', '3', '4', '5', '6', '7' };
+
+char wy50col[80] = { ' ', '!', '"', '#', '$', '%', '&', 39,
+ '(', ')', '*', '+', ',', '-', '.', '/',
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', ':', ';', '<', '=', '>', '?',
+ '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
+ 96, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o' };
+
+
+
+crtinit(tt)
+ char tt;
{
- struct SYSCFG * pSYSCFG;
- hregbc = 0x0f000;
- hregde = 0x0C000;
- diagnose();
- pSYSCFG = 0x0C000;
- tt = pSYSCFG->cnfgdata.termtype;
+ termtype = tt;
}
crtclr()
{
int i;
- switch(tt) {
+ switch(termtype) {
case TERM_TTY:
for(i=0;i<43;i++) {
printf("%c%c",CR,LF);
@@ -48,14 +63,14 @@ int col;
{
int i;
- switch(tt) {
+ switch(termtype) {
case TERM_TTY:
break;
case TERM_ANSI:
printf("%c[%d;%d%c",ESC,line,col,0x66);
break;
case TERM_WYSE:
- printf("%c+",ESC);
+ printf("%c=%c%c",ESC,wy50row[line-1],wy50col[col-1]);
break;
case TERM_VT52:
printf("%cY%c%c",ESC,' '+line,' '+col);
@@ -63,15 +78,8 @@ int col;
};
}
-
-
-
/*
-SINGLEQUOTE equ 0
-RIGHTQUOTE equ 0
-LEFTQUOTE equ 0
-
wy50row db ' !"#$%&'
db 39
db '()*+,-./01234567'
@@ -82,9 +90,6 @@ wy50col db ' !"#$%&'
db 96
db 'abcdefghijklmno'
-templine db 0
-tempcol db 0
-
*/
diff --git a/Apps/crossdev/CTERMCAP.H b/Apps/crossdev/CTERMCAP.H
index 8cb4ad4e..ed706792 100644
--- a/Apps/crossdev/CTERMCAP.H
+++ b/Apps/crossdev/CTERMCAP.H
@@ -1,6 +1,6 @@
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */
-extern crtinit();
-extern crtclr();
-extern crtlc();
-
\ No newline at end of file
+extern crtinit(); /* void crtinit(char termtype); */
+extern crtclr(); /* void crtclr(void); */
+extern crtlc(); /* void crtlc(char line,char column); */
+
\ No newline at end of file
diff --git a/Apps/crossdev/CTERMCAP.O b/Apps/crossdev/CTERMCAP.O
new file mode 100644
index 00000000..f6da9622
Binary files /dev/null and b/Apps/crossdev/CTERMCAP.O differ
diff --git a/Apps/crossdev/CVT2H.C b/Apps/crossdev/CVT2H.C
new file mode 100644
index 00000000..4db57680
--- /dev/null
+++ b/Apps/crossdev/CVT2H.C
@@ -0,0 +1,42 @@
+/* cvt2h.h 7/11/2012 dwg - Copyright (C) 2012 Douglas Goodall */
+
+#include "stdio.h"
+#include "visible.h"
+
+cvt2h(buffer,length,name)
+ unsigned char * buffer;
+ int length;
+ char * name;
+{
+ FILE * fd;
+ int i,j,k,l;
+ char szTemp[32];
+ fd = fopen(name,"w");
+ fprintf(fd,
+ "/* %s produced automatically by cvt2h.h */\n",name);
+ strcpy(szTemp,name);
+ szTemp[8] = 0;
+ fprintf(fd,
+ "unsigned char %s[%d] = {\n\t",
+ szTemp,length);
+ for(i=0;i> 8;
+ device = devunit & 0xf0;
+ unit = devunit & 0x0f;
+ if(DEV_FD == device) {
+ gFDNums[gNumFD] = drive;
+ gbFD[gNumFD++] = iregbc & 0xff;
+ }
+ drive++;
+ }
+}
+
+
+int main(argc,argv)
+ int argc;
+ char *argv[] ;
+{
+ char drive;
+ int fd0,fd1;
+ int i;
+ int spt;
+ int track;
+ int tracks;
+ int bValid;
+
+ sensefd();
+
+ if(2 != gNumFD) {
+ printf("Sorry, this version of diskcopy only supports dual drives");
+ exit(FAILURE);
+ }
+ printf("The copy will be from drive %c: to drive %c:\n",
+ gFDNums[0]+'A',gFDNums[1]+'A');
+
+ printf("The media in FD0 is ");
+ fd0 = diomed(DEV_FD);
+ switch(fd0) {
+ case MID_NONE:
+ printf("Drive is empty");
+ break;
+ case MID_MDROM:
+ printf("a memory ROM drive");
+ break;
+ case MID_MDRAM:
+ printf("a memory RAM drive");
+ break;
+ case MID_HD:
+ printf("an HD drive");
+ break;
+ case MID_FD720:
+ printf("a 720KB floppy disk");
+ tracks = 80 * 2;
+ break;
+ case MID_FD144:
+ printf("a 1.44MB floppy disk");
+ tracks = 80 * 2;
+ break;
+ case MID_FD360:
+ printf("a 360KB floppy disk");
+ tracks = 40 * 2;
+ break;
+ case MID_FD120:
+ printf("a 120KB floppy disk");
+ tracks = 80 * 2;
+ break;
+ case MID_FD111:
+ printf("a 111KB floppy disk");
+ tracks = 74 * 2;
+ break;
+ default:
+ printf("an unknown media type");
+ break;
+ }
+ printf("\n");
+
+
+
+ printf("The media in FD1 is ");
+ fd1 = diomed(DEV_FD+1);
+ switch(fd1) {
+ case MID_NONE:
+ printf("Drive is empty");
+ break;
+ case MID_MDROM:
+ printf("a memory ROM drive");
+ break;
+ case MID_MDRAM:
+ printf("a memory RAM drive");
+ break;
+ case MID_HD:
+ printf("an HD drive");
+ break;
+ case MID_FD720:
+ printf("a 720KB floppy disk");
+ break;
+ case MID_FD144:
+ printf("a 1.44MB floppy disk");
+ break;
+ case MID_FD360:
+ printf("a 360KB floppy disk");
+ break;
+ case MID_FD120:
+ printf("a 120KB floppy disk");
+ break;
+ case MID_FD111:
+ printf("a 111KB floppy disk");
+ break;
+ default:
+ printf("an unknown media type");
+ break;
+ }
+ printf("\n");
+
+ if(fd0 != fd1) {
+ printf("Sorry, media types don't match, as required for diskcopy");
+ exit(1);
+ }
+
+ for(track=0;trackdpb;
+ spt = pDPB->spt;
+ ireghl = pSETTRK;
+ iregbc = track;
+ bioscall();
+ printf("%3d ",track);
+ rdtrack(0,spt,buffer);
+ printf("%c",0x0d);
+
+ bValid = FALSE;
+ for(i=0;idpb;
+ spt = pDPB->spt;
+ ireghl = pSETTRK;
+ iregbc = track; /* Track 0 */
+ bioscall();
+ printf("%3d ",track);
+ wrtrack(0,spt,buffer);
+ printf("%c",0x0d);
+
+ }
+
+ }
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/DOIT.C b/Apps/crossdev/DOIT.C
new file mode 100644
index 00000000..80af4737
--- /dev/null
+++ b/Apps/crossdev/DOIT.C
@@ -0,0 +1,12 @@
+#include "stdio.h"
+
+main()
+{
+ FILE * fd;
+ fd = fopen("$$$.SUB","w");
+ fprintf(fd,"%ca:getcfg\n",9);
+ fprintf(fd,"%ca:dump syscfg.bin\n",18);
+ fprintf(fd,"%ctype a:sect0000.h\n",17);
+ fclose(fd);
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/DPHDPB.H b/Apps/crossdev/DPHDPB.H
index 188427a9..01e69831 100644
--- a/Apps/crossdev/DPHDPB.H
+++ b/Apps/crossdev/DPHDPB.H
@@ -1,4 +1,19 @@
-/* dphdpb.h 6/10/2012 dwg - CP/M Disk Parameters */
+
+struct DPH {
+ unsigned int xlt;
+ unsigned int rv1;
+ unsigned int rv2;
+ unsigned int rv3;
+ unsigned int dbf;
+ void * dpb;
+ void * csv;
+ void * alv;
+ /* extension */
+ unsigned char sigl;
+ unsigned char sigu;
+ unsigned int current;
+ unsigned int number;
+};
struct DPB {
unsigned int spt;
@@ -12,21 +27,4 @@ struct DPB {
unsigned int cks;
unsigned int off;
};
-
-struct DPH {
- unsigned int xlt;
- unsigned int rv1;
- unsigned int rv2;
- unsigned int rv3;
- unsigned int dbf;
- struct DPB * dpb;
- void * csv;
- void * alv;
- /* extension */
- char sigl;
- char sigu;
- int current;
- int number;
-};
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Apps/crossdev/DPHMAP.H b/Apps/crossdev/DPHMAP.H
index 89c9a90c..1fe765b4 100644
--- a/Apps/crossdev/DPHMAP.H
+++ b/Apps/crossdev/DPHMAP.H
@@ -1,3 +1,4 @@
+/* dphmap.h 9/4/2012 dwg - expand to include I through L */
/* dphmap.h 5/29/2012 dwg - declaration of DPH MAP structure */
struct DPHMAP {
@@ -9,6 +10,11 @@ struct DPHMAP {
struct DPH * drivef;
struct DPH * driveg;
struct DPH * driveh;
+
+ struct DPH * drivei;
+ struct DPH * drivej;
+ struct DPH * drivek;
+ struct DPH * drivel;
} * pDPHMAP;
struct DPHMAP * pDPHVEC[MAXDRIVE];
@@ -16,4 +22,4 @@ struct DPHMAP * pDPHVEC[MAXDRIVE];
/******************/
/* eof - dphmap.h */
-/******************/
\ No newline at end of file
+/******************/
\ No newline at end of file
diff --git a/Apps/crossdev/DUMP.ASM b/Apps/crossdev/DUMP.ASM
new file mode 100644
index 00000000..42fab378
--- /dev/null
+++ b/Apps/crossdev/DUMP.ASM
@@ -0,0 +1,1494 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ DSEG
+ public visible_
+visible_:
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 1
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ DB 0
+ CSEG
+ PUBLIC cvt2h_
+cvt2h_: lxi d,.2
+ call csave
+ LXI H,.1+0
+ PUSH H
+ LXI H,14-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fopen_
+ POP D
+ POP D
+ XCHG
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+2
+ PUSH H
+ LXI H,6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-36-.2
+ DAD SP
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-30-.2
+ DAD SP
+ MOV M,E
+ LXI H,10-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-36-.2
+ DAD SP
+ PUSH H
+ LXI H,.1+46
+ PUSH H
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,0
+ XCHG
+ LXI H,0-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .4
+.3:
+ LXI H,0-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.4:
+ LXI H,0-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,10-.2
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .5
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,0-.2
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+73
+ PUSH H
+ LXI H,6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,0-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,7
+ CALL .an
+ PUSH H
+ LXI H,7
+ POP D
+ CALL .eq
+ JZ .6
+ LXI H,.1+81
+ PUSH H
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ LXI H,0-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-8
+ CALL .an
+ XCHG
+ LXI H,-2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,8
+ DAD D
+ XCHG
+ LXI H,-4-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+86
+ PUSH H
+ LXI H,6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,-2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-6-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .8
+.7:
+ LXI H,-6-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.8:
+ LXI H,-6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-4-.2
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .9
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-6-.2
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ MVI D,0
+ LXI H,visible_
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .10
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-6-.2
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+94
+ PUSH H
+ LXI H,6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ JMP .11
+.10:
+ LXI H,.1+98
+ PUSH H
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+.11:
+ JMP .7
+.9:
+ LXI H,.1+101
+ PUSH H
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ LXI H,.1+104
+ PUSH H
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+.6:
+ JMP .3
+.5:
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+107
+ PUSH H
+ LXI H,6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fclose_
+ POP D
+ RET
+.2 EQU -42
+.1:
+ DB 119,0,47,42,32,37,115,32,112,114,111,100,117,99,101
+ DB 100,32,97,117,116,111,109,97,116,105,99,97,108,108,121
+ DB 32,98,121,32,99,118,116,50,104,46,104,32,42,47,10
+ DB 0,117,110,115,105,103,110,101,100,32,99,104,97,114,32
+ DB 37,115,91,37,100,93,32,61,32,123,10,9,0,48,120
+ DB 37,48,50,120,44,0,32,47,42,32,0,32,37,48,52
+ DB 120,58,32,0,37,99,32,0,46,32,0,42,47,0,10
+ DB 9,0,125,59,10,47,42,32,101,111,102,32,45,32,37
+ DB 115,32,42,47,10,0
+ PUBLIC cvt2inc_
+cvt2inc_: lxi d,.13
+ call csave
+ LXI H,.12+0
+ PUSH H
+ LXI H,14-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fopen_
+ POP D
+ POP D
+ XCHG
+ LXI H,2-.13
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,12-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.12+2
+ PUSH H
+ LXI H,6-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,12-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,-36-.13
+ DAD SP
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-30-.13
+ DAD SP
+ MOV M,E
+ LXI H,-38-.13
+ DAD SP
+ PUSH H
+ LXI H,.12+45
+ PUSH H
+ LXI H,6-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,.12+50
+ PUSH H
+ LXI H,4-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,0-.13
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,0-.13
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .15
+.14:
+ LXI H,0-.13
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.15:
+ LXI H,0-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,10-.13
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .16
+ LXI H,8-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,0-.13
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.12+58
+ PUSH H
+ LXI H,6-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,0-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,7
+ CALL .an
+ PUSH H
+ LXI H,7
+ POP D
+ CALL .eq
+ JZ .17
+ LXI H,.12+64
+ PUSH H
+ LXI H,4-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ LXI H,0-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-8
+ CALL .an
+ XCHG
+ LXI H,-2-.13
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-2-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,8
+ DAD D
+ XCHG
+ LXI H,-4-.13
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-2-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.12+69
+ PUSH H
+ LXI H,6-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,-2-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-6-.13
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .19
+.18:
+ LXI H,-6-.13
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.19:
+ LXI H,-6-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-4-.13
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .20
+ LXI H,8-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-6-.13
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ MVI D,0
+ LXI H,visible_
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .21
+ LXI H,8-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,-6-.13
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.12+77
+ PUSH H
+ LXI H,6-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ POP D
+ JMP .22
+.21:
+ LXI H,.12+81
+ PUSH H
+ LXI H,4-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+.22:
+ JMP .18
+.20:
+ LXI H,10-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DCX H
+ PUSH H
+ LXI H,2-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ POP H
+ CALL .ne
+ JZ .23
+ LXI H,.12+84
+ PUSH H
+ LXI H,4-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+.23:
+ JMP .24
+.17:
+ LXI H,.12+93
+ PUSH H
+ LXI H,4-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+.24:
+ JMP .14
+.16:
+ LXI H,.12+95
+ PUSH H
+ LXI H,4-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fprintf_
+ POP D
+ POP D
+ LXI H,2-.13
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fclose_
+ POP D
+ RET
+.13 EQU -42
+.12:
+ DB 119,0,59,32,37,115,32,112,114,111,100,117,99,101,100
+ DB 32,97,117,116,111,109,97,116,105,99,97,108,108,121,32
+ DB 98,121,32,99,118,116,50,105,110,99,46,104,32,10,0
+ DB 37,115,58,10,0,32,32,46,68,66,32,32,0,37,48
+ DB 51,120,104,0,32,32,59,32,0,32,37,48,52,120,58
+ DB 32,0,37,99,32,0,46,32,0,10,32,32,46,68,66
+ DB 32,32,0,44,0,10,0
+ PUBLIC main_
+main_: lxi d,.26
+ call csave
+ LXI H,.25+0
+ PUSH H
+ CALL banner_
+ POP D
+ LXI H,1
+ XCHG
+ LXI H,8-.26
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .eq
+ JZ .27
+ LXI H,.25+9
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,1
+ PUSH H
+ CALL exit_
+ POP D
+.27:
+ LXI H,.25+40
+ PUSH H
+ LXI H,12-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ INX H
+ INX H
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fopen_
+ POP D
+ POP D
+ XCHG
+ LXI H,-167-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-167-.26
+ DAD SP
+ mov a,m
+ inx h
+ ora m
+ JNZ .28
+ LXI H,.25+42
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,1
+ PUSH H
+ CALL exit_
+ POP D
+.28:
+ LXI H,10-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ INX H
+ INX H
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.25+72
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-2-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-167-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,1
+ PUSH H
+ LXI H,128
+ PUSH H
+ LXI H,-127-.26
+ DAD SP
+ PUSH H
+ CALL fread_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,-4-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+.29:
+ LXI H,0
+ XCHG
+ LXI H,-4-.26
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .lt
+ JZ .30
+ LXI H,-2-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.25+85
+ PUSH H
+ LXI H,-161-.26
+ DAD SP
+ PUSH H
+ CALL sprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,-165-.26
+ DAD SP
+ PUSH H
+ LXI H,128
+ PUSH H
+ LXI H,-129-.26
+ DAD SP
+ PUSH H
+ CALL cvt2h_
+ POP D
+ POP D
+ POP D
+ LXI H,-2-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.25+96
+ PUSH H
+ LXI H,-161-.26
+ DAD SP
+ PUSH H
+ CALL sprintf_
+ POP D
+ POP D
+ POP D
+ LXI H,-165-.26
+ DAD SP
+ PUSH H
+ LXI H,128
+ PUSH H
+ LXI H,-129-.26
+ DAD SP
+ PUSH H
+ CALL cvt2inc_
+ POP D
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,2-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .32
+.31:
+ LXI H,2-.26
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.32:
+ LXI H,2-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,8
+ CALL .lt
+ JZ .33
+ LXI H,-2-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.25+109
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,16
+ XCHG
+ LXI H,-2-.26
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,0-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .35
+.34:
+ LXI H,0-.26
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.35:
+ LXI H,0-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16
+ CALL .lt
+ JZ .36
+ LXI H,2-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ DAD H
+ DAD H
+ XCHG
+ LXI H,0-.26
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ XCHG
+ LXI H,-133-.26
+ DAD SP
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.25+116
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .34
+.36:
+ LXI H,.25+122
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,0-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .38
+.37:
+ LXI H,0-.26
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.38:
+ LXI H,0-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16
+ CALL .lt
+ JZ .39
+ LXI H,2-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ DAD H
+ DAD H
+ DAD H
+ XCHG
+ LXI H,0-.26
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ DAD D
+ XCHG
+ LXI H,-133-.26
+ DAD SP
+ DAD D
+ MOV E,M
+ LXI H,-5-.26
+ DAD SP
+ MOV M,E
+ LXI H,-5-.26
+ DAD SP
+ MOV E,M
+ MVI D,0
+ LXI H,visible_
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,1
+ POP D
+ CALL .eq
+ JZ .40
+ LXI H,-5-.26
+ DAD SP
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.25+125
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .41
+.40:
+ LXI H,.25+128
+ PUSH H
+ CALL printf_
+ POP D
+.41:
+ JMP .37
+.39:
+ LXI H,.25+130
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .31
+.33:
+ LXI H,.25+132
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,-167-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,1
+ PUSH H
+ LXI H,128
+ PUSH H
+ LXI H,-127-.26
+ DAD SP
+ PUSH H
+ CALL fread_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,-4-.26
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .29
+.30:
+ LXI H,-167-.26
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fclose_
+ POP D
+ LXI H,0
+ PUSH H
+ CALL exit_
+ POP D
+ RET
+.26 EQU -171
+.25:
+ DB 68,85,77,80,46,67,79,77,0,83,111,114,114,121,44
+ DB 32,110,111,32,105,110,112,117,116,32,102,105,108,101,32
+ DB 115,112,101,99,105,102,105,101,100,0,114,0,83,111,114
+ DB 114,121,44,32,99,97,110,110,111,116,32,111,112,101,110
+ DB 32,105,110,112,117,116,32,102,105,108,101,0,68,117,109
+ DB 112,105,110,103,32,37,115,10,10,0,115,101,99,116,37
+ DB 48,52,120,46,104,0,115,101,99,116,37,48,52,120,46
+ DB 105,110,99,0,37,48,52,120,58,32,0,37,48,50,120
+ DB 32,0,32,32,0,37,99,0,46,0,10,0,10,0
+ extrn sprintf_
+ extrn fread_
+ extrn exit_
+ extrn printf_
+ extrn banner_
+ extrn fclose_
+ extrn strcpy_
+ extrn fprintf_
+ extrn fopen_
+ extrn .an
+ extrn .eq
+ extrn .ne
+ extrn .lt
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/DUMP.C b/Apps/crossdev/DUMP.C
new file mode 100644
index 00000000..77655006
--- /dev/null
+++ b/Apps/crossdev/DUMP.C
@@ -0,0 +1,101 @@
+/* dump.c 7/11/2012 dwg -
+
+ The purpose of this program is similar to the CP/M dump program
+ except that in addition to the normal hexadecimal bytes, a field
+ of ascii bytes to the right are displayed as well.
+
+*/
+
+#include "stdio.h"
+
+
+char visible[256] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
+};
+
+#include "cvt2h.h"
+#include "cvt2inc.h"
+
+main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ int i,j;
+ int offset;
+ int result;
+ unsigned char byte;
+ unsigned char sector[128];
+ char name[32];
+
+
+ FILE * fd;
+
+ banner("DUMP.COM");
+
+/* cvt2h(0x0100,12*1024,"dumpcomh.h"); */
+
+
+ if(1 == argc) {
+ printf("Sorry, no input file specified");
+ exit(1);
+ }
+
+ fd = fopen(argv[1],"r");
+ if(NULL == fd) {
+ printf("Sorry, cannot open input file");
+ exit(1);
+ }
+
+ printf("Dumping %s\n\n",argv[1]);
+
+ offset = 0;
+ result = fread(sector,sizeof(sector),1,fd);
+ while(0 < result) {
+
+ sprintf(name,"sect%04x.h",offset);
+ cvt2h(sector,sizeof(sector),name);
+ sprintf(name,"sect%04x.inc",offset);
+ cvt2inc(sector,sizeof(sector),name);
+
+ for(i=0;i<8;i++) {
+ printf("%04x: ",offset);
+
+
+ offset += 16;
+ for(j=0;j<16;j++) {
+ printf("%02x ",sector[(i*8)+j]);
+ }
+ printf(" ");
+ for(j=0;j<16;j++) {
+ byte = sector[(i*8)+j];
+ if(1 == visible[byte]) {
+ printf("%c",byte);
+ } else {
+ printf(".");
+ }
+ }
+ printf("\n");
+ }
+ printf("\n");
+ result = fread(sector,sizeof(sector),1,fd);
+ }
+ fclose(fd);
+
+ exit(0);
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/DUMPCOM.H b/Apps/crossdev/DUMPCOM.H
new file mode 100644
index 00000000..688a57ba
--- /dev/null
+++ b/Apps/crossdev/DUMPCOM.H
@@ -0,0 +1,1542 @@
+/* dumpcom.h produced automatically by cvt2h.h Do Not Edit */
+
+unsigned char dumpcom.[12288] = {
+ 0xc3, 0xe4, 0x12, 0x11, 0xdc, 0xff, 0xcd, 0xbe,
+ 0x26, 0x21, 0x1b, 0x02, 0xe5, 0x21, 0x32, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x40, 0x0d,
+ 0xd1, 0xd1, 0xeb, 0x21, 0x26, 0x00, 0x39, 0x73,
+ 0x23, 0x72, 0x21, 0x30, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xd5, 0x21, 0x1d, 0x02, 0xe5, 0x21, 0x2a,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0xe1,
+ 0x07, 0xd1, 0xd1, 0xd1, 0x21, 0x30, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x06, 0x00, 0x39,
+ 0xe5, 0xcd, 0xbc, 0x25, 0xd1, 0xd1, 0x21, 0x00,
+ 0x00, 0xeb, 0x21, 0x0c, 0x00, 0x39, 0x73, 0x21,
+ 0x2e, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x06, 0x00, 0x39, 0xe5, 0x21, 0x56, 0x02, 0xe5,
+ 0x21, 0x2c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5,
+ 0xcd, 0xe1, 0x07, 0xeb, 0x21, 0x08, 0x00, 0x39,
+ 0xf9, 0x21, 0x00, 0x00, 0xeb, 0x21, 0x24, 0x00,
+ 0x39, 0x73, 0x23, 0x72, 0xc3, 0x96, 0x01, 0x21,
+ 0x24, 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f,
+ 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0x21, 0x24,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x2e, 0x00,
+ 0x39, 0x7e, 0x23, 0x66, 0x6f, 0xcd, 0xc6, 0x27,
+ 0xca, 0xfd, 0x01, 0x21, 0x2c, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0x21, 0x24, 0x00, 0x39, 0x7e, 0x23,
+ 0x66, 0x6f, 0x19, 0x5e, 0x16, 0x00, 0xd5, 0x21,
+ 0x71, 0x02, 0xe5, 0x21, 0x2a, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xd5, 0xcd, 0xe1, 0x07, 0xd1, 0xd1,
+ 0xd1, 0x21, 0x24, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0x21, 0x07, 0x00, 0xcd, 0x64, 0x27, 0xe5, 0x21,
+ 0x07, 0x00, 0xd1, 0xcd, 0x8c, 0x27, 0xca, 0xfa,
+ 0x01, 0x21, 0x7a, 0x02, 0xe5, 0x21, 0x28, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0xe1, 0x07,
+ 0xd1, 0xd1, 0xc3, 0x87, 0x01, 0x21, 0x7d, 0x02,
+ 0xe5, 0x21, 0x28, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xd5, 0xcd, 0xe1, 0x07, 0xd1, 0xd1, 0x21, 0x26,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x3a,
+ 0x10, 0xd1, 0xc9, 0x77, 0x00, 0x2f, 0x2a, 0x20,
+ 0x25, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x65, 0x64, 0x20, 0x61, 0x75, 0x74, 0x6f,
+ 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c,
+ 0x79, 0x20, 0x62, 0x79, 0x20, 0x63, 0x76, 0x74,
+ 0x32, 0x68, 0x2e, 0x68, 0x20, 0x44, 0x6f, 0x20,
+ 0x4e, 0x6f, 0x74, 0x20, 0x45, 0x64, 0x69, 0x74,
+ 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x00, 0x75, 0x6e,
+ 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63,
+ 0x68, 0x61, 0x72, 0x20, 0x25, 0x73, 0x5b, 0x25,
+ 0x64, 0x5d, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x09,
+ 0x00, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x2c,
+ 0x20, 0x00, 0x0a, 0x09, 0x00, 0x0a, 0x7d, 0x3b,
+ 0x0a, 0x00, 0x11, 0x55, 0xff, 0xcd, 0xbe, 0x26,
+ 0x21, 0x08, 0x05, 0xe5, 0xcd, 0xd3, 0x06, 0xd1,
+ 0x21, 0x11, 0x05, 0xe5, 0x21, 0x00, 0x30, 0xe5,
+ 0x21, 0x00, 0x01, 0xe5, 0xcd, 0x03, 0x01, 0xd1,
+ 0xd1, 0xd1, 0x21, 0x01, 0x00, 0xeb, 0x21, 0xb3,
+ 0x00, 0x39, 0x7e, 0x23, 0x66, 0x6f, 0xcd, 0x8c,
+ 0x27, 0xca, 0xc4, 0x02, 0x21, 0x1b, 0x05, 0xe5,
+ 0xcd, 0xc3, 0x07, 0xd1, 0x21, 0x01, 0x00, 0xe5,
+ 0xcd, 0x22, 0x15, 0xd1, 0x21, 0x3a, 0x05, 0xe5,
+ 0x21, 0xb7, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb,
+ 0x23, 0x23, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x40,
+ 0x0d, 0xd1, 0xd1, 0xeb, 0x21, 0x04, 0x00, 0x39,
+ 0x73, 0x23, 0x72, 0x21, 0x04, 0x00, 0x39, 0x7e,
+ 0x23, 0xb6, 0xc2, 0xfd, 0x02, 0x21, 0x3c, 0x05,
+ 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0x21, 0x01, 0x00,
+ 0xe5, 0xcd, 0x22, 0x15, 0xd1, 0x21, 0xb5, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x23, 0x23, 0x5e,
+ 0x23, 0x56, 0xd5, 0x21, 0x5a, 0x05, 0xe5, 0xcd,
+ 0xc3, 0x07, 0xd1, 0xd1, 0x21, 0x00, 0x00, 0xeb,
+ 0x21, 0xa9, 0x00, 0x39, 0x73, 0x23, 0x72, 0x21,
+ 0x04, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x01, 0x00, 0xe5, 0x21, 0x80, 0x00, 0xe5, 0x21,
+ 0x2c, 0x00, 0x39, 0xe5, 0xcd, 0x01, 0x0e, 0xeb,
+ 0x21, 0x08, 0x00, 0x39, 0xf9, 0x21, 0xa7, 0x00,
+ 0x39, 0x73, 0x23, 0x72, 0x21, 0x00, 0x00, 0xeb,
+ 0x21, 0xa7, 0x00, 0x39, 0x7e, 0x23, 0x66, 0x6f,
+ 0xcd, 0xc6, 0x27, 0xca, 0xf3, 0x04, 0x21, 0xa9,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x67,
+ 0x05, 0xe5, 0x21, 0x0a, 0x00, 0x39, 0xe5, 0xcd,
+ 0x22, 0x08, 0xd1, 0xd1, 0xd1, 0x21, 0x06, 0x00,
+ 0x39, 0xe5, 0x21, 0x80, 0x00, 0xe5, 0x21, 0x2a,
+ 0x00, 0x39, 0xe5, 0xcd, 0x03, 0x01, 0xd1, 0xd1,
+ 0xd1, 0x21, 0x00, 0x00, 0xeb, 0x21, 0xad, 0x00,
+ 0x39, 0x73, 0x23, 0x72, 0xc3, 0x9e, 0x03, 0x21,
+ 0xad, 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f,
+ 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0x21, 0xad,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x08, 0x00,
+ 0xcd, 0xc6, 0x27, 0xca, 0xc3, 0x04, 0x21, 0xa9,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x72,
+ 0x05, 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0xd1, 0x21,
+ 0x10, 0x00, 0xeb, 0x21, 0xa9, 0x00, 0x39, 0xe5,
+ 0x7e, 0x23, 0x66, 0x6f, 0x19, 0xeb, 0xe1, 0x73,
+ 0x23, 0x72, 0x21, 0x00, 0x00, 0xeb, 0x21, 0xab,
+ 0x00, 0x39, 0x73, 0x23, 0x72, 0xc3, 0xef, 0x03,
+ 0x21, 0xab, 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66,
+ 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0x21,
+ 0xab, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x10,
+ 0x00, 0xcd, 0xc6, 0x27, 0xca, 0x2a, 0x04, 0x21,
+ 0xad, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x29,
+ 0x29, 0x29, 0xeb, 0x21, 0xab, 0x00, 0x39, 0x7e,
+ 0x23, 0x66, 0x6f, 0x19, 0xeb, 0x21, 0x26, 0x00,
+ 0x39, 0x19, 0x5e, 0x16, 0x00, 0xd5, 0x21, 0x79,
+ 0x05, 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0xd1, 0xc3,
+ 0xe0, 0x03, 0x21, 0x7f, 0x05, 0xe5, 0xcd, 0xc3,
+ 0x07, 0xd1, 0x21, 0x00, 0x00, 0xeb, 0x21, 0xab,
+ 0x00, 0x39, 0x73, 0x23, 0x72, 0xc3, 0x4f, 0x04,
+ 0x21, 0xab, 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66,
+ 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0x21,
+ 0xab, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x10,
+ 0x00, 0xcd, 0xc6, 0x27, 0xca, 0xb8, 0x04, 0x21,
+ 0xad, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x29,
+ 0x29, 0x29, 0xeb, 0x21, 0xab, 0x00, 0x39, 0x7e,
+ 0x23, 0x66, 0x6f, 0x19, 0xeb, 0x21, 0x26, 0x00,
+ 0x39, 0x19, 0x5e, 0x21, 0xa6, 0x00, 0x39, 0x73,
+ 0x21, 0xa6, 0x00, 0x39, 0x5e, 0x16, 0x00, 0x21,
+ 0x36, 0x28, 0x19, 0x5e, 0x16, 0x00, 0xd5, 0x21,
+ 0x01, 0x00, 0xd1, 0xcd, 0x8c, 0x27, 0xca, 0xad,
+ 0x04, 0x21, 0xa6, 0x00, 0x39, 0x5e, 0x16, 0x00,
+ 0xd5, 0x21, 0x82, 0x05, 0xe5, 0xcd, 0xc3, 0x07,
+ 0xd1, 0xd1, 0xc3, 0xb5, 0x04, 0x21, 0x85, 0x05,
+ 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0xc3, 0x40, 0x04,
+ 0x21, 0x87, 0x05, 0xe5, 0xcd, 0xc3, 0x07, 0xd1,
+ 0xc3, 0x8f, 0x03, 0x21, 0x89, 0x05, 0xe5, 0xcd,
+ 0xc3, 0x07, 0xd1, 0x21, 0x04, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xd5, 0x21, 0x01, 0x00, 0xe5, 0x21,
+ 0x80, 0x00, 0xe5, 0x21, 0x2c, 0x00, 0x39, 0xe5,
+ 0xcd, 0x01, 0x0e, 0xeb, 0x21, 0x08, 0x00, 0x39,
+ 0xf9, 0x21, 0xa7, 0x00, 0x39, 0x73, 0x23, 0x72,
+ 0xc3, 0x44, 0x03, 0x21, 0x04, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xd5, 0xcd, 0x3a, 0x10, 0xd1, 0x21,
+ 0x00, 0x00, 0xe5, 0xcd, 0x22, 0x15, 0xd1, 0xc9,
+ 0x44, 0x55, 0x4d, 0x50, 0x2e, 0x43, 0x4f, 0x4d,
+ 0x00, 0x64, 0x75, 0x6d, 0x70, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x68, 0x00, 0x53, 0x6f, 0x72, 0x72, 0x79,
+ 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x69, 0x6e, 0x70,
+ 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20,
+ 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65,
+ 0x64, 0x00, 0x72, 0x00, 0x53, 0x6f, 0x72, 0x72,
+ 0x79, 0x2c, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f,
+ 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c,
+ 0x65, 0x00, 0x44, 0x75, 0x6d, 0x70, 0x69, 0x6e,
+ 0x67, 0x20, 0x25, 0x73, 0x0a, 0x0a, 0x00, 0x73,
+ 0x65, 0x63, 0x74, 0x25, 0x30, 0x34, 0x78, 0x2e,
+ 0x68, 0x00, 0x25, 0x30, 0x34, 0x78, 0x3a, 0x20,
+ 0x00, 0x25, 0x30, 0x32, 0x78, 0x20, 0x00, 0x20,
+ 0x20, 0x00, 0x25, 0x63, 0x00, 0x2e, 0x00, 0x0a,
+ 0x00, 0x0a, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x00, 0x31, 0x32, 0x33, 0x34,
+ 0x35, 0x36, 0x37, 0x38, 0x2e, 0x31, 0x32, 0x33,
+ 0x20, 0x6d, 0x6d, 0x2f, 0x64, 0x64, 0x2f, 0x79,
+ 0x79, 0x79, 0x79, 0x20, 0x20, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x2e, 0x78,
+ 0x2e, 0x78, 0x2e, 0x78, 0x00, 0x53, 0x2f, 0x4e,
+ 0x20, 0x43, 0x50, 0x4d, 0x38, 0x30, 0x2d, 0x44,
+ 0x57, 0x47, 0x2d, 0x36, 0x35, 0x34, 0x33, 0x32,
+ 0x31, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73,
+ 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x20, 0x47, 0x50, 0x4c, 0x33, 0x00, 0x43, 0x6f,
+ 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20,
+ 0x28, 0x43, 0x29, 0x20, 0x32, 0x30, 0x31, 0x31,
+ 0x2d, 0x31, 0x32, 0x20, 0x44, 0x6f, 0x75, 0x67,
+ 0x6c, 0x61, 0x73, 0x20, 0x57, 0x2e, 0x20, 0x47,
+ 0x6f, 0x6f, 0x64, 0x61, 0x6c, 0x6c, 0x00, 0x11,
+ 0x80, 0xff, 0xcd, 0xbe, 0x26, 0x21, 0x88, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x85, 0x06,
+ 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0xd1, 0x21, 0xdc,
+ 0x07, 0xe5, 0x21, 0x07, 0x00, 0xe5, 0x21, 0x07,
+ 0x00, 0xe5, 0x21, 0x89, 0x06, 0xe5, 0xcd, 0xc3,
+ 0x07, 0xeb, 0x21, 0x08, 0x00, 0x39, 0xf9, 0x21,
+ 0x00, 0x00, 0xe5, 0x21, 0x00, 0x00, 0xe5, 0x21,
+ 0x00, 0x00, 0xe5, 0x21, 0x02, 0x00, 0xe5, 0x21,
+ 0x97, 0x06, 0xe5, 0xcd, 0xc3, 0x07, 0xeb, 0x21,
+ 0x0a, 0x00, 0x39, 0xf9, 0x21, 0xac, 0x06, 0xe5,
+ 0xcd, 0xc3, 0x07, 0xd1, 0xc9, 0x25, 0x73, 0x20,
+ 0x00, 0x25, 0x32, 0x64, 0x2f, 0x25, 0x32, 0x64,
+ 0x2f, 0x25, 0x34, 0x64, 0x20, 0x20, 0x00, 0x56,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x25,
+ 0x64, 0x2e, 0x25, 0x64, 0x2e, 0x25, 0x64, 0x2e,
+ 0x25, 0x64, 0x20, 0x00, 0x43, 0x4f, 0x50, 0x52,
+ 0x20, 0x44, 0x6f, 0x75, 0x67, 0x6c, 0x61, 0x73,
+ 0x20, 0x47, 0x6f, 0x6f, 0x64, 0x61, 0x6c, 0x6c,
+ 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
+ 0x64, 0x20, 0x77, 0x2f, 0x47, 0x50, 0x4c, 0x76,
+ 0x33, 0x0a, 0x00, 0x11, 0x80, 0xff, 0xcd, 0xbe,
+ 0x26, 0x2a, 0x36, 0x29, 0xe5, 0x21, 0x8a, 0x07,
+ 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0xd1, 0x21, 0x88,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x06,
+ 0x00, 0x39, 0xe5, 0xcd, 0xbc, 0x25, 0xd1, 0xd1,
+ 0x21, 0x04, 0x00, 0x39, 0xe5, 0xcd, 0x15, 0x26,
+ 0xd1, 0xe5, 0x21, 0x0c, 0x00, 0xd1, 0xeb, 0xcd,
+ 0xc7, 0x27, 0xca, 0x1e, 0x07, 0x21, 0x8e, 0x07,
+ 0xe5, 0x21, 0x06, 0x00, 0x39, 0xe5, 0xcd, 0xd8,
+ 0x25, 0xd1, 0xd1, 0xc3, 0xf8, 0x06, 0x21, 0x04,
+ 0x00, 0x39, 0xe5, 0x21, 0x90, 0x07, 0xe5, 0xcd,
+ 0xc3, 0x07, 0xd1, 0xd1, 0x21, 0xdc, 0x07, 0xe5,
+ 0x21, 0x07, 0x00, 0xe5, 0x21, 0x07, 0x00, 0xe5,
+ 0x21, 0x94, 0x07, 0xe5, 0xcd, 0xc3, 0x07, 0xeb,
+ 0x21, 0x08, 0x00, 0x39, 0xf9, 0x21, 0x00, 0x00,
+ 0xe5, 0x21, 0x00, 0x00, 0xe5, 0x21, 0x00, 0x00,
+ 0xe5, 0x21, 0x02, 0x00, 0xe5, 0x21, 0xa2, 0x07,
+ 0xe5, 0xcd, 0xc3, 0x07, 0xeb, 0x21, 0x0a, 0x00,
+ 0x39, 0xf9, 0x2a, 0x3a, 0x29, 0xe5, 0x21, 0xb7,
+ 0x07, 0xe5, 0xcd, 0xc3, 0x07, 0xd1, 0xd1, 0x2a,
+ 0x3c, 0x29, 0xe5, 0x21, 0xbb, 0x07, 0xe5, 0xcd,
+ 0xc3, 0x07, 0xd1, 0xd1, 0x2a, 0x36, 0x29, 0xe5,
+ 0x21, 0xbf, 0x07, 0xe5, 0xcd, 0xc3, 0x07, 0xd1,
+ 0xd1, 0xc9, 0x25, 0x73, 0x0a, 0x00, 0x20, 0x00,
+ 0x25, 0x73, 0x20, 0x00, 0x25, 0x32, 0x64, 0x2f,
+ 0x25, 0x32, 0x64, 0x2f, 0x25, 0x34, 0x64, 0x20,
+ 0x20, 0x00, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x20, 0x25, 0x64, 0x2e, 0x25, 0x64, 0x2e,
+ 0x25, 0x64, 0x2e, 0x25, 0x64, 0x0a, 0x00, 0x25,
+ 0x73, 0x0a, 0x00, 0x25, 0x73, 0x0a, 0x00, 0x25,
+ 0x73, 0x0a, 0x00, 0x11, 0x00, 0x00, 0xcd, 0xbe,
+ 0x26, 0x21, 0x0a, 0x00, 0x39, 0xe5, 0x21, 0x0a,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x59,
+ 0x0f, 0xe5, 0xcd, 0x79, 0x08, 0xd1, 0xd1, 0xd1,
+ 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21,
+ 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x22,
+ 0x64, 0x2b, 0x21, 0x0c, 0x00, 0x39, 0xe5, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x0a, 0x08, 0xe5, 0xcd, 0x79, 0x08, 0xd1, 0xd1,
+ 0xd1, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x2a, 0x64, 0x2b, 0xe5, 0x21, 0x0a, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x71, 0x0f, 0xd1,
+ 0xd1, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x21, 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb,
+ 0x22, 0x66, 0x2b, 0x21, 0x0c, 0x00, 0x39, 0xe5,
+ 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5,
+ 0x21, 0x58, 0x08, 0xe5, 0xcd, 0x79, 0x08, 0xd1,
+ 0xd1, 0xd1, 0x44, 0x4d, 0x21, 0x00, 0x00, 0xe5,
+ 0x2a, 0x66, 0x2b, 0xd1, 0x73, 0x60, 0x69, 0xc9,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0x66,
+ 0x2b, 0x23, 0x22, 0x66, 0x2b, 0x2b, 0xd1, 0x73,
+ 0x16, 0x00, 0x21, 0xff, 0x00, 0xcd, 0x64, 0x27,
+ 0xc9, 0x11, 0x38, 0xff, 0xcd, 0xbe, 0x26, 0x21,
+ 0xd0, 0x00, 0x39, 0x4e, 0x23, 0x46, 0x21, 0x00,
+ 0x00, 0x22, 0x6c, 0x2b, 0x21, 0xd4, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xeb, 0x22, 0x6a, 0x2b, 0x21,
+ 0xd2, 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f,
+ 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b,
+ 0x5e, 0x16, 0x00, 0xeb, 0x22, 0x68, 0x2b, 0x7c,
+ 0xb5, 0xca, 0x88, 0x0c, 0x2a, 0x68, 0x2b, 0x11,
+ 0x25, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0x67, 0x0c,
+ 0x21, 0x00, 0x00, 0xeb, 0x21, 0x12, 0x00, 0x39,
+ 0x73, 0x21, 0x01, 0x00, 0x22, 0x6e, 0x2b, 0x21,
+ 0x20, 0x00, 0x22, 0x70, 0x2b, 0x21, 0x10, 0x27,
+ 0x22, 0x72, 0x2b, 0x21, 0xd2, 0x00, 0x39, 0xe5,
+ 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73,
+ 0x23, 0x72, 0xeb, 0x2b, 0x5e, 0x16, 0x00, 0xeb,
+ 0x22, 0x68, 0x2b, 0x11, 0x2d, 0x00, 0xcd, 0x8c,
+ 0x27, 0xca, 0x1a, 0x09, 0x21, 0x00, 0x00, 0x22,
+ 0x6e, 0x2b, 0x21, 0xd2, 0x00, 0x39, 0xe5, 0x7e,
+ 0x23, 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23,
+ 0x72, 0xeb, 0x2b, 0x5e, 0x16, 0x00, 0xeb, 0x22,
+ 0x68, 0x2b, 0x2a, 0x68, 0x2b, 0x11, 0x30, 0x00,
+ 0xcd, 0x8c, 0x27, 0xca, 0x44, 0x09, 0x21, 0x30,
+ 0x00, 0x22, 0x70, 0x2b, 0x21, 0xd2, 0x00, 0x39,
+ 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb, 0xe1,
+ 0x73, 0x23, 0x72, 0xeb, 0x2b, 0x5e, 0x16, 0x00,
+ 0xeb, 0x22, 0x68, 0x2b, 0x2a, 0x68, 0x2b, 0x11,
+ 0x2a, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0x7c, 0x09,
+ 0x2a, 0x6a, 0x2b, 0x23, 0x23, 0x22, 0x6a, 0x2b,
+ 0x2b, 0x2b, 0x5e, 0x23, 0x56, 0xeb, 0x22, 0x74,
+ 0x2b, 0x21, 0xd2, 0x00, 0x39, 0xe5, 0x7e, 0x23,
+ 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72,
+ 0xeb, 0x2b, 0x5e, 0x16, 0x00, 0xeb, 0x22, 0x68,
+ 0x2b, 0xc3, 0xc9, 0x09, 0x21, 0x00, 0x00, 0x22,
+ 0x74, 0x2b, 0xc3, 0x9d, 0x09, 0x21, 0xd2, 0x00,
+ 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb,
+ 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b, 0x5e, 0x16,
+ 0x00, 0xeb, 0x22, 0x68, 0x2b, 0x2a, 0x68, 0x2b,
+ 0x11, 0xdc, 0x2a, 0x19, 0x23, 0x5e, 0x16, 0x00,
+ 0x21, 0x04, 0x00, 0xcd, 0x64, 0x27, 0xca, 0xc9,
+ 0x09, 0x2a, 0x74, 0x2b, 0x11, 0x0a, 0x00, 0xcd,
+ 0x0d, 0x27, 0xeb, 0x2a, 0x68, 0x2b, 0x19, 0x11,
+ 0xd0, 0xff, 0x19, 0x22, 0x74, 0x2b, 0xc3, 0x85,
+ 0x09, 0x2a, 0x68, 0x2b, 0x11, 0x2e, 0x00, 0xcd,
+ 0x8c, 0x27, 0xca, 0x6f, 0x0a, 0x21, 0xd2, 0x00,
+ 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb,
+ 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b, 0x5e, 0x16,
+ 0x00, 0xeb, 0x22, 0x68, 0x2b, 0x11, 0x2a, 0x00,
+ 0xcd, 0x8c, 0x27, 0xca, 0x22, 0x0a, 0x2a, 0x6a,
+ 0x2b, 0x23, 0x23, 0x22, 0x6a, 0x2b, 0x2b, 0x2b,
+ 0x5e, 0x23, 0x56, 0xeb, 0x22, 0x72, 0x2b, 0x21,
+ 0xd2, 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f,
+ 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b,
+ 0x5e, 0x16, 0x00, 0xeb, 0x22, 0x68, 0x2b, 0xc3,
+ 0x6f, 0x0a, 0x21, 0x00, 0x00, 0x22, 0x72, 0x2b,
+ 0xc3, 0x43, 0x0a, 0x21, 0xd2, 0x00, 0x39, 0xe5,
+ 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73,
+ 0x23, 0x72, 0xeb, 0x2b, 0x5e, 0x16, 0x00, 0xeb,
+ 0x22, 0x68, 0x2b, 0x2a, 0x68, 0x2b, 0x11, 0xdc,
+ 0x2a, 0x19, 0x23, 0x5e, 0x16, 0x00, 0x21, 0x04,
+ 0x00, 0xcd, 0x64, 0x27, 0xca, 0x6f, 0x0a, 0x2a,
+ 0x72, 0x2b, 0x11, 0x0a, 0x00, 0xcd, 0x0d, 0x27,
+ 0xeb, 0x2a, 0x68, 0x2b, 0x19, 0x11, 0xd0, 0xff,
+ 0x19, 0x22, 0x72, 0x2b, 0xc3, 0x2b, 0x0a, 0x21,
+ 0x02, 0x00, 0x22, 0x76, 0x2b, 0x2a, 0x68, 0x2b,
+ 0x11, 0x6c, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0xa2,
+ 0x0a, 0x21, 0xd2, 0x00, 0x39, 0xe5, 0x7e, 0x23,
+ 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72,
+ 0xeb, 0x2b, 0x5e, 0x16, 0x00, 0xeb, 0x22, 0x68,
+ 0x2b, 0x21, 0x04, 0x00, 0x22, 0x76, 0x2b, 0xc3,
+ 0xc6, 0x0a, 0x2a, 0x68, 0x2b, 0x11, 0x68, 0x00,
+ 0xcd, 0x8c, 0x27, 0xca, 0xc6, 0x0a, 0x21, 0xd2,
+ 0x00, 0x39, 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23,
+ 0xeb, 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b, 0x5e,
+ 0x16, 0x00, 0xeb, 0x22, 0x68, 0x2b, 0x2a, 0x68,
+ 0x2b, 0xc3, 0x56, 0x0b, 0x21, 0x08, 0x00, 0x22,
+ 0x78, 0x2b, 0xc3, 0xed, 0x0a, 0x21, 0x0a, 0x00,
+ 0x22, 0x78, 0x2b, 0xc3, 0xed, 0x0a, 0x21, 0x10,
+ 0x00, 0x22, 0x78, 0x2b, 0xc3, 0xed, 0x0a, 0x21,
+ 0xf6, 0xff, 0x22, 0x78, 0x2b, 0x2a, 0x76, 0x2b,
+ 0xe5, 0x21, 0x14, 0x00, 0x39, 0xe5, 0x2a, 0x78,
+ 0x2b, 0xe5, 0x2a, 0x6a, 0x2b, 0xe5, 0xcd, 0x8c,
+ 0x0c, 0xeb, 0x21, 0x08, 0x00, 0x39, 0xf9, 0xeb,
+ 0x22, 0x7a, 0x2b, 0x2a, 0x76, 0x2b, 0xeb, 0x2a,
+ 0x6a, 0x2b, 0x19, 0x22, 0x6a, 0x2b, 0xc3, 0x75,
+ 0x0b, 0x2a, 0x6a, 0x2b, 0x23, 0x23, 0x22, 0x6a,
+ 0x2b, 0x2b, 0x2b, 0x5e, 0x23, 0x56, 0xeb, 0x22,
+ 0x7a, 0x2b, 0xe5, 0xcd, 0x15, 0x26, 0xd1, 0x22,
+ 0x76, 0x2b, 0xc3, 0x83, 0x0b, 0x2a, 0x6a, 0x2b,
+ 0x23, 0x23, 0x22, 0x6a, 0x2b, 0x2b, 0x2b, 0x5e,
+ 0x23, 0x56, 0xeb, 0x22, 0x68, 0x2b, 0x2a, 0x68,
+ 0x2b, 0xe5, 0x21, 0x13, 0x00, 0x39, 0x22, 0x7a,
+ 0x2b, 0xd1, 0x73, 0xc3, 0x75, 0x0b, 0xcd, 0xf3,
+ 0x27, 0x06, 0x00, 0x63, 0x00, 0x35, 0x0b, 0x64,
+ 0x00, 0xe7, 0x0a, 0x6f, 0x00, 0xcc, 0x0a, 0x73,
+ 0x00, 0x19, 0x0b, 0x75, 0x00, 0xd5, 0x0a, 0x78,
+ 0x00, 0xde, 0x0a, 0x46, 0x0b, 0x21, 0x12, 0x00,
+ 0x39, 0xeb, 0x2a, 0x7a, 0x2b, 0xcd, 0xea, 0x27,
+ 0x22, 0x76, 0x2b, 0x2a, 0x76, 0x2b, 0xeb, 0x2a,
+ 0x72, 0x2b, 0xcd, 0xc7, 0x27, 0xca, 0x96, 0x0b,
+ 0x2a, 0x72, 0x2b, 0x22, 0x76, 0x2b, 0x2a, 0x6e,
+ 0x2b, 0x7c, 0xb5, 0xca, 0xd4, 0x0b, 0xc3, 0xa8,
+ 0x0b, 0x2a, 0x6c, 0x2b, 0x23, 0x22, 0x6c, 0x2b,
+ 0x2a, 0x74, 0x2b, 0x2b, 0x22, 0x74, 0x2b, 0x23,
+ 0xeb, 0x2a, 0x76, 0x2b, 0xcd, 0xc7, 0x27, 0xca,
+ 0xd4, 0x0b, 0x2a, 0x70, 0x2b, 0xe5, 0x60, 0x69,
+ 0xcd, 0x9c, 0x26, 0xd1, 0x11, 0xff, 0xff, 0xcd,
+ 0x8c, 0x27, 0xca, 0xd1, 0x0b, 0x21, 0xff, 0xff,
+ 0xc9, 0xc3, 0xa1, 0x0b, 0x21, 0x00, 0x00, 0x22,
+ 0x78, 0x2b, 0xc3, 0xe4, 0x0b, 0x2a, 0x78, 0x2b,
+ 0x23, 0x22, 0x78, 0x2b, 0x2a, 0x7a, 0x2b, 0x7e,
+ 0xb7, 0xca, 0x1b, 0x0c, 0x2a, 0x78, 0x2b, 0xeb,
+ 0x2a, 0x72, 0x2b, 0xcd, 0xc6, 0x27, 0xca, 0x1b,
+ 0x0c, 0x2a, 0x7a, 0x2b, 0x23, 0x22, 0x7a, 0x2b,
+ 0x2b, 0x5e, 0x16, 0x00, 0xd5, 0x60, 0x69, 0xcd,
+ 0x9c, 0x26, 0xd1, 0x11, 0xff, 0xff, 0xcd, 0x8c,
+ 0x27, 0xca, 0x18, 0x0c, 0x21, 0xff, 0xff, 0xc9,
+ 0xc3, 0xdd, 0x0b, 0x2a, 0x78, 0x2b, 0xeb, 0x2a,
+ 0x6c, 0x2b, 0x19, 0x22, 0x6c, 0x2b, 0x2a, 0x6e,
+ 0x2b, 0x7c, 0xb5, 0xc2, 0x64, 0x0c, 0xc3, 0x38,
+ 0x0c, 0x2a, 0x6c, 0x2b, 0x23, 0x22, 0x6c, 0x2b,
+ 0x2a, 0x74, 0x2b, 0x2b, 0x22, 0x74, 0x2b, 0x23,
+ 0xeb, 0x2a, 0x76, 0x2b, 0xcd, 0xc7, 0x27, 0xca,
+ 0x64, 0x0c, 0x21, 0x20, 0x00, 0xe5, 0x60, 0x69,
+ 0xcd, 0x9c, 0x26, 0xd1, 0x11, 0xff, 0xff, 0xcd,
+ 0x8c, 0x27, 0xca, 0x61, 0x0c, 0x21, 0xff, 0xff,
+ 0xc9, 0xc3, 0x31, 0x0c, 0xc3, 0x85, 0x0c, 0x2a,
+ 0x68, 0x2b, 0xe5, 0x60, 0x69, 0xcd, 0x9c, 0x26,
+ 0xd1, 0x11, 0xff, 0xff, 0xcd, 0x8c, 0x27, 0xca,
+ 0x7e, 0x0c, 0x21, 0xff, 0xff, 0xc9, 0x2a, 0x6c,
+ 0x2b, 0x23, 0x22, 0x6c, 0x2b, 0xc3, 0x97, 0x08,
+ 0x2a, 0x6c, 0x2b, 0xc9, 0xc5, 0x21, 0x00, 0x00,
+ 0x22, 0x42, 0x29, 0x22, 0x44, 0x29, 0x21, 0x0a,
+ 0x00, 0x39, 0x7e, 0x32, 0x40, 0x29, 0x47, 0x2b,
+ 0x56, 0x2b, 0x5e, 0x2b, 0xeb, 0x36, 0x00, 0x22,
+ 0x3e, 0x29, 0xeb, 0x2b, 0x4e, 0x2b, 0x56, 0x2b,
+ 0x5e, 0x21, 0x42, 0x29, 0x1a, 0x77, 0x13, 0x23,
+ 0x05, 0xc2, 0xb4, 0x0c, 0x79, 0xb7, 0xf2, 0xe4,
+ 0x0c, 0x2f, 0x3c, 0x4f, 0x2a, 0x40, 0x29, 0x11,
+ 0x41, 0x29, 0x19, 0x7e, 0xb7, 0xf5, 0xf2, 0xe5,
+ 0x0c, 0x3a, 0x40, 0x29, 0x47, 0x21, 0x42, 0x29,
+ 0x3e, 0x00, 0x9e, 0x77, 0x23, 0x05, 0xc2, 0xd8,
+ 0x0c, 0xc3, 0xe5, 0x0c, 0xf5, 0x21, 0x45, 0x29,
+ 0x16, 0x00, 0x3e, 0x04, 0xf5, 0x5e, 0xeb, 0x06,
+ 0x08, 0x29, 0x7c, 0x91, 0xda, 0xf9, 0x0c, 0x67,
+ 0x2c, 0x05, 0xc2, 0xf1, 0x0c, 0xeb, 0x73, 0x2b,
+ 0xf1, 0x3d, 0xc2, 0xec, 0x0c, 0x5a, 0x16, 0x00,
+ 0x21, 0x30, 0x0d, 0x19, 0x7e, 0x2a, 0x3e, 0x29,
+ 0x2b, 0x22, 0x3e, 0x29, 0x77, 0x21, 0x42, 0x29,
+ 0x06, 0x04, 0xaf, 0xbe, 0xc2, 0xe5, 0x0c, 0x23,
+ 0x05, 0xc2, 0x1b, 0x0d, 0x2a, 0x3e, 0x29, 0xf1,
+ 0xf2, 0x2e, 0x0d, 0x2b, 0x36, 0x2d, 0xc1, 0xc9,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0xcd, 0x2b,
+ 0x12, 0x44, 0x4d, 0x7c, 0xb5, 0xc2, 0x54, 0x0d,
+ 0x21, 0x00, 0x00, 0xc9, 0xc5, 0x21, 0x0c, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x0c, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x6c, 0x0d,
+ 0xd1, 0xd1, 0xd1, 0xc9, 0x11, 0x00, 0x00, 0xcd,
+ 0xbe, 0x26, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xd5, 0xcd, 0x3a, 0x10, 0xd1, 0x21, 0x46,
+ 0x29, 0x44, 0x4d, 0xc3, 0x8e, 0x0d, 0x60, 0x69,
+ 0x11, 0x05, 0x00, 0x19, 0x44, 0x4d, 0x78, 0xb1,
+ 0xc2, 0x9d, 0x0d, 0x21, 0xfa, 0xff, 0x22, 0xc8,
+ 0x2e, 0x21, 0x00, 0x00, 0xc9, 0x21, 0x0a, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xc5, 0xcd, 0x84,
+ 0x25, 0xd1, 0xd1, 0xca, 0xb1, 0x0d, 0xc3, 0x86,
+ 0x0d, 0x21, 0x03, 0x00, 0x09, 0x5e, 0x23, 0x56,
+ 0xd5, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xd5, 0xcd, 0xeb, 0x15, 0xd1, 0xd1, 0x22, 0x7c,
+ 0x2b, 0x11, 0xff, 0xff, 0xcd, 0x8c, 0x27, 0xca,
+ 0xd6, 0x0d, 0x21, 0x00, 0x00, 0xc9, 0x2a, 0x7c,
+ 0x2b, 0xe5, 0x21, 0x0e, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x21, 0x07, 0x00, 0x19, 0xd1, 0x73, 0x21,
+ 0x01, 0x00, 0xe5, 0x21, 0x0e, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0x21, 0x06, 0x00, 0x19, 0xd1, 0x73,
+ 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb,
+ 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21,
+ 0x08, 0x00, 0x39, 0x4e, 0x23, 0x46, 0x21, 0x00,
+ 0x00, 0x22, 0x7e, 0x2b, 0xc3, 0x1e, 0x0e, 0x2a,
+ 0x7e, 0x2b, 0x23, 0x22, 0x7e, 0x2b, 0x2a, 0x7e,
+ 0x2b, 0xeb, 0x21, 0x0c, 0x00, 0x39, 0x7e, 0x23,
+ 0x66, 0x6f, 0xcd, 0xc6, 0x27, 0xca, 0x7b, 0x0e,
+ 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb,
+ 0x22, 0x82, 0x2b, 0xc3, 0x45, 0x0e, 0x2a, 0x82,
+ 0x2b, 0x2b, 0x22, 0x82, 0x2b, 0x2a, 0x82, 0x2b,
+ 0x7c, 0xb5, 0xca, 0x78, 0x0e, 0x21, 0x0e, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x7f, 0x0e,
+ 0xd1, 0x22, 0x80, 0x2b, 0x11, 0xff, 0xff, 0xcd,
+ 0x8c, 0x27, 0xca, 0x69, 0x0e, 0x2a, 0x7e, 0x2b,
+ 0xc9, 0x2a, 0x80, 0x2b, 0xe5, 0x60, 0x69, 0x23,
+ 0x44, 0x4d, 0x2b, 0xd1, 0x73, 0xc3, 0x3e, 0x0e,
+ 0xc3, 0x17, 0x0e, 0x2a, 0x7e, 0x2b, 0xc9, 0x11,
+ 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08, 0x00,
+ 0x39, 0x4e, 0x23, 0x46, 0x21, 0x02, 0x00, 0x09,
+ 0x5e, 0x23, 0x56, 0xd5, 0x60, 0x69, 0x5e, 0x23,
+ 0x56, 0xe1, 0xcd, 0x1a, 0x28, 0xca, 0x40, 0x0f,
+ 0x21, 0x06, 0x00, 0x09, 0x5e, 0x16, 0x00, 0x21,
+ 0x18, 0x00, 0xcd, 0x64, 0x27, 0xca, 0xb4, 0x0e,
+ 0x21, 0xff, 0xff, 0xc9, 0x21, 0xfb, 0xff, 0xe5,
+ 0x60, 0x69, 0x11, 0x06, 0x00, 0x19, 0xd1, 0xe5,
+ 0x6e, 0xcd, 0x64, 0x27, 0xeb, 0xe1, 0x73, 0x60,
+ 0x69, 0x11, 0x04, 0x00, 0x19, 0x7e, 0x23, 0xb6,
+ 0xc2, 0xd8, 0x0e, 0xc5, 0xcd, 0x74, 0x12, 0xd1,
+ 0x21, 0x09, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5,
+ 0x21, 0x04, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5,
+ 0x21, 0x07, 0x00, 0x09, 0x5e, 0x16, 0x00, 0xd5,
+ 0xcd, 0x93, 0x19, 0xd1, 0xd1, 0xd1, 0x22, 0x84,
+ 0x2b, 0x11, 0x00, 0x00, 0xeb, 0xcd, 0xac, 0x27,
+ 0xca, 0x28, 0x0f, 0x2a, 0x84, 0x2b, 0x7c, 0xb5,
+ 0xc2, 0x11, 0x0f, 0x21, 0x08, 0x00, 0xc3, 0x14,
+ 0x0f, 0x21, 0x10, 0x00, 0xe5, 0x60, 0x69, 0x11,
+ 0x06, 0x00, 0x19, 0xd1, 0xe5, 0x6e, 0xcd, 0x74,
+ 0x27, 0xeb, 0xe1, 0x73, 0x21, 0xff, 0xff, 0xc9,
+ 0x21, 0x04, 0x00, 0x09, 0x5e, 0x23, 0x56, 0x60,
+ 0x69, 0x73, 0x23, 0x72, 0x2a, 0x84, 0x2b, 0x19,
+ 0xeb, 0x21, 0x02, 0x00, 0x09, 0x73, 0x23, 0x72,
+ 0x60, 0x69, 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23,
+ 0xeb, 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b, 0x5e,
+ 0x16, 0x00, 0x21, 0xff, 0x00, 0xcd, 0x64, 0x27,
+ 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21,
+ 0x7e, 0x29, 0xe5, 0x21, 0x0a, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xd5, 0xcd, 0x71, 0x0f, 0xd1, 0xd1,
+ 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21,
+ 0x08, 0x00, 0x39, 0x4e, 0x23, 0x46, 0x60, 0x69,
+ 0x11, 0x0a, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0xa7,
+ 0x0f, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xd5, 0x21, 0x0d, 0x00, 0xe5, 0xcd, 0xb6, 0x0f,
+ 0xd1, 0xd1, 0x11, 0xff, 0xff, 0xcd, 0x8c, 0x27,
+ 0xca, 0xa7, 0x0f, 0x21, 0xff, 0xff, 0xc9, 0x21,
+ 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xc5,
+ 0xcd, 0xb6, 0x0f, 0xd1, 0xd1, 0xc9, 0x11, 0x00,
+ 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x0a, 0x00, 0x39,
+ 0x4e, 0x23, 0x46, 0x21, 0x02, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xd5, 0x60, 0x69, 0x5e, 0x23, 0x56,
+ 0xe1, 0xcd, 0x1a, 0x28, 0xca, 0xec, 0x0f, 0x21,
+ 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0xff,
+ 0x00, 0xcd, 0x64, 0x27, 0xe5, 0xc5, 0xcd, 0xb4,
+ 0x10, 0xd1, 0xd1, 0xc9, 0x21, 0x08, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0x60, 0x69, 0xe5, 0x7e,
+ 0x23, 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23,
+ 0x72, 0xeb, 0x2b, 0xd1, 0x73, 0x16, 0x00, 0x21,
+ 0xff, 0x00, 0xcd, 0x64, 0x27, 0xc9, 0x11, 0x00,
+ 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x73, 0x29, 0x44,
+ 0x4d, 0x60, 0x69, 0x11, 0xec, 0x29, 0xeb, 0xcd,
+ 0x28, 0x28, 0xca, 0x39, 0x10, 0x60, 0x69, 0x11,
+ 0x0b, 0x00, 0x19, 0x44, 0x4d, 0x11, 0xf5, 0xff,
+ 0x19, 0xe5, 0xcd, 0x3a, 0x10, 0xd1, 0xc3, 0x19,
+ 0x10, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x21, 0x08, 0x00, 0x39, 0x4e, 0x23, 0x46, 0x21,
+ 0x00, 0x00, 0x22, 0x86, 0x2b, 0x60, 0x69, 0x11,
+ 0x06, 0x00, 0x19, 0x7e, 0xb7, 0xca, 0xa7, 0x10,
+ 0x21, 0x06, 0x00, 0x09, 0x5e, 0x16, 0x00, 0x21,
+ 0x04, 0x00, 0xcd, 0x64, 0x27, 0xca, 0x75, 0x10,
+ 0x21, 0xff, 0xff, 0xe5, 0xc5, 0xcd, 0xb4, 0x10,
+ 0xd1, 0xd1, 0x22, 0x86, 0x2b, 0x21, 0x07, 0x00,
+ 0x09, 0x5e, 0x16, 0x00, 0xd5, 0xcd, 0x68, 0x17,
+ 0xd1, 0xeb, 0x2a, 0x86, 0x2b, 0xcd, 0x74, 0x27,
+ 0x22, 0x86, 0x2b, 0x21, 0x06, 0x00, 0x09, 0x5e,
+ 0x16, 0x00, 0x21, 0x02, 0x00, 0xcd, 0x64, 0x27,
+ 0xca, 0xa7, 0x10, 0x21, 0x04, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xd5, 0xcd, 0x65, 0x23, 0xd1, 0x21,
+ 0x00, 0x00, 0xeb, 0x21, 0x06, 0x00, 0x09, 0x73,
+ 0x2a, 0x86, 0x2b, 0xc9, 0x11, 0x00, 0x00, 0xcd,
+ 0xbe, 0x26, 0x21, 0x08, 0x00, 0x39, 0x4e, 0x23,
+ 0x46, 0x21, 0x0e, 0x10, 0x22, 0x6e, 0x2a, 0x21,
+ 0x06, 0x00, 0x09, 0x5e, 0x16, 0x00, 0x21, 0x10,
+ 0x00, 0xcd, 0x64, 0x27, 0xca, 0xdb, 0x10, 0x21,
+ 0xff, 0xff, 0xc9, 0x21, 0x06, 0x00, 0x09, 0x5e,
+ 0x16, 0x00, 0x21, 0x04, 0x00, 0xcd, 0x64, 0x27,
+ 0xca, 0x4c, 0x11, 0x21, 0x04, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xd5, 0x60, 0x69, 0x5e, 0x23, 0x56,
+ 0xe1, 0xcd, 0xea, 0x27, 0x22, 0x88, 0x2b, 0x2a,
+ 0x88, 0x2b, 0xe5, 0x21, 0x04, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xd5, 0x21, 0x07, 0x00, 0x09, 0x5e,
+ 0x16, 0x00, 0xd5, 0xcd, 0x88, 0x1c, 0xd1, 0xd1,
+ 0xd1, 0xeb, 0x2a, 0x88, 0x2b, 0xcd, 0x9b, 0x27,
+ 0xca, 0x4c, 0x11, 0x21, 0x10, 0x00, 0xe5, 0x60,
+ 0x69, 0x11, 0x06, 0x00, 0x19, 0xd1, 0xe5, 0x6e,
+ 0x26, 0x00, 0xcd, 0x74, 0x27, 0xeb, 0xe1, 0x73,
+ 0x21, 0x00, 0x00, 0xeb, 0x60, 0x69, 0x73, 0x23,
+ 0x72, 0x21, 0x02, 0x00, 0x09, 0x73, 0x23, 0x72,
+ 0x21, 0xff, 0xff, 0xc9, 0x21, 0x0a, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0x21, 0xff, 0xff, 0xcd, 0x8c,
+ 0x27, 0xca, 0x85, 0x11, 0x21, 0xfb, 0xff, 0xe5,
+ 0x60, 0x69, 0x11, 0x06, 0x00, 0x19, 0xd1, 0xe5,
+ 0x6e, 0x26, 0x00, 0xcd, 0x64, 0x27, 0xeb, 0xe1,
+ 0x73, 0x21, 0x00, 0x00, 0xeb, 0x60, 0x69, 0x73,
+ 0x23, 0x72, 0x21, 0x02, 0x00, 0x09, 0x73, 0x23,
+ 0x72, 0x21, 0x00, 0x00, 0xc9, 0x60, 0x69, 0x11,
+ 0x04, 0x00, 0x19, 0x7e, 0x23, 0xb6, 0xc2, 0x96,
+ 0x11, 0xc5, 0xcd, 0x74, 0x12, 0xd1, 0x21, 0x09,
+ 0x00, 0x09, 0x5e, 0x23, 0x56, 0x21, 0x01, 0x00,
+ 0xcd, 0x8c, 0x27, 0xca, 0xcf, 0x11, 0x21, 0x01,
+ 0x00, 0xe5, 0x21, 0x0c, 0x00, 0x39, 0xe5, 0x21,
+ 0x07, 0x00, 0x09, 0x5e, 0x16, 0x00, 0xd5, 0xcd,
+ 0x88, 0x1c, 0xd1, 0xd1, 0xd1, 0x11, 0x01, 0x00,
+ 0xcd, 0x9b, 0x27, 0xc2, 0x23, 0x11, 0x21, 0x0a,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0xc9, 0x21,
+ 0x04, 0x00, 0x09, 0x5e, 0x23, 0x56, 0x60, 0x69,
+ 0x73, 0x23, 0x72, 0x21, 0x09, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xd5, 0x21, 0x04, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xe1, 0x19, 0xeb, 0x21, 0x02, 0x00,
+ 0x09, 0x73, 0x23, 0x72, 0x21, 0x04, 0x00, 0xe5,
+ 0x60, 0x69, 0x11, 0x06, 0x00, 0x19, 0xd1, 0xe5,
+ 0x6e, 0x26, 0x00, 0xcd, 0x74, 0x27, 0xeb, 0xe1,
+ 0x73, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xd5, 0x60, 0x69, 0xe5, 0x7e, 0x23, 0x66, 0x6f,
+ 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0xeb, 0x2b,
+ 0xd1, 0x73, 0x16, 0x00, 0x21, 0xff, 0x00, 0xcd,
+ 0x64, 0x27, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe,
+ 0x26, 0x21, 0x73, 0x29, 0x44, 0x4d, 0x60, 0x69,
+ 0x11, 0x06, 0x00, 0x19, 0x7e, 0xb7, 0xca, 0x5a,
+ 0x12, 0x60, 0x69, 0x11, 0x0b, 0x00, 0x19, 0x44,
+ 0x4d, 0x11, 0xec, 0x29, 0xeb, 0xcd, 0x1a, 0x28,
+ 0xca, 0x57, 0x12, 0x21, 0x00, 0x00, 0xc9, 0xc3,
+ 0x36, 0x12, 0x21, 0x00, 0x00, 0xeb, 0x60, 0x69,
+ 0x73, 0x23, 0x72, 0x21, 0x02, 0x00, 0x09, 0x73,
+ 0x23, 0x72, 0x21, 0x04, 0x00, 0x09, 0x73, 0x23,
+ 0x72, 0x60, 0x69, 0xc9, 0x11, 0x00, 0x00, 0xcd,
+ 0xbe, 0x26, 0x21, 0x08, 0x00, 0x39, 0x4e, 0x23,
+ 0x46, 0x21, 0x07, 0x00, 0x09, 0x5e, 0x16, 0x00,
+ 0xd5, 0xcd, 0x93, 0x20, 0xd1, 0xca, 0xaa, 0x12,
+ 0x21, 0x01, 0x00, 0xeb, 0x21, 0x09, 0x00, 0x09,
+ 0x73, 0x23, 0x72, 0x60, 0x69, 0x11, 0x08, 0x00,
+ 0x19, 0xeb, 0x21, 0x04, 0x00, 0x09, 0x73, 0x23,
+ 0x72, 0xc9, 0x21, 0x00, 0x04, 0xe5, 0xcd, 0xc0,
+ 0x21, 0xd1, 0x22, 0x8a, 0x2b, 0x7c, 0xb5, 0xca,
+ 0x90, 0x12, 0x21, 0x00, 0x04, 0xeb, 0x21, 0x09,
+ 0x00, 0x09, 0x73, 0x23, 0x72, 0x21, 0x02, 0x00,
+ 0xe5, 0x60, 0x69, 0x11, 0x06, 0x00, 0x19, 0xd1,
+ 0xe5, 0x6e, 0xcd, 0x74, 0x27, 0xeb, 0xe1, 0x73,
+ 0x2a, 0x8a, 0x2b, 0xeb, 0x21, 0x04, 0x00, 0x09,
+ 0x73, 0x23, 0x72, 0xc9, 0x21, 0x64, 0x2b, 0x01,
+ 0x6a, 0x03, 0x1e, 0x00, 0x73, 0x23, 0x0b, 0x79,
+ 0xb0, 0xc2, 0xec, 0x12, 0x2a, 0x06, 0x00, 0xf9,
+ 0x11, 0x00, 0xf8, 0x19, 0x22, 0xca, 0x2e, 0x2a,
+ 0xf4, 0x29, 0x22, 0xcc, 0x2e, 0xcd, 0x19, 0x13,
+ 0x0e, 0x11, 0x11, 0xf6, 0x29, 0xcd, 0x05, 0x00,
+ 0x01, 0x00, 0x00, 0xcd, 0x05, 0x00, 0xc3, 0x08,
+ 0x13, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21,
+ 0x7f, 0x00, 0xe5, 0x21, 0xd4, 0x2b, 0xe5, 0x21,
+ 0x81, 0x00, 0xe5, 0xcd, 0x4a, 0x26, 0xd1, 0xd1,
+ 0xd1, 0x21, 0x00, 0x00, 0xe5, 0x3a, 0x80, 0x00,
+ 0x6f, 0x26, 0x00, 0x11, 0x7f, 0x00, 0xcd, 0x64,
+ 0x27, 0x11, 0xd4, 0x2b, 0x19, 0xd1, 0x73, 0x21,
+ 0xfd, 0x14, 0x22, 0x98, 0x2b, 0x21, 0xd4, 0x2b,
+ 0x44, 0x4d, 0x21, 0x01, 0x00, 0x22, 0x54, 0x2c,
+ 0x2a, 0x54, 0x2c, 0x11, 0x1e, 0x00, 0xeb, 0xcd,
+ 0xc6, 0x27, 0xca, 0xe7, 0x14, 0x60, 0x69, 0x5e,
+ 0x16, 0x00, 0x21, 0x20, 0x00, 0xcd, 0x8c, 0x27,
+ 0xc2, 0x81, 0x13, 0x60, 0x69, 0x5e, 0x16, 0x00,
+ 0x21, 0x09, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0x89,
+ 0x13, 0x60, 0x69, 0x23, 0x44, 0x4d, 0xc3, 0x65,
+ 0x13, 0x60, 0x69, 0x7e, 0xb7, 0xca, 0xe7, 0x14,
+ 0x60, 0x69, 0x5e, 0x16, 0x00, 0x21, 0x3e, 0x00,
+ 0xcd, 0x8c, 0x27, 0xca, 0xa7, 0x13, 0x21, 0x01,
+ 0x00, 0x22, 0x58, 0x2c, 0xc3, 0xbb, 0x13, 0x60,
+ 0x69, 0x5e, 0x16, 0x00, 0x21, 0x3c, 0x00, 0xcd,
+ 0x8c, 0x27, 0xca, 0x98, 0x14, 0x21, 0x00, 0x00,
+ 0x22, 0x58, 0x2c, 0x60, 0x69, 0x23, 0x44, 0x4d,
+ 0x5e, 0x16, 0x00, 0x21, 0x20, 0x00, 0xcd, 0x8c,
+ 0x27, 0xc2, 0xda, 0x13, 0x60, 0x69, 0x5e, 0x16,
+ 0x00, 0x21, 0x09, 0x00, 0xcd, 0x8c, 0x27, 0xca,
+ 0xdd, 0x13, 0xc3, 0xbb, 0x13, 0x60, 0x69, 0x22,
+ 0x56, 0x2c, 0x60, 0x69, 0x23, 0x44, 0x4d, 0x7e,
+ 0xb7, 0xca, 0x1a, 0x14, 0x60, 0x69, 0x5e, 0x16,
+ 0x00, 0x21, 0x20, 0x00, 0xcd, 0x8c, 0x27, 0xc2,
+ 0x08, 0x14, 0x60, 0x69, 0x5e, 0x16, 0x00, 0x21,
+ 0x09, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0x17, 0x14,
+ 0x21, 0x00, 0x00, 0xe5, 0x60, 0x69, 0x23, 0x44,
+ 0x4d, 0x2b, 0xd1, 0x73, 0xc3, 0x1a, 0x14, 0xc3,
+ 0xe2, 0x13, 0x2a, 0x58, 0x2c, 0xe5, 0xcd, 0x68,
+ 0x17, 0xd1, 0x2a, 0x58, 0x2c, 0x7c, 0xb5, 0xca,
+ 0x3d, 0x14, 0x21, 0xb6, 0x01, 0xe5, 0x2a, 0x56,
+ 0x2c, 0xe5, 0xcd, 0xca, 0x15, 0xd1, 0xd1, 0x22,
+ 0x58, 0x2c, 0xc3, 0x4d, 0x14, 0x21, 0x00, 0x00,
+ 0xe5, 0x2a, 0x56, 0x2c, 0xe5, 0xcd, 0xeb, 0x15,
+ 0xd1, 0xd1, 0x22, 0x58, 0x2c, 0x2a, 0x58, 0x2c,
+ 0x11, 0xff, 0xff, 0xcd, 0x8c, 0x27, 0xca, 0x95,
+ 0x14, 0x21, 0xfe, 0x14, 0xe5, 0x21, 0x80, 0x00,
+ 0xe5, 0xcd, 0xbc, 0x25, 0xd1, 0xd1, 0x2a, 0x56,
+ 0x2c, 0xe5, 0x21, 0x80, 0x00, 0xe5, 0xcd, 0xd8,
+ 0x25, 0xd1, 0xd1, 0x21, 0x20, 0x15, 0xe5, 0x21,
+ 0x80, 0x00, 0xe5, 0xcd, 0xd8, 0x25, 0xd1, 0xd1,
+ 0x21, 0x80, 0x00, 0xe5, 0x21, 0x09, 0x00, 0xe5,
+ 0xcd, 0x19, 0x24, 0xd1, 0xd1, 0x21, 0x0a, 0x00,
+ 0xe5, 0xcd, 0x22, 0x15, 0xd1, 0xc3, 0xe4, 0x14,
+ 0x60, 0x69, 0xe5, 0x2a, 0x54, 0x2c, 0x23, 0x22,
+ 0x54, 0x2c, 0x2b, 0x29, 0x11, 0x98, 0x2b, 0x19,
+ 0xd1, 0x73, 0x23, 0x72, 0x60, 0x69, 0x23, 0x44,
+ 0x4d, 0x7e, 0xb7, 0xca, 0xe4, 0x14, 0x60, 0x69,
+ 0x5e, 0x16, 0x00, 0x21, 0x20, 0x00, 0xcd, 0x8c,
+ 0x27, 0xc2, 0xd2, 0x14, 0x60, 0x69, 0x5e, 0x16,
+ 0x00, 0x21, 0x09, 0x00, 0xcd, 0x8c, 0x27, 0xca,
+ 0xe1, 0x14, 0x21, 0x00, 0x00, 0xe5, 0x60, 0x69,
+ 0x23, 0x44, 0x4d, 0x2b, 0xd1, 0x73, 0xc3, 0xe4,
+ 0x14, 0xc3, 0xac, 0x14, 0xc3, 0x58, 0x13, 0x21,
+ 0x98, 0x2b, 0xe5, 0x2a, 0x54, 0x2c, 0xe5, 0xcd,
+ 0x82, 0x02, 0xd1, 0xd1, 0x21, 0x00, 0x00, 0xe5,
+ 0xcd, 0x22, 0x15, 0xd1, 0xc9, 0x00, 0x43, 0x61,
+ 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e,
+ 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x66, 0x6f,
+ 0x72, 0x20, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x00,
+ 0x24, 0x00, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x2a, 0x6e, 0x2a, 0xcd, 0x9c, 0x26, 0x21, 0x00,
+ 0x00, 0x44, 0x4d, 0x60, 0x69, 0x11, 0x0b, 0x00,
+ 0xeb, 0xcd, 0xc6, 0x27, 0xca, 0x4d, 0x15, 0x60,
+ 0x69, 0x23, 0x44, 0x4d, 0x2b, 0xe5, 0xcd, 0x68,
+ 0x17, 0xd1, 0xc3, 0x33, 0x15, 0x21, 0x08, 0x00,
+ 0x39, 0x7e, 0x23, 0xb6, 0xca, 0x70, 0x15, 0x21,
+ 0x18, 0x00, 0xe5, 0xcd, 0x19, 0x24, 0xd1, 0x11,
+ 0x01, 0x00, 0xcd, 0x64, 0x27, 0xca, 0x70, 0x15,
+ 0x21, 0x74, 0x15, 0xe5, 0xcd, 0x08, 0x21, 0xd1,
+ 0xcd, 0x08, 0x13, 0xc9, 0x41, 0x3a, 0x24, 0x24,
+ 0x24, 0x2e, 0x53, 0x55, 0x42, 0x00, 0x11, 0x00,
+ 0x00, 0xcd, 0xbe, 0x26, 0x21, 0xfd, 0xff, 0x22,
+ 0xc8, 0x2e, 0x21, 0xff, 0xff, 0xc9, 0x11, 0x00,
+ 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x00, 0x00, 0xc9,
+ 0x63, 0x6f, 0x6e, 0x3a, 0x00, 0x43, 0x4f, 0x4e,
+ 0x3a, 0x00, 0x6c, 0x73, 0x74, 0x3a, 0x00, 0x4c,
+ 0x53, 0x54, 0x3a, 0x00, 0x70, 0x72, 0x6e, 0x3a,
+ 0x00, 0x50, 0x52, 0x4e, 0x3a, 0x00, 0x70, 0x75,
+ 0x6e, 0x3a, 0x00, 0x50, 0x55, 0x4e, 0x3a, 0x00,
+ 0x72, 0x64, 0x72, 0x3a, 0x00, 0x52, 0x44, 0x52,
+ 0x3a, 0x00, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5,
+ 0x21, 0x01, 0x03, 0xe5, 0x21, 0x0c, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0xeb, 0x15, 0xd1,
+ 0xd1, 0xd1, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe,
+ 0x26, 0x21, 0x16, 0x2a, 0x22, 0x5a, 0x2c, 0x21,
+ 0x00, 0x00, 0x22, 0x5e, 0x2c, 0xc3, 0x11, 0x16,
+ 0x2a, 0x5a, 0x2c, 0x11, 0x08, 0x00, 0x19, 0x22,
+ 0x5a, 0x2c, 0x2a, 0x5e, 0x2c, 0x23, 0x22, 0x5e,
+ 0x2c, 0x2a, 0x5e, 0x2c, 0x11, 0x0b, 0x00, 0xeb,
+ 0xcd, 0xc6, 0x27, 0xca, 0x34, 0x16, 0x2a, 0x5a,
+ 0x2c, 0x11, 0x04, 0x00, 0x19, 0x5e, 0x23, 0x56,
+ 0x21, 0x7e, 0x15, 0xcd, 0x8c, 0x27, 0xc2, 0x3e,
+ 0x16, 0xc3, 0x00, 0x16, 0x21, 0xf8, 0xff, 0x22,
+ 0xc8, 0x2e, 0x21, 0xff, 0xff, 0xc9, 0x21, 0x88,
+ 0x2a, 0x44, 0x4d, 0xc3, 0x4e, 0x16, 0x60, 0x69,
+ 0x11, 0x06, 0x00, 0x19, 0x44, 0x4d, 0x60, 0x69,
+ 0x7e, 0x23, 0xb6, 0xca, 0x6f, 0x16, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x60, 0x69,
+ 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x84, 0x25, 0xd1,
+ 0xd1, 0xca, 0x6f, 0x16, 0xc3, 0x46, 0x16, 0x21,
+ 0x02, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0x22,
+ 0x5c, 0x2c, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x21, 0x03, 0x00, 0xcd, 0x64, 0x27, 0x23,
+ 0x22, 0x60, 0x2c, 0x2a, 0x60, 0x2c, 0x11, 0x01,
+ 0x00, 0xcd, 0x64, 0x27, 0xca, 0xb0, 0x16, 0x2a,
+ 0x5c, 0x2c, 0x5e, 0xd5, 0x2a, 0x5a, 0x2c, 0xd1,
+ 0x73, 0x7b, 0xb3, 0xc2, 0xb0, 0x16, 0x21, 0xf6,
+ 0xff, 0x22, 0xc8, 0x2e, 0x21, 0xff, 0xff, 0xc9,
+ 0x2a, 0x60, 0x2c, 0x11, 0x02, 0x00, 0xcd, 0x64,
+ 0x27, 0xca, 0xd7, 0x16, 0x2a, 0x5c, 0x2c, 0x23,
+ 0x5e, 0xd5, 0x2a, 0x5a, 0x2c, 0x23, 0xd1, 0x73,
+ 0x7b, 0xb3, 0xc2, 0xd7, 0x16, 0x21, 0xf6, 0xff,
+ 0x22, 0xc8, 0x2e, 0x21, 0xff, 0xff, 0xc9, 0x21,
+ 0x04, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x2a,
+ 0x5a, 0x2c, 0x11, 0x06, 0x00, 0x19, 0xd1, 0x73,
+ 0x23, 0x72, 0x2a, 0x5c, 0x2c, 0x23, 0x23, 0x5e,
+ 0xd5, 0x2a, 0x5a, 0x2c, 0x23, 0x23, 0xd1, 0x73,
+ 0x2a, 0x5c, 0x2c, 0x23, 0x23, 0x23, 0x5e, 0xd5,
+ 0x2a, 0x5a, 0x2c, 0x23, 0x23, 0x23, 0xd1, 0x73,
+ 0x21, 0x8e, 0x15, 0xe5, 0x2a, 0x5a, 0x2c, 0x11,
+ 0x04, 0x00, 0x19, 0xd1, 0x73, 0x23, 0x72, 0xc5,
+ 0x2a, 0x5a, 0x2c, 0xe5, 0x21, 0x10, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x10, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0x21, 0x10, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0x5c, 0x2c, 0x11,
+ 0x04, 0x00, 0x19, 0x5e, 0x23, 0x56, 0xeb, 0xcd,
+ 0x9c, 0x26, 0xeb, 0x21, 0x0a, 0x00, 0x39, 0xf9,
+ 0x21, 0x00, 0x00, 0xcd, 0xc6, 0x27, 0xca, 0x64,
+ 0x17, 0x21, 0x7e, 0x15, 0xe5, 0x2a, 0x5a, 0x2c,
+ 0x11, 0x04, 0x00, 0x19, 0xd1, 0x73, 0x23, 0x72,
+ 0x21, 0xff, 0xff, 0xc9, 0x2a, 0x5e, 0x2c, 0xc9,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x00, 0x00,
+ 0xcd, 0xc6, 0x27, 0xc2, 0x8e, 0x17, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x0b, 0x00,
+ 0xcd, 0xc7, 0x27, 0xca, 0x98, 0x17, 0x21, 0xfd,
+ 0xff, 0x22, 0xc8, 0x2e, 0x21, 0xff, 0xff, 0xc9,
+ 0x21, 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb,
+ 0x29, 0x29, 0x29, 0x11, 0x16, 0x2a, 0x19, 0x44,
+ 0x4d, 0x21, 0x06, 0x00, 0x09, 0x5e, 0x23, 0x56,
+ 0xd5, 0x21, 0x04, 0x00, 0x09, 0x5e, 0x23, 0x56,
+ 0xeb, 0xcd, 0x9c, 0x26, 0xd1, 0xeb, 0x21, 0x08,
+ 0x00, 0x39, 0x73, 0x23, 0x72, 0x21, 0x00, 0x00,
+ 0xeb, 0x21, 0x03, 0x00, 0x09, 0x73, 0x21, 0x02,
+ 0x00, 0x09, 0x73, 0x21, 0x01, 0x00, 0x09, 0x73,
+ 0x60, 0x69, 0x73, 0x21, 0x7e, 0x15, 0xeb, 0x21,
+ 0x04, 0x00, 0x09, 0x73, 0x23, 0x72, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0xc9, 0x11,
+ 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x62, 0x2c,
+ 0x44, 0x4d, 0xc3, 0x05, 0x18, 0x60, 0x69, 0x11,
+ 0x27, 0x00, 0x19, 0x44, 0x4d, 0x60, 0x69, 0x11,
+ 0x9a, 0x2d, 0xeb, 0xcd, 0x28, 0x28, 0xca, 0x1f,
+ 0x18, 0x60, 0x69, 0x11, 0x25, 0x00, 0x19, 0x7e,
+ 0xb7, 0xca, 0x29, 0x18, 0xc3, 0xfd, 0x17, 0x21,
+ 0xf9, 0xff, 0x22, 0xc8, 0x2e, 0x21, 0xff, 0xff,
+ 0xc9, 0xc5, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xd5, 0xcd, 0x2d, 0x24, 0xd1, 0xd1, 0x22,
+ 0x9a, 0x2d, 0x11, 0xff, 0xff, 0xcd, 0x8c, 0x27,
+ 0xca, 0x4d, 0x18, 0x21, 0xfa, 0xff, 0x22, 0xc8,
+ 0x2e, 0x21, 0xff, 0xff, 0xc9, 0x2a, 0x9a, 0x2d,
+ 0x11, 0xff, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0x5f,
+ 0x18, 0xcd, 0x50, 0x25, 0x22, 0x9a, 0x2d, 0x2a,
+ 0x9a, 0x2d, 0xe5, 0xcd, 0x5f, 0x25, 0xd1, 0x21,
+ 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x00,
+ 0x02, 0xcd, 0x64, 0x27, 0xca, 0x81, 0x18, 0xc5,
+ 0x21, 0x13, 0x00, 0xe5, 0xcd, 0x19, 0x24, 0xd1,
+ 0xd1, 0xc5, 0x21, 0x0f, 0x00, 0xe5, 0xcd, 0x19,
+ 0x24, 0xd1, 0xd1, 0x11, 0xff, 0x00, 0xcd, 0x8c,
+ 0x27, 0xca, 0xc7, 0x18, 0x21, 0x0a, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0x21, 0x00, 0x03, 0xcd, 0x64,
+ 0x27, 0xca, 0xb7, 0x18, 0xc5, 0x21, 0x16, 0x00,
+ 0xe5, 0xcd, 0x19, 0x24, 0xd1, 0xd1, 0x11, 0xff,
+ 0x00, 0xcd, 0x8c, 0x27, 0xca, 0xc4, 0x18, 0x21,
+ 0xff, 0xff, 0x22, 0xc8, 0x2e, 0xcd, 0x78, 0x25,
+ 0x21, 0xff, 0xff, 0xc9, 0xc3, 0xea, 0x18, 0x21,
+ 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x00,
+ 0x05, 0xcd, 0x64, 0x27, 0x11, 0x00, 0x05, 0xcd,
+ 0x8c, 0x27, 0xca, 0xea, 0x18, 0x21, 0xfb, 0xff,
+ 0x22, 0xc8, 0x2e, 0xcd, 0x78, 0x25, 0x21, 0xff,
+ 0xff, 0xc9, 0x21, 0x00, 0x00, 0xeb, 0x21, 0x21,
+ 0x00, 0x09, 0x73, 0x23, 0x72, 0x21, 0x23, 0x00,
+ 0x09, 0x73, 0x21, 0x24, 0x00, 0x09, 0x73, 0x2a,
+ 0x9a, 0x2d, 0xeb, 0x21, 0x26, 0x00, 0x09, 0x73,
+ 0x60, 0x69, 0xe5, 0x21, 0x10, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0x21, 0x06, 0x00, 0x19, 0xd1, 0x73,
+ 0x23, 0x72, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x21, 0x03, 0x00, 0xcd, 0x64, 0x27, 0x23,
+ 0xeb, 0x21, 0x25, 0x00, 0x09, 0x73, 0x21, 0x5d,
+ 0x19, 0xe5, 0x21, 0x10, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x21, 0x04, 0x00, 0x19, 0xd1, 0x73, 0x23,
+ 0x72, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0x21, 0x00, 0x08, 0xcd, 0x64, 0x27, 0xca, 0x56,
+ 0x19, 0xc5, 0xcd, 0x37, 0x1f, 0xd1, 0xcd, 0x78,
+ 0x25, 0x21, 0x00, 0x00, 0xc9, 0x11, 0x00, 0x00,
+ 0xcd, 0xbe, 0x26, 0x21, 0x08, 0x00, 0x39, 0x4e,
+ 0x23, 0x46, 0xcd, 0xed, 0x1f, 0x21, 0x26, 0x00,
+ 0x09, 0x5e, 0x16, 0x00, 0xd5, 0xcd, 0x5f, 0x25,
+ 0xd1, 0xc5, 0x21, 0x10, 0x00, 0xe5, 0xcd, 0x19,
+ 0x24, 0xd1, 0xd1, 0xcd, 0x78, 0x25, 0x21, 0x00,
+ 0x00, 0xeb, 0x21, 0x25, 0x00, 0x09, 0x73, 0x21,
+ 0x00, 0x00, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe,
+ 0x26, 0x21, 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xeb, 0x29, 0x29, 0x29, 0x11, 0x16, 0x2a, 0x19,
+ 0x44, 0x4d, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xd5, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xd5, 0x21, 0x06, 0x00, 0x09, 0x5e, 0x23,
+ 0x56, 0xd5, 0x60, 0x69, 0x5e, 0x16, 0x00, 0xeb,
+ 0x29, 0x11, 0xca, 0x2a, 0x19, 0x5e, 0x23, 0x56,
+ 0xeb, 0xcd, 0x9c, 0x26, 0xd1, 0xd1, 0xd1, 0xc9,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x00,
+ 0x00, 0x44, 0x4d, 0x21, 0x08, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xeb, 0x22, 0x9c, 0x2d, 0x2a, 0x9c,
+ 0x2d, 0x11, 0x26, 0x00, 0x19, 0x5e, 0x16, 0x00,
+ 0xd5, 0xcd, 0x5f, 0x25, 0xd1, 0x2a, 0x9c, 0x2d,
+ 0x11, 0x24, 0x00, 0x19, 0x7e, 0xb7, 0xca, 0x53,
+ 0x1a, 0x2a, 0x9c, 0x2d, 0x11, 0x24, 0x00, 0x19,
+ 0x5e, 0x16, 0x00, 0xd5, 0x21, 0x80, 0x00, 0xd1,
+ 0xeb, 0xcd, 0xea, 0x27, 0x44, 0x4d, 0xeb, 0x21,
+ 0x0c, 0x00, 0x39, 0x7e, 0x23, 0x66, 0x6f, 0xcd,
+ 0x29, 0x28, 0xca, 0x36, 0x1a, 0x21, 0x0c, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0x42, 0x4b, 0xc5, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x2a,
+ 0x9c, 0x2d, 0xe5, 0xcd, 0xfe, 0x1a, 0xd1, 0xd1,
+ 0xd1, 0xca, 0x53, 0x1a, 0xcd, 0x78, 0x25, 0x21,
+ 0x00, 0x00, 0xc9, 0x21, 0x0c, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0x60, 0x69, 0xcd, 0xea, 0x27, 0x11,
+ 0x07, 0x00, 0xeb, 0xcd, 0x4f, 0x27, 0x22, 0x9e,
+ 0x2d, 0x7c, 0xb5, 0xca, 0xa7, 0x1a, 0x2a, 0x9e,
+ 0x2d, 0xe5, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x60, 0x69, 0x19, 0xe5, 0x2a, 0x9c, 0x2d,
+ 0xe5, 0xcd, 0xad, 0x20, 0xd1, 0xd1, 0xd1, 0x22,
+ 0xa0, 0x2d, 0x7c, 0xb5, 0xca, 0xa7, 0x1a, 0xcd,
+ 0x78, 0x25, 0x2a, 0x9e, 0x2d, 0xeb, 0x2a, 0xa0,
+ 0x2d, 0xcd, 0xea, 0x27, 0x11, 0x07, 0x00, 0xeb,
+ 0xcd, 0x3f, 0x27, 0x50, 0x59, 0x19, 0xc9, 0x2a,
+ 0x9e, 0x2d, 0x11, 0x07, 0x00, 0xeb, 0xcd, 0x3f,
+ 0x27, 0x50, 0x59, 0x19, 0x44, 0x4d, 0x60, 0x69,
+ 0xeb, 0x21, 0x0c, 0x00, 0x39, 0x7e, 0x23, 0x66,
+ 0x6f, 0xcd, 0x28, 0x28, 0xca, 0xf2, 0x1a, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x60, 0x69,
+ 0xcd, 0xea, 0x27, 0xe5, 0x21, 0x0c, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0x60, 0x69, 0x19, 0xe5, 0x2a,
+ 0x9c, 0x2d, 0xe5, 0xcd, 0xfe, 0x1a, 0xd1, 0xd1,
+ 0xd1, 0xca, 0xf2, 0x1a, 0xcd, 0x78, 0x25, 0x60,
+ 0x69, 0xc9, 0xcd, 0x78, 0x25, 0x21, 0x0c, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xeb, 0xc9, 0x11, 0x00,
+ 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08, 0x00, 0x39,
+ 0x4e, 0x23, 0x46, 0xc5, 0xcd, 0xfa, 0x1f, 0xd1,
+ 0xca, 0x17, 0x1b, 0x21, 0xff, 0xff, 0xc9, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x24, 0x00, 0x09, 0x5e, 0x16, 0x00, 0x21, 0x80,
+ 0x00, 0x19, 0xe5, 0xcd, 0x4a, 0x26, 0xd1, 0xd1,
+ 0xd1, 0x21, 0x24, 0x00, 0x09, 0x5e, 0x16, 0x00,
+ 0x21, 0x0c, 0x00, 0x39, 0x7e, 0x23, 0x66, 0x6f,
+ 0x19, 0x11, 0x7f, 0x00, 0xcd, 0x64, 0x27, 0xeb,
+ 0x21, 0x24, 0x00, 0x09, 0x73, 0x7b, 0xb3, 0xc2,
+ 0x6b, 0x1b, 0x60, 0x69, 0x11, 0x21, 0x00, 0x19,
+ 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb, 0xe1,
+ 0x73, 0x23, 0x72, 0x21, 0x00, 0x00, 0xc9, 0x11,
+ 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x3a, 0xa3, 0x2d,
+ 0xb7, 0xc2, 0xdf, 0x1b, 0x21, 0xff, 0x00, 0x7d,
+ 0x32, 0xa2, 0x2d, 0x21, 0x00, 0x00, 0x7d, 0x32,
+ 0xa4, 0x2d, 0x7d, 0x32, 0xa3, 0x2d, 0x21, 0xa2,
+ 0x2d, 0xe5, 0x21, 0x0a, 0x00, 0xe5, 0xcd, 0x19,
+ 0x24, 0xd1, 0xd1, 0x21, 0x0a, 0x00, 0xe5, 0x21,
+ 0x02, 0x00, 0xe5, 0xcd, 0x19, 0x24, 0xd1, 0xd1,
+ 0x3a, 0xa4, 0x2d, 0x6f, 0x26, 0x00, 0x11, 0x1a,
+ 0x00, 0xcd, 0x8c, 0x27, 0xca, 0xc2, 0x1b, 0x21,
+ 0x00, 0x00, 0x7d, 0x32, 0xa3, 0x2d, 0x21, 0x00,
+ 0x00, 0xc9, 0x3a, 0xd2, 0x2a, 0x6f, 0xe5, 0x3a,
+ 0xa3, 0x2d, 0x6f, 0x23, 0x7d, 0x32, 0xa3, 0x2d,
+ 0x26, 0x00, 0x11, 0xa2, 0x2d, 0x19, 0x23, 0xd1,
+ 0x73, 0x21, 0x02, 0x00, 0x22, 0xa4, 0x2e, 0x3a,
+ 0xa3, 0x2d, 0x6f, 0x26, 0x00, 0x44, 0x4d, 0xeb,
+ 0x21, 0x0c, 0x00, 0x39, 0x7e, 0x23, 0x66, 0x6f,
+ 0xcd, 0xc7, 0x27, 0xca, 0xff, 0x1b, 0x21, 0x0c,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0x42, 0x4b, 0xc5,
+ 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5,
+ 0x2a, 0xa4, 0x2e, 0x11, 0xa2, 0x2d, 0x19, 0xe5,
+ 0xcd, 0x4a, 0x26, 0xd1, 0xd1, 0xd1, 0x60, 0x69,
+ 0xeb, 0x2a, 0xa4, 0x2e, 0x19, 0x22, 0xa4, 0x2e,
+ 0x60, 0x69, 0xeb, 0x3a, 0xa3, 0x2d, 0x6f, 0xeb,
+ 0xcd, 0xea, 0x27, 0x7d, 0x32, 0xa3, 0x2d, 0x60,
+ 0x69, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x21, 0x0a, 0x00, 0x39, 0x4e, 0x23, 0x46, 0x21,
+ 0x00, 0x00, 0x22, 0xa6, 0x2e, 0xc3, 0x4f, 0x1c,
+ 0x2a, 0xa6, 0x2e, 0x23, 0x22, 0xa6, 0x2e, 0x2a,
+ 0xa6, 0x2e, 0xeb, 0x21, 0x0c, 0x00, 0x39, 0x7e,
+ 0x23, 0x66, 0x6f, 0xcd, 0xc6, 0x27, 0xca, 0x84,
+ 0x1c, 0x21, 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xd5, 0xcd, 0x19, 0x24, 0xd1, 0xe5, 0x60, 0x69,
+ 0x23, 0x44, 0x4d, 0x2b, 0xd1, 0x73, 0x16, 0x00,
+ 0x21, 0x1a, 0x00, 0xcd, 0x8c, 0x27, 0xc2, 0x84,
+ 0x1c, 0xc3, 0x48, 0x1c, 0x2a, 0xa6, 0x2e, 0xc9,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x29, 0x29,
+ 0x29, 0x11, 0x16, 0x2a, 0x19, 0x44, 0x4d, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x06, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x21,
+ 0x01, 0x00, 0x09, 0x5e, 0x16, 0x00, 0xeb, 0x29,
+ 0x11, 0xd3, 0x2a, 0x19, 0x5e, 0x23, 0x56, 0xeb,
+ 0xcd, 0x9c, 0x26, 0xd1, 0xd1, 0xd1, 0xc9, 0x11,
+ 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x00, 0x00,
+ 0x44, 0x4d, 0x21, 0x08, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xeb, 0x22, 0xa8, 0x2e, 0x2a, 0xa8, 0x2e,
+ 0x11, 0x26, 0x00, 0x19, 0x5e, 0x16, 0x00, 0xd5,
+ 0xcd, 0x5f, 0x25, 0xd1, 0x2a, 0xa8, 0x2e, 0x11,
+ 0x24, 0x00, 0x19, 0x7e, 0xb7, 0xca, 0x4a, 0x1d,
+ 0x2a, 0xa8, 0x2e, 0x11, 0x24, 0x00, 0x19, 0x5e,
+ 0x16, 0x00, 0xd5, 0x21, 0x80, 0x00, 0xd1, 0xeb,
+ 0xcd, 0xea, 0x27, 0x44, 0x4d, 0xeb, 0x21, 0x0c,
+ 0x00, 0x39, 0x7e, 0x23, 0x66, 0x6f, 0xcd, 0x29,
+ 0x28, 0xca, 0x2d, 0x1d, 0x21, 0x0c, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0x42, 0x4b, 0xc5, 0x21, 0x0c,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0xa8,
+ 0x2e, 0xe5, 0xcd, 0x02, 0x1e, 0xd1, 0xd1, 0xd1,
+ 0xca, 0x4a, 0x1d, 0xcd, 0x78, 0x25, 0x21, 0xff,
+ 0xff, 0xc9, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x60, 0x69, 0xcd, 0xea, 0x27, 0x11, 0x07,
+ 0x00, 0xeb, 0xcd, 0x4f, 0x27, 0x22, 0xaa, 0x2e,
+ 0x7c, 0xb5, 0xca, 0xab, 0x1d, 0x2a, 0xaa, 0x2e,
+ 0xe5, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0x60, 0x69, 0x19, 0xe5, 0x2a, 0xa8, 0x2e, 0xe5,
+ 0xcd, 0xb5, 0x20, 0xd1, 0xd1, 0xd1, 0x22, 0xac,
+ 0x2e, 0x7c, 0xb5, 0xca, 0xab, 0x1d, 0xcd, 0x78,
+ 0x25, 0x2a, 0xaa, 0x2e, 0xeb, 0x2a, 0xac, 0x2e,
+ 0xcd, 0xea, 0x27, 0x11, 0x07, 0x00, 0xeb, 0xcd,
+ 0x3f, 0x27, 0x50, 0x59, 0x19, 0x44, 0x4d, 0x7c,
+ 0xb5, 0xc2, 0xa8, 0x1d, 0x21, 0xff, 0xff, 0xc9,
+ 0x60, 0x69, 0xc9, 0x2a, 0xaa, 0x2e, 0x11, 0x07,
+ 0x00, 0xeb, 0xcd, 0x3f, 0x27, 0x50, 0x59, 0x19,
+ 0x44, 0x4d, 0x60, 0x69, 0xeb, 0x21, 0x0c, 0x00,
+ 0x39, 0x7e, 0x23, 0x66, 0x6f, 0xcd, 0x28, 0x28,
+ 0xca, 0xf6, 0x1d, 0x21, 0x0c, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0x60, 0x69, 0xcd, 0xea, 0x27, 0xe5,
+ 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x60,
+ 0x69, 0x19, 0xe5, 0x2a, 0xa8, 0x2e, 0xe5, 0xcd,
+ 0x02, 0x1e, 0xd1, 0xd1, 0xd1, 0xca, 0xf6, 0x1d,
+ 0xcd, 0x78, 0x25, 0x60, 0x69, 0xc9, 0xcd, 0x78,
+ 0x25, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xeb, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x21, 0x08, 0x00, 0x39, 0x4e, 0x23, 0x46, 0xc5,
+ 0xcd, 0xfa, 0x1f, 0xd1, 0x11, 0x00, 0x00, 0xeb,
+ 0xcd, 0xc6, 0x27, 0xca, 0x22, 0x1e, 0x21, 0xff,
+ 0xff, 0xc9, 0x21, 0x0c, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0xd5, 0x21, 0x24, 0x00, 0x09, 0x5e, 0x16,
+ 0x00, 0x21, 0x80, 0x00, 0x19, 0xe5, 0x21, 0x0e,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x4a,
+ 0x26, 0xd1, 0xd1, 0xd1, 0xc5, 0x21, 0x22, 0x00,
+ 0xe5, 0xcd, 0x19, 0x24, 0xd1, 0xd1, 0x22, 0xc8,
+ 0x2e, 0x7c, 0xb5, 0xca, 0x5a, 0x1e, 0x21, 0xff,
+ 0xff, 0xc9, 0x21, 0x24, 0x00, 0x09, 0x5e, 0x16,
+ 0x00, 0x21, 0x0c, 0x00, 0x39, 0x7e, 0x23, 0x66,
+ 0x6f, 0x19, 0x11, 0x7f, 0x00, 0xcd, 0x64, 0x27,
+ 0xeb, 0x21, 0x24, 0x00, 0x09, 0x73, 0x7b, 0xb3,
+ 0xc2, 0x8c, 0x1e, 0x60, 0x69, 0x11, 0x21, 0x00,
+ 0x19, 0xe5, 0x7e, 0x23, 0x66, 0x6f, 0x23, 0xeb,
+ 0xe1, 0x73, 0x23, 0x72, 0x21, 0x00, 0x00, 0xc9,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x0a,
+ 0x00, 0x39, 0x4e, 0x23, 0x46, 0x21, 0x0c, 0x00,
+ 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x22, 0xae, 0x2e,
+ 0x2a, 0xae, 0x2e, 0x2b, 0x22, 0xae, 0x2e, 0x23,
+ 0x7c, 0xb5, 0xca, 0xe6, 0x1e, 0x60, 0x69, 0x5e,
+ 0x16, 0x00, 0x21, 0x0a, 0x00, 0xcd, 0x8c, 0x27,
+ 0xca, 0xd0, 0x1e, 0x21, 0x0d, 0x00, 0xe5, 0x21,
+ 0x02, 0x00, 0xe5, 0xcd, 0x19, 0x24, 0xd1, 0xd1,
+ 0x60, 0x69, 0x23, 0x44, 0x4d, 0x2b, 0x5e, 0x16,
+ 0x00, 0xd5, 0x21, 0x02, 0x00, 0xe5, 0xcd, 0x19,
+ 0x24, 0xd1, 0xd1, 0xc3, 0xa8, 0x1e, 0x21, 0x0c,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0xc9, 0x11,
+ 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x0a, 0x00,
+ 0x39, 0x4e, 0x23, 0x46, 0x21, 0x0c, 0x00, 0x39,
+ 0x5e, 0x23, 0x56, 0xeb, 0x22, 0xb0, 0x2e, 0x2a,
+ 0xb0, 0x2e, 0x2b, 0x22, 0xb0, 0x2e, 0x23, 0x7c,
+ 0xb5, 0xca, 0x2e, 0x1f, 0x60, 0x69, 0x23, 0x44,
+ 0x4d, 0x2b, 0x5e, 0x16, 0x00, 0xd5, 0x21, 0x0a,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xd5, 0xcd, 0x19,
+ 0x24, 0xd1, 0xd1, 0xc3, 0x07, 0x1f, 0x21, 0x0c,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0xc9, 0x11,
+ 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08, 0x00,
+ 0x39, 0x4e, 0x23, 0x46, 0xc5, 0x21, 0x23, 0x00,
+ 0xe5, 0xcd, 0x19, 0x24, 0xd1, 0xd1, 0x60, 0x69,
+ 0x11, 0x21, 0x00, 0x19, 0x7e, 0x23, 0xb6, 0xc2,
+ 0x67, 0x1f, 0x21, 0x00, 0x00, 0xeb, 0x21, 0x24,
+ 0x00, 0x09, 0x73, 0x21, 0x00, 0x00, 0xc9, 0x60,
+ 0x69, 0x11, 0x21, 0x00, 0x19, 0xe5, 0x7e, 0x23,
+ 0x66, 0x6f, 0x2b, 0xeb, 0xe1, 0x73, 0x23, 0x72,
+ 0xc5, 0xcd, 0xfa, 0x1f, 0xd1, 0xca, 0x84, 0x1f,
+ 0x21, 0xff, 0xff, 0xc9, 0x21, 0x00, 0x01, 0x22,
+ 0xb2, 0x2e, 0x2a, 0xb2, 0x2e, 0x11, 0x80, 0x00,
+ 0xeb, 0xcd, 0x29, 0x28, 0xca, 0xb7, 0x1f, 0x2a,
+ 0xb2, 0x2e, 0x2b, 0x22, 0xb2, 0x2e, 0x5e, 0x16,
+ 0x00, 0x21, 0x1a, 0x00, 0xcd, 0x9b, 0x27, 0xca,
+ 0xb4, 0x1f, 0x2a, 0xb2, 0x2e, 0x23, 0x22, 0xb2,
+ 0x2e, 0xc3, 0xb7, 0x1f, 0xc3, 0x8a, 0x1f, 0x2a,
+ 0xb2, 0x2e, 0x11, 0x80, 0xff, 0x19, 0xeb, 0x21,
+ 0x24, 0x00, 0x09, 0x73, 0x16, 0x00, 0x21, 0x80,
+ 0x00, 0xcd, 0x8c, 0x27, 0xca, 0xe9, 0x1f, 0x60,
+ 0x69, 0x11, 0x21, 0x00, 0x19, 0xe5, 0x7e, 0x23,
+ 0x66, 0x6f, 0x23, 0xeb, 0xe1, 0x73, 0x23, 0x72,
+ 0x21, 0x00, 0x00, 0xeb, 0x21, 0x24, 0x00, 0x09,
+ 0x73, 0x21, 0x00, 0x00, 0xc9, 0x11, 0x00, 0x00,
+ 0xcd, 0xbe, 0x26, 0x21, 0x00, 0x00, 0x22, 0xb4,
+ 0x2e, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26,
+ 0x21, 0x08, 0x00, 0x39, 0x4e, 0x23, 0x46, 0x21,
+ 0x80, 0x00, 0xe5, 0x21, 0x1a, 0x00, 0xe5, 0xcd,
+ 0x19, 0x24, 0xd1, 0xd1, 0x2a, 0xb4, 0x2e, 0x50,
+ 0x59, 0xcd, 0x9b, 0x27, 0xc2, 0x2f, 0x20, 0x21,
+ 0x21, 0x00, 0x09, 0x5e, 0x23, 0x56, 0x2a, 0xb6,
+ 0x2e, 0xcd, 0x9b, 0x27, 0xca, 0x8f, 0x20, 0xc5,
+ 0x21, 0x21, 0x00, 0xe5, 0xcd, 0x19, 0x24, 0xd1,
+ 0xd1, 0x22, 0xc8, 0x2e, 0x11, 0x01, 0x00, 0xcd,
+ 0x8c, 0x27, 0xc2, 0x51, 0x20, 0x2a, 0xc8, 0x2e,
+ 0x11, 0x04, 0x00, 0xcd, 0x8c, 0x27, 0xca, 0x73,
+ 0x20, 0x21, 0x00, 0x00, 0x22, 0xc8, 0x2e, 0x21,
+ 0x1a, 0x00, 0xe5, 0x21, 0x80, 0x00, 0xe5, 0x21,
+ 0x80, 0x00, 0xe5, 0xcd, 0x2e, 0x26, 0xd1, 0xd1,
+ 0xd1, 0x21, 0x00, 0x00, 0x22, 0xb4, 0x2e, 0x21,
+ 0x01, 0x00, 0xc9, 0x2a, 0xc8, 0x2e, 0x7c, 0xb5,
+ 0xca, 0x7f, 0x20, 0x21, 0xff, 0xff, 0xc9, 0x60,
+ 0x69, 0x22, 0xb4, 0x2e, 0x21, 0x21, 0x00, 0x09,
+ 0x5e, 0x23, 0x56, 0xeb, 0x22, 0xb6, 0x2e, 0x21,
+ 0x00, 0x00, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe,
+ 0x26, 0x21, 0x08, 0x00, 0x39, 0x5e, 0x23, 0x56,
+ 0xeb, 0x29, 0x29, 0x29, 0x11, 0x18, 0x2a, 0x19,
+ 0x5e, 0x16, 0x00, 0xeb, 0xc9, 0xcd, 0xdc, 0x26,
+ 0x0e, 0x21, 0xc3, 0xba, 0x20, 0xcd, 0xdc, 0x26,
+ 0x0e, 0x22, 0xc5, 0x2a, 0x5f, 0x2b, 0xeb, 0x21,
+ 0x80, 0x00, 0x19, 0x22, 0x5f, 0x2b, 0x0e, 0x1a,
+ 0xcd, 0x05, 0x00, 0xc1, 0xc5, 0x2a, 0x5d, 0x2b,
+ 0xeb, 0xcd, 0x05, 0x00, 0xb7, 0xc2, 0xf3, 0x20,
+ 0x2a, 0x5d, 0x2b, 0x11, 0x21, 0x00, 0x19, 0x34,
+ 0xc2, 0xe5, 0x20, 0x23, 0x34, 0x2a, 0x61, 0x2b,
+ 0x2b, 0x22, 0x61, 0x2b, 0x7d, 0xb4, 0xc2, 0xbb,
+ 0x20, 0xc1, 0xc9, 0xfe, 0x01, 0xca, 0x03, 0x21,
+ 0xfe, 0x04, 0xca, 0x03, 0x21, 0x6f, 0x26, 0x00,
+ 0x22, 0xc8, 0x2e, 0xc1, 0x2a, 0x61, 0x2b, 0xc9,
+ 0x11, 0xd8, 0xff, 0xcd, 0xbe, 0x26, 0x21, 0x04,
+ 0x00, 0x39, 0xe5, 0x21, 0x32, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xd5, 0xcd, 0x2d, 0x24, 0xd1, 0xd1,
+ 0x44, 0x4d, 0xc5, 0xcd, 0x5f, 0x25, 0xd1, 0x21,
+ 0x04, 0x00, 0x39, 0xe5, 0x21, 0x13, 0x00, 0xe5,
+ 0xcd, 0x19, 0x24, 0xd1, 0xd1, 0x44, 0x4d, 0xcd,
+ 0x78, 0x25, 0x60, 0x69, 0x11, 0xff, 0x00, 0xcd,
+ 0x8c, 0x27, 0xca, 0x4f, 0x21, 0x21, 0xff, 0xff,
+ 0x22, 0xc8, 0x2e, 0x21, 0xff, 0xff, 0xc9, 0x21,
+ 0x00, 0x00, 0xc9, 0x11, 0x00, 0x00, 0xcd, 0xbe,
+ 0x26, 0x21, 0x08, 0x00, 0x39, 0x4e, 0x23, 0x46,
+ 0x21, 0xfc, 0xff, 0x09, 0x5e, 0x23, 0x56, 0xeb,
+ 0x2b, 0x29, 0x29, 0x22, 0xc0, 0x2e, 0xc5, 0xcd,
+ 0x65, 0x23, 0xd1, 0x21, 0x0a, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0xd5, 0xcd, 0xc0, 0x21, 0xd1, 0x22,
+ 0xbe, 0x2e, 0x7c, 0xb5, 0xca, 0xbc, 0x21, 0x2a,
+ 0xbe, 0x2e, 0x50, 0x59, 0xcd, 0x9b, 0x27, 0xca,
+ 0xbc, 0x21, 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23,
+ 0x56, 0x2a, 0xc0, 0x2e, 0xcd, 0x29, 0x28, 0xca,
+ 0xa8, 0x21, 0x2a, 0xc0, 0x2e, 0xc3, 0xb0, 0x21,
+ 0x21, 0x0a, 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb,
+ 0xe5, 0x2a, 0xbe, 0x2e, 0xe5, 0xc5, 0xcd, 0x4a,
+ 0x26, 0xd1, 0xd1, 0xd1, 0x2a, 0xbe, 0x2e, 0xc9,
+ 0x11, 0x00, 0x00, 0xcd, 0xbe, 0x26, 0x21, 0x08,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0xeb, 0x23, 0x23,
+ 0x23, 0x11, 0x02, 0x00, 0xeb, 0xcd, 0x4f, 0x27,
+ 0x23, 0x22, 0xc4, 0x2e, 0x2a, 0xbc, 0x2e, 0x22,
+ 0xc2, 0x2e, 0x7c, 0xb5, 0xc2, 0xf3, 0x21, 0x21,
+ 0xb8, 0x2e, 0x22, 0xc2, 0x2e, 0x22, 0xba, 0x2e,
+ 0x22, 0xbc, 0x2e, 0x2a, 0xc2, 0x2e, 0x23, 0x23,
+ 0x5e, 0x23, 0x56, 0x42, 0x4b, 0xc3, 0x0e, 0x22,
+ 0x60, 0x69, 0x22, 0xc2, 0x2e, 0x21, 0x02, 0x00,
+ 0x09, 0x5e, 0x23, 0x56, 0x42, 0x4b, 0x21, 0x02,
+ 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x60, 0x69,
+ 0xd1, 0xcd, 0x9b, 0x27, 0xca, 0x8d, 0x22, 0x21,
+ 0x02, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x60,
+ 0x69, 0x5e, 0x23, 0x56, 0xeb, 0x29, 0x29, 0x50,
+ 0x59, 0x19, 0xd1, 0xcd, 0x8c, 0x27, 0xca, 0x8d,
+ 0x22, 0x21, 0x02, 0x00, 0x09, 0x5e, 0x23, 0x56,
+ 0xd5, 0x2a, 0xbc, 0x2e, 0xd1, 0xcd, 0x8c, 0x27,
+ 0xca, 0x5c, 0x22, 0x21, 0x02, 0x00, 0x09, 0x5e,
+ 0x23, 0x56, 0xeb, 0x23, 0x23, 0x5e, 0x23, 0x56,
+ 0xeb, 0x22, 0xbc, 0x2e, 0x21, 0x02, 0x00, 0x09,
+ 0x5e, 0x23, 0x56, 0xeb, 0x5e, 0x23, 0x56, 0xd5,
+ 0x60, 0x69, 0xd1, 0xe5, 0x7e, 0x23, 0x66, 0x6f,
+ 0x19, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0x21, 0x02,
+ 0x00, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0x23, 0x23,
+ 0x5e, 0x23, 0x56, 0x21, 0x02, 0x00, 0x09, 0x73,
+ 0x23, 0x72, 0xc3, 0x0e, 0x22, 0x60, 0x69, 0x5e,
+ 0x23, 0x56, 0x2a, 0xc4, 0x2e, 0xcd, 0x1a, 0x28,
+ 0xca, 0x1a, 0x23, 0x60, 0x69, 0x5e, 0x23, 0x56,
+ 0x2a, 0xc4, 0x2e, 0xcd, 0x8c, 0x27, 0xca, 0xbd,
+ 0x22, 0x21, 0x02, 0x00, 0x09, 0x5e, 0x23, 0x56,
+ 0xd5, 0x2a, 0xc2, 0x2e, 0x23, 0x23, 0xd1, 0x73,
+ 0x23, 0x72, 0xc3, 0x02, 0x23, 0x2a, 0xc4, 0x2e,
+ 0x29, 0x29, 0x50, 0x59, 0x19, 0x22, 0xbc, 0x2e,
+ 0x2a, 0xbc, 0x2e, 0xe5, 0x2a, 0xc2, 0x2e, 0x23,
+ 0x23, 0xd1, 0x73, 0x23, 0x72, 0x21, 0x02, 0x00,
+ 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0xbc, 0x2e,
+ 0x23, 0x23, 0xd1, 0x73, 0x23, 0x72, 0x60, 0x69,
+ 0x5e, 0x23, 0x56, 0x2a, 0xc4, 0x2e, 0xcd, 0xea,
+ 0x27, 0xe5, 0x2a, 0xbc, 0x2e, 0xd1, 0x73, 0x23,
+ 0x72, 0x2a, 0xc4, 0x2e, 0xeb, 0x60, 0x69, 0x73,
+ 0x23, 0x72, 0x2a, 0xc2, 0x2e, 0x22, 0xbc, 0x2e,
+ 0x21, 0x00, 0x00, 0xeb, 0x21, 0x02, 0x00, 0x09,
+ 0x73, 0x23, 0x72, 0x60, 0x69, 0x11, 0x04, 0x00,
+ 0x19, 0xc9, 0x60, 0x69, 0xeb, 0x2a, 0xbc, 0x2e,
+ 0xcd, 0x8c, 0x27, 0xca, 0x61, 0x23, 0x21, 0x00,
+ 0x04, 0xe5, 0xcd, 0x16, 0x25, 0xd1, 0x44, 0x4d,
+ 0x11, 0xff, 0xff, 0xcd, 0x8c, 0x27, 0xca, 0x3d,
+ 0x23, 0x21, 0x00, 0x00, 0xc9, 0x21, 0x00, 0x01,
+ 0xeb, 0x60, 0x69, 0x73, 0x23, 0x72, 0x21, 0x00,
+ 0x00, 0xeb, 0x21, 0x02, 0x00, 0x09, 0x73, 0x23,
+ 0x72, 0x60, 0x69, 0x11, 0x04, 0x00, 0x19, 0xe5,
+ 0xcd, 0x65, 0x23, 0xd1, 0x2a, 0xbc, 0x2e, 0x44,
+ 0x4d, 0xc3, 0x00, 0x22, 0xc9, 0x11, 0x00, 0x00,
+ 0xcd, 0xbe, 0x26, 0x21, 0x08, 0x00, 0x39, 0x5e,
+ 0x23, 0x56, 0x21, 0xfc, 0xff, 0x19, 0x22, 0xc6,
+ 0x2e, 0x2a, 0xc6, 0x2e, 0x23, 0x23, 0x7e, 0x23,
+ 0xb6, 0xca, 0x88, 0x23, 0x21, 0xff, 0xff, 0xc9,
+ 0x2a, 0xbc, 0x2e, 0x44, 0x4d, 0xc3, 0x99, 0x23,
+ 0x21, 0x02, 0x00, 0x09, 0x5e, 0x23, 0x56, 0x42,
+ 0x4b, 0x60, 0x69, 0xeb, 0x2a, 0xc6, 0x2e, 0xcd,
+ 0x29, 0x28, 0xc2, 0xb8, 0x23, 0x21, 0x02, 0x00,
+ 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0xc6, 0x2e,
+ 0xd1, 0xeb, 0xcd, 0x29, 0x28, 0xca, 0xec, 0x23,
+ 0x21, 0x02, 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5,
+ 0x60, 0x69, 0xd1, 0xeb, 0xcd, 0x1a, 0x28, 0xca,
+ 0xe9, 0x23, 0x2a, 0xc6, 0x2e, 0x50, 0x59, 0xeb,
+ 0xcd, 0x29, 0x28, 0xc2, 0xec, 0x23, 0x21, 0x02,
+ 0x00, 0x09, 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0xc6,
+ 0x2e, 0xd1, 0xeb, 0xcd, 0x28, 0x28, 0xc2, 0xec,
+ 0x23, 0xc3, 0x90, 0x23, 0x21, 0x02, 0x00, 0x09,
+ 0x5e, 0x23, 0x56, 0xd5, 0x2a, 0xc6, 0x2e, 0x23,
+ 0x23, 0xd1, 0x73, 0x23, 0x72, 0x2a, 0xc6, 0x2e,
+ 0xeb, 0x21, 0x02, 0x00, 0x09, 0x73, 0x23, 0x72,
+ 0x60, 0x69, 0x22, 0xbc, 0x2e, 0x21, 0x00, 0x00,
+ 0xc9, 0xcd, 0xdc, 0x26, 0xcd, 0x1c, 0x24, 0xeb,
+ 0xc9, 0xcd, 0xdc, 0x26, 0x2a, 0x5d, 0x2b, 0x44,
+ 0x4d, 0x2a, 0x5f, 0x2b, 0xeb, 0xcd, 0x05, 0x00,
+ 0xeb, 0x6f, 0xaf, 0x67, 0xc9, 0xc5, 0x21, 0x04,
+ 0x00, 0x39, 0x4e, 0x23, 0x46, 0x23, 0x5e, 0x23,
+ 0x56, 0x6b, 0x62, 0x36, 0x00, 0x23, 0x3e, 0x0b,
+ 0x36, 0x20, 0x23, 0x3d, 0xc2, 0x40, 0x24, 0x3e,
+ 0x04, 0x36, 0x00, 0x23, 0x3d, 0xc2, 0x49, 0x24,
+ 0xeb, 0x79, 0xb0, 0xca, 0xf1, 0x24, 0x0a, 0xfe,
+ 0x20, 0xca, 0x61, 0x24, 0xfe, 0x09, 0xc2, 0x65,
+ 0x24, 0x03, 0xc3, 0x56, 0x24, 0xc5, 0x16, 0x00,
+ 0x0a, 0xcd, 0x0a, 0x25, 0xda, 0x7e, 0x24, 0xd6,
+ 0x30, 0x5f, 0x7a, 0x87, 0x87, 0x87, 0x82, 0x82,
+ 0x83, 0x57, 0x03, 0xc3, 0x68, 0x24, 0xfe, 0x2f,
+ 0xc2, 0x88, 0x24, 0x03, 0xf1, 0xc3, 0x8b, 0x24,
+ 0xc1, 0x16, 0xff, 0x03, 0x0a, 0xfe, 0x3a, 0x0b,
+ 0x3e, 0x00, 0xc2, 0xb6, 0x24, 0x0a, 0xe6, 0x7f,
+ 0xfe, 0x41, 0xda, 0xf1, 0x24, 0xfe, 0x5b, 0xd2,
+ 0xa7, 0x24, 0xd6, 0x40, 0xc3, 0xb3, 0x24, 0xfe,
+ 0x61, 0xda, 0xf1, 0x24, 0xfe, 0x7b, 0xd2, 0xf1,
+ 0x24, 0xd6, 0x60, 0x77, 0x03, 0x03, 0x23, 0x1e,
+ 0x08, 0x1c, 0x0a, 0x03, 0xfe, 0x2e, 0xca, 0xd1,
+ 0x24, 0xb7, 0xca, 0xea, 0x24, 0x1d, 0xca, 0xb9,
+ 0x24, 0xcd, 0xf8, 0x24, 0x77, 0x23, 0xc3, 0xba,
+ 0x24, 0x1d, 0x7b, 0x85, 0x6f, 0x7c, 0xce, 0x00,
+ 0x67, 0x1e, 0x03, 0x0a, 0x03, 0xb7, 0xca, 0xea,
+ 0x24, 0xcd, 0xf8, 0x24, 0x77, 0x23, 0x1d, 0xc2,
+ 0xdb, 0x24, 0x26, 0x00, 0x6a, 0x7a, 0xb7, 0xc1,
+ 0xc9, 0x21, 0xff, 0xff, 0x7c, 0xb7, 0xc1, 0xc9,
+ 0xfe, 0x2a, 0xc2, 0x01, 0x25, 0x0b, 0x3e, 0x3f,
+ 0xc9, 0xfe, 0x61, 0xd8, 0xfe, 0x7b, 0xd0, 0xd6,
+ 0x20, 0xc9, 0xfe, 0x30, 0xd8, 0xfe, 0x3a, 0xd2,
+ 0x14, 0x25, 0xb7, 0xc9, 0x37, 0xc9, 0x21, 0x02,
+ 0x00, 0x39, 0x5e, 0x23, 0x56, 0x2a, 0xf4, 0x29,
+ 0x19, 0xda, 0x3a, 0x25, 0xeb, 0x2a, 0xca, 0x2e,
+ 0x7d, 0x93, 0x7c, 0x9a, 0xda, 0x3a, 0x25, 0x2a,
+ 0xf4, 0x29, 0xeb, 0x22, 0xf4, 0x29, 0xeb, 0x7c,
+ 0xb5, 0xc9, 0x21, 0xff, 0xff, 0xaf, 0x3d, 0xc9,
+ 0x21, 0x02, 0x00, 0x39, 0x7d, 0x96, 0x5f, 0x7c,
+ 0x23, 0x9e, 0x57, 0xeb, 0x22, 0xca, 0x2e, 0xc9,
+ 0xcd, 0xdc, 0x26, 0x0e, 0x20, 0x1e, 0xff, 0xcd,
+ 0x05, 0x00, 0x6f, 0x26, 0x00, 0xb7, 0xc9, 0xcd,
+ 0xdc, 0x26, 0x0e, 0x20, 0x1e, 0xff, 0xcd, 0x05,
+ 0x00, 0x32, 0xdb, 0x2a, 0x3a, 0x5d, 0x2b, 0xfe,
+ 0xff, 0xc8, 0x0e, 0x20, 0x5f, 0xc3, 0x05, 0x00,
+ 0xcd, 0xdc, 0x26, 0x0e, 0x20, 0x3a, 0xdb, 0x2a,
+ 0x5f, 0xc3, 0x05, 0x00, 0x21, 0x05, 0x00, 0x39,
+ 0xc5, 0x01, 0xff, 0x7f, 0xc3, 0x98, 0x25, 0x21,
+ 0x07, 0x00, 0x39, 0xc5, 0x46, 0x2b, 0x4e, 0x2b,
+ 0x56, 0x2b, 0x5e, 0x2b, 0x7e, 0x2b, 0x6e, 0x67,
+ 0xeb, 0x78, 0xb1, 0xca, 0xb6, 0x25, 0x1a, 0x96,
+ 0xc2, 0xb6, 0x25, 0x1a, 0xb7, 0xca, 0xb6, 0x25,
+ 0x13, 0x23, 0x0b, 0xc3, 0xa1, 0x25, 0xc1, 0x6f,
+ 0x9f, 0x67, 0xb5, 0xc9, 0x21, 0x05, 0x00, 0x39,
+ 0x56, 0x2b, 0x5e, 0x2b, 0x7e, 0x2b, 0x6e, 0x67,
+ 0xe5, 0x1a, 0x77, 0xb7, 0xca, 0xd4, 0x25, 0x13,
+ 0x23, 0xc3, 0xc9, 0x25, 0xe1, 0x7c, 0xb5, 0xc9,
+ 0x21, 0x05, 0x00, 0x39, 0xc5, 0x01, 0xff, 0x7f,
+ 0xc3, 0xec, 0x25, 0x21, 0x07, 0x00, 0x39, 0xc5,
+ 0x46, 0x2b, 0x4e, 0x2b, 0x56, 0x2b, 0x5e, 0x2b,
+ 0x7e, 0x2b, 0x6e, 0x67, 0xe5, 0xaf, 0xbe, 0xca,
+ 0xfe, 0x25, 0x23, 0xc3, 0xf6, 0x25, 0x78, 0xb1,
+ 0xca, 0x0f, 0x26, 0x1a, 0x77, 0xb7, 0xca, 0x0f,
+ 0x26, 0x13, 0x23, 0x0b, 0xc3, 0xfe, 0x25, 0x77,
+ 0xe1, 0xc1, 0x7c, 0xb5, 0xc9, 0x21, 0x02, 0x00,
+ 0x39, 0x7e, 0x23, 0x66, 0x6f, 0x11, 0x00, 0x00,
+ 0xaf, 0xbe, 0xca, 0x2a, 0x26, 0x13, 0x23, 0xc3,
+ 0x21, 0x26, 0xeb, 0x7d, 0xb4, 0xc9, 0xc5, 0x21,
+ 0x04, 0x00, 0x39, 0x5e, 0x23, 0x56, 0x23, 0x4e,
+ 0x23, 0x46, 0x23, 0x6e, 0xeb, 0x78, 0xb1, 0xca,
+ 0x48, 0x26, 0x73, 0x23, 0x0b, 0xc3, 0x3d, 0x26,
+ 0xc1, 0xc9, 0xc5, 0x21, 0x09, 0x00, 0x39, 0x46,
+ 0x2b, 0x4e, 0x2b, 0x56, 0x2b, 0x5e, 0x2b, 0x7e,
+ 0x2b, 0x6e, 0x67, 0xba, 0xda, 0x86, 0x26, 0xc2,
+ 0x6a, 0x26, 0x7d, 0xbb, 0xda, 0x86, 0x26, 0xca,
+ 0x9a, 0x26, 0x09, 0xeb, 0x09, 0xaf, 0xc6, 0x03,
+ 0xea, 0x7a, 0x26, 0xeb, 0x1b, 0x2b, 0xed, 0xb8,
+ 0xc1, 0xc9, 0x1b, 0x2b, 0x1a, 0x77, 0x0b, 0x78,
+ 0xb1, 0xc2, 0x7a, 0x26, 0xc1, 0xc9, 0xaf, 0xc6,
+ 0x03, 0xea, 0x90, 0x26, 0xed, 0xb0, 0xc1, 0xc9,
+ 0x7e, 0x12, 0x13, 0x23, 0x0b, 0x78, 0xb1, 0xc2,
+ 0x90, 0x26, 0xc1, 0xc9, 0xe9, 0xe1, 0xc5, 0x44,
+ 0x4d, 0x21, 0x00, 0x00, 0x39, 0xeb, 0x39, 0xf9,
+ 0xd5, 0xdd, 0xe5, 0xfd, 0xe5, 0x60, 0x69, 0xcd,
+ 0x9c, 0x26, 0xfd, 0xe1, 0xdd, 0xe1, 0xeb, 0xe1,
+ 0xf9, 0xc1, 0xeb, 0x7c, 0xb5, 0xc9, 0xe1, 0xc5,
+ 0x44, 0x4d, 0x21, 0x00, 0x00, 0x39, 0xeb, 0x39,
+ 0xf9, 0xd5, 0x21, 0xb6, 0x26, 0xe5, 0x60, 0x69,
+ 0xe9, 0x7e, 0x12, 0x23, 0x13, 0x0b, 0x78, 0xb1,
+ 0xc2, 0xd1, 0x26, 0xc9, 0xd1, 0x21, 0x02, 0x00,
+ 0x39, 0xaf, 0xc6, 0x03, 0xea, 0xeb, 0x26, 0xdd,
+ 0xe5, 0xfd, 0xe5, 0xc5, 0xd5, 0x11, 0x5d, 0x2b,
+ 0x06, 0x06, 0x7e, 0x12, 0x23, 0x13, 0x05, 0xc2,
+ 0xf2, 0x26, 0x21, 0xff, 0x26, 0xe3, 0xe9, 0xc1,
+ 0xaf, 0xc6, 0x03, 0xea, 0x0a, 0x27, 0xfd, 0xe1,
+ 0xdd, 0xe1, 0x7c, 0xb5, 0xc9, 0xc5, 0x44, 0x4d,
+ 0x21, 0x00, 0x00, 0x3e, 0x10, 0x29, 0xeb, 0x29,
+ 0xeb, 0xd2, 0x1d, 0x27, 0x09, 0x3d, 0xc2, 0x15,
+ 0x27, 0xc1, 0x7d, 0xb4, 0xc9, 0xeb, 0x7b, 0xe6,
+ 0x1f, 0x5f, 0xca, 0x4c, 0x27, 0x7c, 0xb4, 0xf2,
+ 0x57, 0x27, 0x7c, 0x37, 0x1f, 0x67, 0x7d, 0x1f,
+ 0x6f, 0x1d, 0xc2, 0x32, 0x27, 0xb4, 0xc9, 0xeb,
+ 0x7b, 0xe6, 0x1f, 0x5f, 0xca, 0x4c, 0x27, 0x29,
+ 0x1d, 0xc2, 0x47, 0x27, 0x7d, 0xb4, 0xc9, 0xeb,
+ 0x7b, 0xe6, 0x1f, 0x5f, 0xca, 0x4c, 0x27, 0x7c,
+ 0xb7, 0x1f, 0x67, 0x7d, 0x1f, 0x6f, 0x1d, 0xc2,
+ 0x57, 0x27, 0xb4, 0xc9, 0x7c, 0xa2, 0x67, 0x7d,
+ 0xa3, 0x6f, 0xb4, 0xc9, 0x7c, 0x2f, 0x67, 0x7d,
+ 0x2f, 0x6f, 0xb4, 0xc9, 0x7c, 0xb2, 0x67, 0x7d,
+ 0xb3, 0x6f, 0xb4, 0xc9, 0x7c, 0xaa, 0x67, 0x7d,
+ 0xab, 0x6f, 0xb4, 0xc9, 0x7c, 0xb5, 0xca, 0xa5,
+ 0x27, 0xc3, 0x96, 0x27, 0x7d, 0x93, 0xc2, 0x96,
+ 0x27, 0x7c, 0x92, 0xca, 0xa5, 0x27, 0x21, 0x00,
+ 0x00, 0xaf, 0xc9, 0x7d, 0x93, 0xc2, 0xa5, 0x27,
+ 0x7c, 0x92, 0xca, 0x96, 0x27, 0x21, 0x01, 0x00,
+ 0x7d, 0xb4, 0xc9, 0xeb, 0x7c, 0xaa, 0xfa, 0xbe,
+ 0x27, 0x7d, 0x93, 0x7c, 0x9a, 0x3f, 0x3e, 0x00,
+ 0xce, 0x00, 0x6f, 0x26, 0x00, 0xc9, 0x7a, 0x07,
+ 0xe6, 0x01, 0x6f, 0x26, 0x00, 0xc9, 0xeb, 0x7c,
+ 0xaa, 0xfa, 0xd8, 0x27, 0x7d, 0x93, 0x7c, 0x9a,
+ 0x3e, 0x00, 0xce, 0x00, 0x6f, 0x26, 0x00, 0xc9,
+ 0x7c, 0x07, 0xe6, 0x01, 0x6f, 0x26, 0x00, 0xc9,
+ 0x7d, 0x2f, 0x6f, 0x7c, 0x2f, 0x67, 0x23, 0x7d,
+ 0xb4, 0xc9, 0xeb, 0x7d, 0x93, 0x6f, 0x7c, 0x9a,
+ 0x67, 0xb5, 0xc9, 0xeb, 0xe1, 0xc5, 0x42, 0x4b,
+ 0x5e, 0x23, 0x56, 0x1b, 0x7a, 0xb7, 0xfa, 0x13,
+ 0x28, 0x23, 0x79, 0xbe, 0xca, 0x0d, 0x28, 0x23,
+ 0x23, 0x23, 0xc3, 0xfb, 0x27, 0x23, 0x78, 0xbe,
+ 0xc2, 0x08, 0x28, 0x23, 0x7e, 0x23, 0x66, 0x6f,
+ 0xc1, 0xe9, 0xeb, 0x7d, 0x93, 0x7c, 0x9a, 0x3e,
+ 0x00, 0x3f, 0xce, 0x00, 0x6f, 0x26, 0x00, 0xc9,
+ 0xeb, 0x7d, 0x93, 0x7c, 0x9a, 0x3e, 0x00, 0xce,
+ 0x00, 0x6f, 0x26, 0x00, 0xc9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x05,
+ 0xb4, 0x05, 0xdd, 0x05, 0x06, 0x06, 0x42, 0xd6,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00,
+ 0x00, 0x00, 0x00, 0x72, 0x2b, 0x00, 0x02, 0x00,
+ 0x77, 0x00, 0x00, 0x01, 0x03, 0x77, 0x2b, 0x00,
+ 0x02, 0x03, 0x61, 0x00, 0x00, 0x01, 0x09, 0x61,
+ 0x2b, 0x00, 0x02, 0x09, 0x78, 0x00, 0x00, 0x01,
+ 0x05, 0x78, 0x2b, 0x00, 0x02, 0x05, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x86, 0x29, 0x01, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x00, 0x01, 0x00, 0xe5, 0x31, 0xd2, 0x32,
+ 0xd2, 0x2e, 0x07, 0x03, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xce, 0x36, 0x00, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x01, 0x00, 0x8e, 0x15, 0x02, 0x00, 0x00, 0x02,
+ 0x01, 0x00, 0x8e, 0x15, 0x02, 0x00, 0x00, 0x02,
+ 0x01, 0x00, 0x8e, 0x15, 0x02, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x5d, 0x19, 0x62, 0x2c, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x15, 0x00, 0x00, 0x0e, 0x10,
+ 0x02, 0x02, 0x01, 0x00, 0x8e, 0x15, 0x00, 0x03,
+ 0x00, 0x00, 0x8e, 0x15, 0x03, 0x00, 0x00, 0x00,
+ 0x8e, 0x15, 0x01, 0x01, 0x00, 0x01, 0xef, 0x17,
+ 0x98, 0x15, 0x70, 0x2a, 0x02, 0x00, 0x9d, 0x15,
+ 0x70, 0x2a, 0x02, 0x00, 0xa2, 0x15, 0x76, 0x2a,
+ 0x05, 0x00, 0xa7, 0x15, 0x76, 0x2a, 0x05, 0x00,
+ 0xac, 0x15, 0x76, 0x2a, 0x05, 0x00, 0xb1, 0x15,
+ 0x76, 0x2a, 0x05, 0x00, 0xb6, 0x15, 0x76, 0x2a,
+ 0x04, 0x00, 0xbb, 0x15, 0x76, 0x2a, 0x04, 0x00,
+ 0xc0, 0x15, 0x7c, 0x2a, 0x03, 0x00, 0xc5, 0x15,
+ 0x7c, 0x2a, 0x03, 0x00, 0x00, 0x00, 0x82, 0x2a,
+ 0x00, 0x00, 0x7e, 0x15, 0xd8, 0x19, 0x6f, 0x1b,
+ 0x32, 0x1c, 0x0a, 0x7e, 0x15, 0xcf, 0x1c, 0xef,
+ 0x1e, 0xef, 0x1e, 0x00, 0x00, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x90, 0x40, 0x40,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x0c, 0x0c, 0x0c,
+ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x40,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x09, 0x09,
+ 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x40, 0x40, 0x40, 0x40, 0x01, 0x40, 0x0a, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+ 0x40, 0x40, 0x40, 0x40, 0x20, 0xb6, 0x26, 0xeb,
+ 0xd5, 0x2e, 0x2a, 0x00, 0x94, 0x29, 0x00, 0x00,
+ 0x00, 0x00, 0x15, 0xd7, 0x06, 0x00, 0x01, 0x00,
+ 0x30, 0x00, 0x10, 0x27, 0x01, 0x00, 0x01, 0x00,
+ 0x01, 0x00, 0x43, 0xd6, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0xd2, 0x2e, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfd, 0x14, 0xd5, 0x2b, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x20, 0x53, 0x54, 0x44,
+ 0x4c, 0x49, 0x42, 0x2e, 0x48, 0x00, 0x4d, 0x01,
+ 0x00, 0x00, 0x34, 0x04, 0x00, 0x05, 0x00, 0x06,
+ 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x4d, 0x59, 0x44, 0x55,
+ 0x4d, 0x50, 0x20, 0x20, 0x43, 0x4f, 0x4d, 0x00,
+ 0x00, 0x00, 0x3b, 0x0a, 0x00, 0x0b, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x42, 0x01,
+ 0x00, 0x00, 0x80, 0x10, 0x00, 0x11, 0x00, 0x12,
+ 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16,
+ 0x00, 0x17, 0x00, 0x00, 0x43, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x42, 0x02,
+ 0x00, 0x00, 0x15, 0x18, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x2e, 0x2a, 0x82, 0x2a, 0x03, 0x00,
+ 0x02, 0x00, 0x00, 0x44, 0x55, 0x4d, 0x50, 0x43,
+ 0x4f, 0x4d, 0x20, 0x48, 0x20, 0x20, 0x04, 0x00,
+ 0x00, 0x28, 0x80, 0x02, 0x81, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x27, 0x28, 0x02, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x62, 0x2c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xd2, 0x32, 0xb8, 0x2e, 0x00, 0x00,
+ 0x00, 0x00, 0xb8, 0x2e, 0x01, 0x01, 0xce, 0x32,
+ 0x00, 0x00, 0x06, 0xd0, 0xce, 0x2e, 0x01, 0x01,
+ 0x00, 0x00, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78,
+ 0x30, 0x30, 0x2c, 0x20, 0x0d, 0x0a, 0x09, 0x30,
+ 0x78, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30,
+ 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x38, 0x2c,
+ 0x20, 0x30, 0x78, 0x32, 0x65, 0x2c, 0x20, 0x30,
+ 0x78, 0x30, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x30,
+ 0x31, 0x2c, 0x20, 0x30, 0x78, 0x63, 0x65, 0x2c,
+ 0x20, 0x30, 0x78, 0x33, 0x32, 0x2c, 0x20, 0x0d,
+ 0x0a, 0x09, 0x30, 0x78, 0x30, 0x30, 0x2c, 0x20,
+ 0x30, 0x78, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78,
+ 0x30, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x64, 0x30,
+ 0x2c, 0x20, 0x30, 0x78, 0x63, 0x65, 0x2c, 0x20,
+ 0x30, 0x78, 0x32, 0x65, 0x2c, 0x20, 0x30, 0x78,
+ 0x30, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x31,
+ 0x2c, 0x20, 0x0d, 0x0a, 0x09, 0x30, 0x78, 0x30,
+ 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c,
+ 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30,
+ 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x32,
+ 0x63, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x30, 0x2c,
+ 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30,
+ 0x78, 0x37, 0x38, 0x2c, 0x20, 0x0d, 0x0a, 0x09,
+ 0x30, 0x20, 0x30, 0x78, 0x32, 0x30, 0x2c, 0x20,
+ 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30, 0x78,
+ 0x37, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x32,
+ 0x2c, 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20,
+ 0x30, 0x78, 0x32, 0x63, 0x2c, 0x20, 0x30, 0x78,
+ 0x32, 0x30, 0x2c, 0x20, 0x0d, 0x0a, 0x09, 0x30,
+ 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x37,
+ 0x38, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x33, 0x2c,
+ 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30,
+ 0x78, 0x32, 0x63, 0x2c, 0x20, 0x30, 0x78, 0x32,
+ 0x30, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c,
+ 0x20, 0x30, 0x78, 0x37, 0x38, 0x2c, 0x20, 0x0d,
+ 0x0a, 0x09, 0x30, 0x78, 0x33, 0x37, 0x2c, 0x20,
+ 0x30, 0x78, 0x33, 0x38, 0x2c, 0x20, 0x30, 0x78,
+ 0x32, 0x63, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x30,
+ 0x2c, 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20,
+ 0x30, 0x78, 0x37, 0x38, 0x2c, 0x20, 0x30, 0x78,
+ 0x33, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x32,
+ 0x2c, 0x20, 0x0d, 0x0a, 0x09, 0x30, 0x78, 0x32,
+ 0x63, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x30, 0x2c,
+ 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30,
+ 0x78, 0x37, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x33,
+ 0x33, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c,
+ 0x20, 0x30, 0x78, 0x32, 0x63, 0x2c, 0x20, 0x30,
+ 0x20, 0x0d, 0x0a, 0x09, 0x30, 0x78, 0x32, 0x30,
+ 0x2c, 0x20, 0x30, 0x78, 0x30, 0x64, 0x2c, 0x20,
+ 0x30, 0x78, 0x30, 0x61, 0x2c, 0x20, 0x30, 0x78,
+ 0x30, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x30,
+ 0x2c, 0x20, 0x30, 0x78, 0x37, 0x38, 0x2c, 0x20,
+ 0x30, 0x78, 0x33, 0x32, 0x2c, 0x20, 0x30, 0x78,
+ 0x33, 0x30, 0x2c, 0x20, 0x0d, 0x0a, 0x09, 0x30,
+ 0x78, 0x32, 0x63, 0x2c, 0x20, 0x30, 0x78, 0x32,
+ 0x30, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x30, 0x2c,
+ 0x20, 0x30, 0x78, 0x37, 0x38, 0x2c, 0x20, 0x30,
+ 0x78, 0x33, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x36,
+ 0x34, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x63, 0x2c,
+ 0x20, 0x30, 0x78, 0x32, 0x30, 0x2c, 0x20, 0x0d,
+ 0x0a, 0x09, 0x30, 0x78, 0x33, 0x30, 0x2c, 0x20,
+ 0x30, 0x78, 0x37, 0x38, 0x2c, 0x20, 0x30, 0x78,
+ 0x33, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x31,
+ 0x2c, 0x20, 0x30, 0x78, 0x32, 0x63, 0x2c, 0x20,
+ 0x30, 0x78, 0x32, 0x30, 0x2c, 0x20, 0x30, 0x78,
+ 0x33, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x38,
+ 0x2c, 0x20, 0x0d, 0x0a, 0x09, 0x30, 0x78, 0x33,
+ 0x30, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x39, 0x2c,
+ 0x20, 0x30, 0x78, 0x32, 0x63, 0x2c, 0x20, 0x30,
+ 0x78, 0x32, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x33,
+ 0x30, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x38, 0x33,
+ 0x38, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x33, 0x2c,
+
+};
+
\ No newline at end of file
diff --git a/Apps/crossdev/DUMPMAC.ASM b/Apps/crossdev/DUMPMAC.ASM
new file mode 100644
index 00000000..103e7c82
--- /dev/null
+++ b/Apps/crossdev/DUMPMAC.ASM
@@ -0,0 +1,108 @@
+; dumpmac.asm 2/1/2012 dwg - dump macro, declaration and implementation
+
+ maclib portab
+ maclib globals
+ maclib hardware
+ maclib z80
+ maclib cpmbdos
+ maclib printers
+
+ cseg
+
+; e=char on entry
+ public x$pr$vis
+x$pr$vis:
+ enter
+ lxi h,x$visibool
+ mvi d,0
+ dad d
+ mov a,m
+ cpi 0
+ jz do$dot
+ mvi c,2
+ call BDOS
+ jmp x$pr$fini
+do$dot:
+ conout '.'
+x$pr$fini:
+ leave
+ ret
+
+ public x$dump
+x$dump: shld x$dump$tmp
+ call pr$h$word
+ conout ':'
+ conout ' '
+ mvi b,16
+x$d$lp1:
+ mov a,m
+ inx h
+ xchg
+ mov l,a
+ call pr$h$byte
+ conout ' '
+ xchg
+ dcr b
+ jnz x$d$lp1
+ conout ' '
+ conout ' '
+ mvi b,16
+ lhld x$dump$tmp
+x$d$lp2:
+ mov a,m
+ inx h
+ mov e,a
+ call x$pr$vis
+ dcr b
+ jnz x$d$lp2
+ conout CR
+ conout LF
+ lhld x$dump$tmp
+ ret
+
+
+; display a number of lines of sixteen bytes in hex with leading address
+; and ascii
+ public x$dump$multi
+x$dump$multi:
+ push h ; save display address in case x$dump changes it
+ call x$dump ; call actual dump routine for 16 bytes
+ pop h ; restore display address
+ lxi d,16 ; get ready to increment it by 16 bytes
+ dad d ; here we go, HL = new load address
+ dcr c ; decrement line counter
+ jnz x$dump$multi ; do more as necessary
+ ret
+
+
+ dseg
+
+x$dump$tmp ds 2
+
+ public x$visibool
+x$visibool:
+; 0 1 2 3 4 5 6 7 8 9 A B C D E F
+; - - - - - - - - - - - - - - - -
+vb$00 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$10 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$20 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; "#$%&'()*+,-./
+vb$30 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;0123456789:;<=>?
+vb$40 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;@ABCDEFGHIJKLMNO
+vb$50 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;PQRSTUVWXYZ[\]^_
+vb$60 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;`abcdefghijklmno
+vb$70 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 ;pqrstuvwxyz{|}~
+vb$80 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$90 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$a0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$b0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$c0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$d0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$e0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+vb$f0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+
+; eof - dumpmac.asm
+
+
+
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/EDITOR.ASM b/Apps/crossdev/EDITOR.ASM
new file mode 100644
index 00000000..89cab224
--- /dev/null
+++ b/Apps/crossdev/EDITOR.ASM
@@ -0,0 +1,367 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ PUBLIC vdaini_
+vdaini_: lxi d,.2
+ call csave
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16384
+ CALL .or
+ SHLD hregbc_
+ LXI H,10-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD hregde_
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD hreghl_
+ CALL diagnose_
+ LDA hrega_
+ MOV L,A
+ MVI H,0
+ RET
+.2 EQU 0
+ PUBLIC bitlook_
+bitlook_: lxi d,.3
+ call csave
+ LXI H,-32768
+ XCHG
+ LXI H,2-.3
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,0-.3
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .5
+.4:
+ LXI H,0-.3
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.5:
+ LXI H,0-.3
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,256
+ CALL .lt
+ JZ .6
+ LXI H,0-.3
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-2-.3
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .8
+.7:
+ LXI H,-2-.3
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.8:
+ LXI H,-2-.3
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,8
+ CALL .lt
+ JZ .9
+ LXI H,2-.3
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+16
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .7
+.9:
+ LXI H,.1+24
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .4
+.6:
+ RET
+.3 EQU -6
+.1:
+ DB 97,115,99,105,105,32,61,32,48,120,37,48,50,120,32
+ DB 0,48,120,37,48,50,120,32,0,10,0
+ PUBLIC vdaqry_
+vdaqry_: lxi d,.11
+ call csave
+ LXI H,8-.11
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16640
+ CALL .or
+ SHLD hregbc_
+ LXI H,10-.11
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD hreghl_
+ CALL diagnose_
+ LDA hrega_
+ MOV L,A
+ MVI H,0
+ RET
+.11 EQU 0
+ PUBLIC flip_
+flip_: lxi d,.12
+ call csave
+ LXI H,-32768
+ PUSH H
+ LXI H,64
+ PUSH H
+ CALL vdaqry_
+ POP D
+ POP D
+ XCHG
+ LXI H,-3-.12
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-32768
+ XCHG
+ LXI H,2-.12
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,-1-.12
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .14
+.13:
+ LXI H,-1-.12
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.14:
+ LXI H,-1-.12
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2048
+ CALL .lt
+ JZ .15
+ LXI H,2-.12
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ MOV E,M
+ LXI H,1-.12
+ DAD SP
+ MOV M,E
+ LXI H,1-.12
+ DAD SP
+ MOV E,M
+ MVI D,0
+ LXI H,255
+ CALL .xr
+ XCHG
+ LXI H,1-.12
+ DAD SP
+ MOV M,E
+ LXI H,1-.12
+ DAD SP
+ MOV E,M
+ PUSH D
+ LXI H,4-.12
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ POP D
+ MOV M,E
+ LXI H,2-.12
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .13
+.15:
+ LXI H,-32768
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,64
+ PUSH H
+ CALL vdaini_
+ POP D
+ POP D
+ POP D
+ RET
+.12 EQU -7
+ PUBLIC main_
+main_: lxi d,.16
+ call csave
+ LXI H,1
+ XCHG
+ LXI H,2-.16
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+.17:
+ LXI H,1
+ XCHG
+ LXI H,2-.16
+ DAD SP
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ CALL .eq
+ JZ .18
+ LXI H,1
+ SHLD dregbc_
+ CALL bdoscall_
+ LDA drega_
+ MOV L,A
+ MVI H,0
+ JMP .19
+.21:
+ CALL flip_
+ JMP .20
+.22:
+ LXI H,0
+ XCHG
+ LXI H,2-.16
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .20
+.23:
+ LXI H,7
+ PUSH H
+ LXI H,.10+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .20
+.19:
+ CALL .swt
+ DW 2
+ DW 3,.22
+ DW 102,.21
+ DW .23
+.20:
+ JMP .17
+.18:
+ CALL flip_
+ RET
+.16 EQU -2
+.10:
+ DB 37,99,0
+ extrn printf_
+ extrn bdoscall_
+ extrn dregbc_
+ extrn drega_
+ extrn diagnose_
+ extrn hreghl_
+ extrn hregde_
+ extrn hregbc_
+ extrn hrega_
+ extrn .or
+ extrn .xr
+ extrn .eq
+ extrn .lt
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/EDITOR.C b/Apps/crossdev/EDITOR.C
new file mode 100644
index 00000000..7f3d0d15
--- /dev/null
+++ b/Apps/crossdev/EDITOR.C
@@ -0,0 +1,103 @@
+/* editor.c 11/18/2012 dwg - */
+
+
+#include "std.h"
+#include "applvers.h"
+#include "diagnose.h"
+#include "cpmbdos.h"
+#include "cpmbios.h"
+#include "bdoscall.h"
+
+
+#define VDA_N8 4
+#define VDAINI 0x40
+#define VDAQRY 0x41
+#define VDARES 0x42
+#define VDASCS 0x43
+
+
+int vdaini(devunit,vidmode,bitmapp)
+ unsigned int devunit;
+ unsigned int vidmode;
+ unsigned int bitmapp;
+{
+ hregbc = (VDAINI << 8) | devunit;
+ hregde = vidmode;
+ hreghl = bitmapp;
+ diagnose();
+ return hrega;
+}
+
+
+bitlook()
+{
+ unsigned char *p;
+ int ascii,row;
+
+ p = 0x8000;
+ for(ascii=0;ascii<256;ascii++) {
+ printf("ascii = 0x%02x ",ascii);
+ for(row=0l;row<8;row++) {
+ printf("0x%02x ",*p++);
+ }
+ printf("\n");
+ }
+}
+
+
+int vdaqry(devunit,bitmapp)
+ unsigned int devunit;
+ unsigned int bitmapp;
+{
+ hregbc = (VDAQRY << 8) | devunit;
+ hreghl = bitmapp;
+ diagnose();
+ return hrega;
+}
+
+
+flip()
+{
+ unsigned char * p;
+ unsigned char byte;
+ int offs;
+ int retcode;
+
+ retcode = vdaqry(VDA_N8 << 4,0x8000);
+
+ p = 0x8000;
+ for(offs=0;offs<256*8;offs++) {
+ byte = *p;
+ byte = byte ^ 255;
+ *p = byte;
+ p++;
+ }
+
+/* bitlook(); */
+
+ vdaini(VDA_N8 << 4, 0, 0x8000);
+}
+
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ int bRunning;
+
+ bRunning = 1;
+ while(1 == bRunning) {
+
+ crtlc (
+ dregbc = 1;
+ bdoscall();
+ switch(drega) {
+ case 'f': flip(); break;
+ case 3: bRunning = 0; break;
+ default: printf("%c",7); break;
+ }
+ }
+
+ flip();
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/EDITOR.SUB b/Apps/crossdev/EDITOR.SUB
new file mode 100644
index 00000000..9b86c7f7
--- /dev/null
+++ b/Apps/crossdev/EDITOR.SUB
@@ -0,0 +1,6 @@
+cc editor
+as editor
+as bdoscall
+as diagnose
+ln editor.o bdoscall.o diagnose.o -lc
+
\ No newline at end of file
diff --git a/Apps/crossdev/EXTRACT.SUB b/Apps/crossdev/EXTRACT.SUB
new file mode 100644
index 00000000..f069ac44
--- /dev/null
+++ b/Apps/crossdev/EXTRACT.SUB
@@ -0,0 +1 @@
+nulu submits.lbr -e $1.sub -x
\ No newline at end of file
diff --git a/Apps/crossdev/FAST.SUB b/Apps/crossdev/FAST.SUB
new file mode 100644
index 00000000..bc12d4ed
--- /dev/null
+++ b/Apps/crossdev/FAST.SUB
@@ -0,0 +1,4 @@
+cc remote
+as remote
+ln remote.o bdoscall.o ctermcap.o n8chars.o tms9918.o diagnose.o -lc
+
\ No newline at end of file
diff --git a/Apps/crossdev/FCNTL.H b/Apps/crossdev/FCNTL.H
new file mode 100644
index 00000000..7918b125
--- /dev/null
+++ b/Apps/crossdev/FCNTL.H
@@ -0,0 +1,8 @@
+#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
+
\ No newline at end of file
diff --git a/Apps/crossdev/FFGETLU.LIB b/Apps/crossdev/FFGETLU.LIB
new file mode 100644
index 00000000..24dad41d
--- /dev/null
+++ b/Apps/crossdev/FFGETLU.LIB
@@ -0,0 +1,12 @@
+; ffsetlu.lib 1/24/2012 dwg -
+ffgetlu macro
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK
+ lxi d,16+2
+ dad d
+ mov a,m
+ endm
+; eof - ffsetlu
+
\ No newline at end of file
diff --git a/Apps/crossdev/FFHASLU.LIB b/Apps/crossdev/FFHASLU.LIB
new file mode 100644
index 00000000..e9e84b31
--- /dev/null
+++ b/Apps/crossdev/FFHASLU.LIB
@@ -0,0 +1,25 @@
+; ffhaslu.lib 1/22/2012 dwg - macro to detect drive with logical unit support
+
+ffhaslu macro
+ local ret$false,fini
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK
+ lxi d,16 ; offset to end of DPH
+ dad d ; calc offset of 1st signature byte
+ mov a,m ; pick up first sig byte which s/b 'L'
+ cpi 'L'
+ jnz ret$false ; if it wasn't, indicate to caller no LU
+ inx h ; bump ptr to 2nd signature byte
+ mov a,m ; pick up second sig byte which s/b 'U'
+ cpi 'U'
+ jnz ret$false ; if it wasn't, indicate to caller no LU
+ mvi a,TRUE ; otherwise indicate presence of LU support
+ jmp fini ; finish up macro
+ret$false:
+ mvi a,FALSE ; prepare negative response for caller
+fini:
+ endm
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/FFNUMLU.LIB b/Apps/crossdev/FFNUMLU.LIB
new file mode 100644
index 00000000..1f1048a5
--- /dev/null
+++ b/Apps/crossdev/FFNUMLU.LIB
@@ -0,0 +1,13 @@
+; ffnumlu.lib 1/22/2012 dwg - macro to get number of logical units
+
+ffnumlu macro
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK
+ lxi d,16+2+2 ; offset to end of DPH
+ dad d ; calc offset of 1st signature byte
+ mov a,m
+ endm
+
+; eof - ffnumlu.lib
diff --git a/Apps/crossdev/FFSETLU.LIB b/Apps/crossdev/FFSETLU.LIB
new file mode 100644
index 00000000..fe1db586
--- /dev/null
+++ b/Apps/crossdev/FFSETLU.LIB
@@ -0,0 +1,22 @@
+; ffsetlu.lib 2/12/2012 dwg - review for use in superfmt
+; ffsetlu.lib 1/24/2012 dwg -
+
+; enter with desired LU in A reg
+ffsetlu macro
+ enter
+ push psw
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK ; uses c parameter (drive)
+ lxi d,16+2
+ dad d
+ pop psw
+ mov m,a ; put slice into CURRENT
+ mvi c,13
+ call BDOS
+ leave
+ endm
+
+; eof - ffsetlu
+
\ No newline at end of file
diff --git a/Apps/crossdev/FINDFILE.ASM b/Apps/crossdev/FINDFILE.ASM
new file mode 100644
index 00000000..d8ceb21a
--- /dev/null
+++ b/Apps/crossdev/FINDFILE.ASM
@@ -0,0 +1,1088 @@
+; findfile.asm 7/21/2012 dwg - added keystroke scan terminate
+; findfile.asm 7/19/2012 dwg - for 2.0.0.0 B22
+; findfile.asm 2/20.2012 dwg - add RESET$DISK before exit for ZDOS
+; findfile.asm 2/17/2012 dwg - review for release 1.5.1.0
+; findfile.asm 2/11/2012 dwg - make ident compliant
+; findfile.asm 1/30/2012 dwg - use new do$start and do$end macros
+; findfile.asm 1/22/2012 dwg - find a file on any slice
+
+; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
+;
+; This file is part of NuBiosDWG and is free software: you can
+; redistribute it and/or modify it under the terms of the GNU
+; General Public License as published by the Free Software Foundation,
+; either version 3 of the License, or (at your option) any later version.
+; This file is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+; You should have received a copy of the GNU General Public License
+; along with it. If not, see .
+
+ maclib portab
+ maclib globals
+ maclib stdlib
+ maclib cpmbios
+ maclib cpmbdos
+ maclib bioshdr
+ maclib printers
+ maclib banner
+ maclib terminal
+ maclib applvers
+ maclib version
+; maclib ffhaslu
+; maclib ffnumlu
+; maclib ffsetlu
+; maclib ffgetlu
+; maclib z80
+; maclib memory
+; maclib cpmappl
+; maclib identity
+
+; identity.lib 2/19/2012 dwg - add ify macro
+; identity.lib 2/17/2012 dwg - Program Identity Declarations
+
+ extrn x$ident
+
+ident macro file1fcb
+ lxi h,file1fcb
+ call x$ident
+ endm
+
+ify macro progname,bool
+ local done
+ local file
+ local fini
+ ident file
+ jmp fini
+ newfcb file,0,progname
+fini: mvi a,bool
+ cpi TRUE
+ jnz done
+ conout CR
+ conout LF
+done:
+ endm
+
+
+identx macro file1fcb
+ local openok
+ local identend
+
+ local ldrive,lcolon,lname,ldot,lext,lterm
+
+ mvi c,FOPEN
+ lxi d,file1fcb
+ call BDOS
+ cpi 255
+ jnz openok
+
+ memcpy lname,file1fcb+1,8
+ mvi a,','
+ sta ldot
+ memcpy lext,file1fcb+9,3
+ mvi a,'$'
+ sta lterm
+ print lname
+ printf ' -- File Not Found'
+ jmp identend
+openok:
+
+ mvi c,SETDMA
+ lxi d,buffer
+ call BDOS
+
+ mvi c,READSEQ
+ lxi d,file1fcb
+ call BDOS
+
+ mvi c,FCLOSE
+ lxi d,file1fcb
+ call BDOS
+
+ lxi d,d$prog
+ mvi c,9
+ call BDOS
+
+ conout ','
+ conout ' '
+ lda p$rmj
+ mov l,a
+ mvi h,0
+ call pr$d$word
+ conout '.'
+ lda p$rmn
+ mov l,a
+ call pr$d$word
+ conout '.'
+ lda p$rup
+ mov l,a
+ call pr$d$word
+ conout '.'
+ lda p$rtp
+ mov l,a
+ call pr$d$word
+ conout ','
+ conout ' '
+
+ lda p$mon
+ mov l,a
+ call pr$d$word
+ conout '/'
+ lda p$day
+ mov l,a
+ call pr$d$word
+ conout '/'
+ lhld p$year
+ call pr$d$word
+ conout ','
+ conout ' '
+
+ lxi d,d$prod
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$orig
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$ser
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$name
+ mvi c,9
+ call BDOS
+ jmp identend
+
+ldrive ds 1
+lcolon ds 1
+lname ds 8
+ldot ds 1
+lext ds 3
+lterm ds 1
+
+identend:
+ endm
+
+idata macro
+ jmp around$bandata
+argv dw prog,dat,prod,orig,ser,myname,0
+prog db 'IDENT.COM $'
+ date
+ serial
+ product
+ originator
+ oriname
+uuid db '777A67C2-4A92-42D4-80FE-C96FD6483BD2$'
+ db 'buffer-->'
+ public buffer,p$start,p$hexrf,p$sig
+ public p$rmj,p$rmn,p$rup,p$rtp
+ public p$mon,p$day,p$year
+buffer ds 1
+p$start ds 2
+p$hexrf ds 16
+p$sig ds 2
+p$rmj ds 1
+p$rmn ds 1
+p$rup ds 1
+p$rtp ds 1
+p$mon ds 1
+p$day ds 1
+p$year ds 2
+p$argv ds 2
+p$e5 ds 1
+p$pr$st ds 2
+p$code1 ds 3 ; begin: lxi h,0
+p$code2 ds 1 ; dad sp
+p$code3 ds 3 ; shld pre$stk
+p$code4 ds 3 ; lxi sp,stack$top
+p$code5 ds 1 ; nop
+p$code6 ds 3 ; jmp around$bandata
+p$prog ds 2 ; dw prog
+p$dat ds 2 ; dw dat
+p$prod ds 2 ; dw prod
+p$orig ds 2 ; dw orig
+p$ser ds 2 ; dw ser
+p$nam ds 2 ; dw nam
+p$term ds 2 ; dw 0
+d$prog ds 8+1+3+1 ; db '12345678.123$'
+d$date ds 2+1+2+1+4+1 ; db ' 2/11/2012$'
+d$ser ds 6+1 ; db '654321$'
+d$prod ds 5+1 ; db 'CPM80$'
+d$orig ds 3+1 ; db 'DWG$'
+d$name ds 1+7+1+1+1+1+7+1 ; db ' Douglas W. Goodall$'
+d$uuid ds 37 ; unique user identification
+d$term2 ds 1 ; can be set to zero or dollar sign
+p$len equ $-buffer
+p$rsvd ds 128-p$len
+ db '<--buffer'
+crlf db CR,LF,'$'
+around$bandata:
+
+ endm
+
+; eof - identity.lib
+
+
+
+; cpmappl.lib 2/10/2012 dwg - begin 1.6 development
+; cpmappl.lib 2/04/2012 dwg - fix typo mov becomes mvi
+; cpmappl.lib 2/ 2/2012 dwg - initial version
+
+;
+; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
+;
+; This file is part of NuBiosDWG and is free software: you can
+; redistribute it and/or modify it under the terms of the GNU
+; General Public License as published by the Free Software Foundation,
+; either version 3 of the License, or (at your option) any later version.
+; This file is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+; You should have received a copy of the GNU General Public License
+; along with it. If not, see .
+;
+
+do$start macro
+
+start: jmp begin
+
+ public hexref
+hexref db '0123456789ABCDEF'
+
+ public id$sig,id$rmj,id$rmn,id$rup,id$rtp,id$mon,id$day,id$yr
+id$sig db 'ID'
+id$rmj db A$RMJ
+id$rmn db A$RMN
+id$rup db A$RUP
+id$rtp db A$RTP
+id$mon db A$MONTH
+id$day db A$DAY
+id$yr dw A$YEAR
+id$argv dw argv
+ db 0e5h
+
+
+ public pre$stk
+pre$stk ds 2
+
+ public begin
+begin: lxi h,0
+ dad sp
+ shld pre$stk
+ lxi sp,stack$top
+ nop
+ endm
+
+
+;---------------------------------
+
+
+do$end macro
+ lhld pre$stk
+ sphl
+
+ mvi c,13
+ call BDOS
+
+ ret
+ ds stack$size
+stack$top:
+
+ endm
+
+movfcb macro destn,source
+ lxi d,destn
+ lxi h,source
+ lxi b,LENFCB
+ ldir
+ endm
+
+copyfcb macro fcbname,source
+ local around
+ jmp around
+fcbname ds 32
+around:
+ endm
+
+
+; memory.lib 2/17/2012 dwg - review for release 1.5.1.0
+; memory.lib 2/11/2012 dwg - review for release 1.5
+; memory.lib 2/04/2012 dwg - adjust for new macros
+; memory.lib 1/13/2012 dwg - POSIX memcpy and memset
+
+ extrn x$memcpy
+ extrn x$memset
+
+memcpy macro dst,src,siz
+ lxi d,dst ; load 1st positional parameter into reg
+ lxi h,src ; load 2nd positional parameter into reg
+ lxi b,siz ; load 3rd positional parameter into reg
+ call x$memcpy ; call actual routine in see memory.asm
+ endm
+
+memset macro dst,data,siz
+ lxi h,dst ; load 1st positional parameter into reg
+ mvi a,data ; load 2nd positional parameter into reg
+ lxi b,siz ; load 3rd positional parameter into reg
+ call x$memset ; call actual routine in see memory.asm
+ endm
+
+; eof - memory.lib
+
+
+; @CHK MACRO USED FOR CHECKING 8 BIT DISPLACMENTS
+;
+@CHK MACRO ?DD ;; USED FOR CHECKING RANGE OF 8-BIT DISP.S
+ IF (?DD GT 7FH) AND (?DD LT 0FF80H)
+ 'DISPLACEMENT RANGE ERROR - Z80 LIB'
+ ENDIF
+ ENDM
+LDX MACRO ?R,?D
+ @CHK ?D
+ DB 0DDH,?R*8+46H,?D
+ ENDM
+LDY MACRO ?R,?D
+ @CHK ?D
+ DB 0FDH,?R*8+46H,?D
+ ENDM
+STX MACRO ?R,?D
+ @CHK ?D
+ DB 0DDH,70H+?R,?D
+ ENDM
+STY MACRO ?R,?D
+ @CHK ?D
+ DB 0FDH,70H+?R,?D
+ ENDM
+MVIX MACRO ?N,?D
+ @CHK ?D
+ DB 0DDH,36H,?D,?N
+ ENDM
+MVIY MACRO ?N,?D
+ @CHK ?D
+ DB 0FDH,36H,?D,?N
+ ENDM
+LDAI MACRO
+ DB 0EDH,57H
+ ENDM
+LDAR MACRO
+ DB 0EDH,5FH
+ ENDM
+STAI MACRO
+ DB 0EDH,47H
+ ENDM
+STAR MACRO
+ DB 0EDH,4FH
+ ENDM
+
+LXIX MACRO ?NNNN
+ DB 0DDH,21H
+ DW ?NNNN
+ ENDM
+LXIY MACRO ?NNNN
+ DB 0FDH,21H
+ DW ?NNNN
+ ENDM
+LDED MACRO ?NNNN
+ DB 0EDH,5BH
+ DW ?NNNN
+ ENDM
+LBCD MACRO ?NNNN
+ DB 0EDH,4BH
+ DW ?NNNN
+ ENDM
+LSPD MACRO ?NNNN
+ DB 0EDH,07BH
+ DW ?NNNN
+ ENDM
+LIXD MACRO ?NNNN
+ DB 0DDH,2AH
+ DW ?NNNN
+ ENDM
+LIYD MACRO ?NNNN
+ DB 0FDH,2AH
+ DW ?NNNN
+ ENDM
+SBCD MACRO ?NNNN
+ DB 0EDH,43H
+ DW ?NNNN
+ ENDM
+SDED MACRO ?NNNN
+ DB 0EDH,53H
+ DW ?NNNN
+ ENDM
+SSPD MACRO ?NNNN
+ DB 0EDH,73H
+ DW ?NNNN
+ ENDM
+SIXD MACRO ?NNNN
+ DB 0DDH,22H
+ DW ?NNNN
+ ENDM
+SIYD MACRO ?NNNN
+ DB 0FDH,22H
+ DW ?NNNN
+ ENDM
+SPIX MACRO
+ DB 0DDH,0F9H
+ ENDM
+SPIY MACRO
+ DB 0FDH,0F9H
+ ENDM
+PUSHIX MACRO
+ DB 0DDH,0E5H
+ ENDM
+PUSHIY MACRO
+ DB 0FDH,0E5H
+ ENDM
+POPIX MACRO
+ DB 0DDH,0E1H
+ ENDM
+POPIY MACRO
+ DB 0FDH,0E1H
+ ENDM
+EXAF MACRO
+ DB 08H
+ ENDM
+EXX MACRO
+ DB 0D9H
+ ENDM
+XTIX MACRO
+ DB 0DDH,0E3H
+ ENDM
+XTIY MACRO
+ DB 0FDH,0E3H
+ ENDM
+
+LDI MACRO
+ DB 0EDH,0A0H
+ ENDM
+LDIR MACRO
+ DB 0EDH,0B0H
+ ENDM
+LDD MACRO
+ DB 0EDH,0A8H
+ ENDM
+LDDR MACRO
+ DB 0EDH,0B8H
+ ENDM
+CCI MACRO
+ DB 0EDH,0A1H
+ ENDM
+CCIR MACRO
+ DB 0EDH,0B1H
+ ENDM
+CCD MACRO
+ DB 0EDH,0A9H
+ ENDM
+CCDR MACRO
+ DB 0EDH,0B9H
+ ENDM
+
+ADDX MACRO ?D
+ @CHK ?D
+ DB 0DDH,86H,?D
+ ENDM
+ADDY MACRO ?D
+ @CHK ?D
+ DB 0FDH,86H,?D
+ ENDM
+ADCX MACRO ?D
+ @CHK ?D
+ DB 0DDH,8EH,?D
+ ENDM
+ADCY MACRO ?D
+ @CHK ?D
+ DB 0FDH,8EH,?D
+ ENDM
+SUBX MACRO ?D
+ @CHK ?D
+ DB 0DDH,96H,?D
+ ENDM
+SUBY MACRO ?D
+ @CHK ?D
+ DB 0FDH,96H,?D
+ ENDM
+SBCX MACRO ?D
+ @CHK ?D
+ DB 0DDH,9EH,?D
+ ENDM
+SBCY MACRO ?D
+ @CHK ?D
+ DB 0FDH,9EH,?D
+ ENDM
+ANDX MACRO ?D
+ @CHK ?D
+ DB 0DDH,0A6H,?D
+ ENDM
+ANDY MACRO ?D
+ @CHK ?D
+ DB 0FDH,0A6H,?D
+ ENDM
+XORX MACRO ?D
+ @CHK ?D
+ DB 0DDH,0AEH,?D
+ ENDM
+XORY MACRO ?D
+ @CHK ?D
+ DB 0FDH,0AEH,?D
+ ENDM
+ORX MACRO ?D
+ @CHK ?D
+ DB 0DDH,0B6H,?D
+ ENDM
+ORY MACRO ?D
+ @CHK ?D
+ DB 0FDH,0B6H,?D
+ ENDM
+CMPX MACRO ?D
+ @CHK ?D
+ DB 0DDH,0BEH,?D
+ ENDM
+CMPY MACRO ?D
+ @CHK ?D
+ DB 0FDH,0BEH,?D
+ ENDM
+INRX MACRO ?D
+ @CHK ?D
+ DB 0DDH,34H,?D
+ ENDM
+INRY MACRO ?D
+ @CHK ?D
+ DB 0FDH,34H,?D
+ ENDM
+DCRX MACRO ?D
+ @CHK ?D
+ DB 0DDH,035H,?D
+ ENDM
+DCRY MACRO ?D
+ @CHK ?D
+ DB 0FDH,35H,?D
+ ENDM
+
+NEG MACRO
+ DB 0EDH,44H
+ ENDM
+IM0 MACRO
+ DB 0EDH,46H
+ ENDM
+IM1 MACRO
+ DB 0EDH,56H
+ ENDM
+IM2 MACRO
+ DB 0EDH,5EH
+ ENDM
+
+
+BC EQU 0
+DE EQU 2
+HL EQU 4
+IX EQU 4
+IY EQU 4
+DADC MACRO ?R
+ DB 0EDH,?R*8+4AH
+ ENDM
+DSBC MACRO ?R
+ DB 0EDH,?R*8+42H
+ ENDM
+DADX MACRO ?R
+ DB 0DDH,?R*8+09H
+ ENDM
+DADY MACRO ?R
+ DB 0FDH,?R*8+09H
+ ENDM
+INXIX MACRO
+ DB 0DDH,23H
+ ENDM
+INXIY MACRO
+ DB 0FDH,23H
+ ENDM
+DCXIX MACRO
+ DB 0DDH,2BH
+ ENDM
+DCXIY MACRO
+ DB 0FDH,2BH
+ ENDM
+
+BIT MACRO ?N,?R
+ DB 0CBH,?N*8+?R+40H
+ ENDM
+SETB MACRO ?N,?R
+ DB 0CBH,?N*8+?R+0C0H
+ ENDM
+RES MACRO ?N,?R
+ DB 0CBH,?N*8+?R+80H
+ ENDM
+
+BITX MACRO ?N,?D
+ @CHK ?D
+ DB 0DDH,0CBH,?D,?N*8+46H
+ ENDM
+BITY MACRO ?N,?D
+ @CHK ?D
+ DB 0FDH,0CBH,?D,?N*8+46H
+ ENDM
+SETX MACRO ?N,?D
+ @CHK ?D
+ DB 0DDH,0CBH,?D,?N*8+0C6H
+ ENDM
+SETY MACRO ?N,?D
+ @CHK ?D
+ DB 0FDH,0CBH,?D,?N*8+0C6H
+ ENDM
+RESX MACRO ?N,?D
+ @CHK ?D
+ DB 0DDH,0CBH,?D,?N*8+86H
+ ENDM
+RESY MACRO ?N,?D
+ @CHK ?D
+ DB 0FDH,0CBH,?D,?N*8+86H
+ ENDM
+
+JR MACRO ?N
+ DB 18H,?N-$-1
+ ENDM
+JRC MACRO ?N
+ DB 38H,?N-$-1
+ ENDM
+JRNC MACRO ?N
+ DB 30H,?N-$-1
+ ENDM
+JRZ MACRO ?N
+ DB 28H,?N-$-1
+ ENDM
+JRNZ MACRO ?N
+ DB 20H,?N-$-1
+ ENDM
+DJNZ MACRO ?N
+ DB 10H,?N-$-1
+ ENDM
+
+PCIX MACRO
+ DB 0DDH,0E9H
+ ENDM
+PCIY MACRO
+ DB 0FDH,0E9H
+ ENDM
+
+RETI MACRO
+ DB 0EDH,4DH
+ ENDM
+RETN MACRO
+ DB 0EDH,45H
+ ENDM
+
+INP MACRO ?R
+ DB 0EDH,?R*8+40H
+ ENDM
+OUTP MACRO ?R
+ DB 0EDH,?R*8+41H
+ ENDM
+INI MACRO
+ DB 0EDH,0A2H
+ ENDM
+INIR MACRO
+ DB 0EDH,0B2H
+ ENDM
+IND MACRO
+ DB 0EDH,0AAH
+ ENDM
+INDR MACRO
+ DB 0EDH,0BAH
+ ENDM
+OUTI MACRO
+ DB 0EDH,0A3H
+ ENDM
+OUTIR MACRO
+ DB 0EDH,0B3H
+ ENDM
+OUTD MACRO
+ DB 0EDH,0ABH
+ ENDM
+OUTDR MACRO
+ DB 0EDH,0BBH
+ ENDM
+
+
+RLCR MACRO ?R
+ DB 0CBH, 00H + ?R
+ ENDM
+RLCX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 06H
+ ENDM
+RLCY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 06H
+ ENDM
+RALR MACRO ?R
+ DB 0CBH, 10H+?R
+ ENDM
+RALX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 16H
+ ENDM
+RALY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 16H
+ ENDM
+RRCR MACRO ?R
+ DB 0CBH, 08H + ?R
+ ENDM
+RRCX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 0EH
+ ENDM
+RRCY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 0EH
+ ENDM
+RARR MACRO ?R
+ DB 0CBH, 18H + ?R
+ ENDM
+RARX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 1EH
+ ENDM
+RARY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 1EH
+ ENDM
+SLAR MACRO ?R
+ DB 0CBH, 20H + ?R
+ ENDM
+SLAX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 26H
+ ENDM
+SLAY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 26H
+ ENDM
+SRAR MACRO ?R
+ DB 0CBH, 28H+?R
+ ENDM
+SRAX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 2EH
+ ENDM
+SRAY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 2EH
+ ENDM
+SRLR MACRO ?R
+ DB 0CBH, 38H + ?R
+ ENDM
+SRLX MACRO ?D
+ @CHK ?D
+ DB 0DDH, 0CBH, ?D, 3EH
+ ENDM
+SRLY MACRO ?D
+ @CHK ?D
+ DB 0FDH, 0CBH, ?D, 3EH
+ ENDM
+RLD MACRO
+ DB 0EDH, 6FH
+ ENDM
+RRD MACRO
+ DB 0EDH, 67H
+ ENDM
+
+; ffsetlu.lib 1/24/2012 dwg -
+ffgetlu macro
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK
+ lxi d,16+2
+ dad d
+ mov a,m
+ endm
+; eof - ffsetlu
+
+
+; ffsetlu.lib 2/12/2012 dwg - review for use in superfmt
+; ffsetlu.lib 1/24/2012 dwg -
+
+; enter with desired LU in A reg
+ffsetlu macro
+ enter
+ push psw
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK ; uses c parameter (drive)
+ lxi d,16+2
+ dad d
+ pop psw
+ mov m,a ; put slice into CURRENT
+ mvi c,13
+ call BDOS
+ leave
+ endm
+
+; eof - ffsetlu
+
+
+; ffhaslu.lib 1/22/2012 dwg - macro to detect drive with logical unit support
+
+ffhaslu macro
+ local ret$false,fini
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK
+ lxi d,16 ; offset to end of DPH
+ dad d ; calc offset of 1st signature byte
+ mov a,m ; pick up first sig byte which s/b 'L'
+ cpi 'L'
+ jnz ret$false ; if it wasn't, indicate to caller no LU
+ inx h ; bump ptr to 2nd signature byte
+ mov a,m ; pick up second sig byte which s/b 'U'
+ cpi 'U'
+ jnz ret$false ; if it wasn't, indicate to caller no LU
+ mvi a,TRUE ; otherwise indicate presence of LU support
+ jmp fini ; finish up macro
+ret$false:
+ mvi a,FALSE ; prepare negative response for caller
+fini:
+ endm
+
+
+
+; ffnumlu.lib 1/22/2012 dwg - macro to get number of logical units
+
+ffnumlu macro
+ mvi c,RETCURR
+ call BDOS
+ mov c,a
+ call BISELDSK
+ lxi d,16+2+2 ; offset to end of DPH
+ dad d ; calc offset of 1st signature byte
+ mov a,m
+ endm
+
+; eof - ffnumlu.lib
+
+
+
+prfilnam macro fcb
+ local fnbuf,fnext,prfnfini
+ memcpy fnbuf,fcb+1,8
+ memcpy fnext,fcb+9,3
+
+ lda fnext
+ ani 07fh
+ sta fnext
+
+ lda fnext+1
+ ani 07fh
+ sta fnext+1
+
+ lda fnext+2
+ ani 07fh
+ sta fnext+2
+
+ mvi c,9
+ lxi d,fnbuf
+ call BDOS
+
+ jmp prfnfini
+
+fnbuf db 0,0,0,0,0,0,0,0
+ db '.'
+fnext db 0,0,0,' $'
+prfnfini:
+ endm
+
+
+ do$start
+
+
+ jmp around$bandata
+argv dw prog,dat,prod,orig,ser,myname,0
+prog db 'FINDFILE.COM$'
+ date
+ serial
+ product
+ originator
+ oriname
+uuid db '107CDD27-2E4D-4340-A324-BEB13054E67B$'
+around$bandata:
+
+
+ crtinit
+ crtclr
+ crtlc 1,1
+ sbanner argv
+; version wrnmsg,errmsg
+
+ lda 80h
+ cpi 0
+ jnz no$usage
+ print crlf
+ printf 'usage - findfile '
+ jmp all$done
+no$usage:
+
+
+ memcpy work$fcb,PRIFCB,32
+
+ printf 'Finding: '
+ memcpy PRIFCB,work$fcb,16
+
+ mvi a,'$'
+ sta PRIFCB+9
+ print PRIFCB+1
+ conout '.'
+ memcpy PRIFCB,work$fcb,16
+ mvi a,'$'
+ sta PRIFCB+12
+ print PRIFCB+9
+ print crlf
+
+ ffhaslu
+ cpi TRUE
+ jz do$lu
+ memcpy PRIFCB,work$fcb,32
+ mvi c,FOPEN
+ lxi d,PRIFCB
+ call BDOS
+ cpi 255
+ jnz single$true
+ jmp all$done
+single$true:
+ printf 'Found'
+ jmp all$done
+
+do$lu:
+ ffgetlu
+ sta entry$lu
+ ;
+ ffnumlu
+ sta lu$cnt
+ ;
+ mov l,a
+ mvi h,0
+ call pr$d$word
+ printf ' Logical Units Detected'
+ print crlf
+
+ mvi a,0
+ sta lu$num
+loop:
+ printf 'Scanning Logical Unit '
+ lda lu$num
+ mov l,a
+ mvi h,0
+ call pr$d$word
+ conout ' '
+
+ ; set the Logical Unit
+ lda lu$num
+ ffsetlu
+
+ ; test for the target file
+ memcpy PRIFCB,work$fcb,32
+ mvi c,FOPEN
+ lxi d,PRIFCB
+ call BDOS
+ sta retcode
+
+ lda retcode
+ cpi 255
+ jz not$yet
+ conout CR
+ prfilnam PRIFCB
+ printf ' '
+ printf 'Found on Logical Unit '
+ lda lu$num
+ mov l,a
+ mvi h,0
+ call pr$d$word
+ conout ','
+ conout '('
+ lda drv$num
+ mov c,a
+ call BISELDSK
+ lxi b,0
+ call BISETTRK
+ lxi b,11
+ call BISETSEC
+ lxi b,buffer
+ call BISETDMA
+ call BIREAD
+
+ mvi a,'$'
+ sta buffer+128-8-1
+ print buffer+128-8-1-16
+ conout ')'
+
+ mvi c,FCLOSE
+ lxi d,PRIFCB
+ call BDOS
+ conout LF
+not$yet:
+ conout CR
+
+ ; Check for key hit interrupt scan
+ mvi c,11 ; get console status
+ caLL BDOS
+ cpi 0
+ jz nyok ; jump if no key hit
+ jmp abort ; gracefully exit loop
+nyok:
+
+
+ lda lu$num
+ inr a
+ sta lu$num
+ ;
+ lda lu$cnt
+ dcr a
+ sta lu$cnt
+ cpi 0
+ jnz loop
+
+ printf ' '
+
+abort: conout cr
+ printf 'Scan Completed '
+
+all$done:
+ lda entry$lu
+ ffsetlu
+
+ mvi c,RESET$DRIVE ; call to logout drive
+ lxi d,0ffh
+ call BDOS
+
+ do$end
+
+
+wrnmsg db 'By the way, this program is newer than the BIOS$'
+
+errmsg db 'Sorry, this program requires a newer BIOS$'
+
+crlf db CR,LF
+term db '$'
+
+drv$num ds 1 ; drive code of current drive
+lu$cnt ds 1 ; number of slices on drive
+lu$num ds 1 ; slice index
+entry$lu ds 1
+retcode ds 1
+
+work$fcb ds 64
+buffer ds 80h
+
+
+ end start
diff --git a/Apps/crossdev/FINDFILE.BAK b/Apps/crossdev/FINDFILE.BAK
new file mode 100644
index 00000000..7d480a47
--- /dev/null
+++ b/Apps/crossdev/FINDFILE.BAK
@@ -0,0 +1,12 @@
+rem findfile.sub 9/5/2012 dwg - make findfile.com from sources
+if not exist findfile.rel z80mu rmac findfile
+if not exist printers.rel z80mu rmac printers
+if not exist terminal.rel z80mu rmac terminal
+if not exist memory.rel z80mu rmac memory
+if not exist banner.rel z80mu rmac banner
+if not exist identity.rel z80mu rmac identity
+if not exist hbios.rel z80mu rmac hbios
+if not exist findfile.cpm z80mu link findfile,hbios,identity,banner,memory,printers,terminal
+if not exist findfile.cpm copy findfile.com findfile.cpm
+dir findfile.cpm
+
diff --git a/Apps/crossdev/FINDFILE.BAT b/Apps/crossdev/FINDFILE.BAT
new file mode 100644
index 00000000..7d480a47
--- /dev/null
+++ b/Apps/crossdev/FINDFILE.BAT
@@ -0,0 +1,12 @@
+rem findfile.sub 9/5/2012 dwg - make findfile.com from sources
+if not exist findfile.rel z80mu rmac findfile
+if not exist printers.rel z80mu rmac printers
+if not exist terminal.rel z80mu rmac terminal
+if not exist memory.rel z80mu rmac memory
+if not exist banner.rel z80mu rmac banner
+if not exist identity.rel z80mu rmac identity
+if not exist hbios.rel z80mu rmac hbios
+if not exist findfile.cpm z80mu link findfile,hbios,identity,banner,memory,printers,terminal
+if not exist findfile.cpm copy findfile.com findfile.cpm
+dir findfile.cpm
+
diff --git a/Apps/crossdev/FINDFILE.COM b/Apps/crossdev/FINDFILE.COM
new file mode 100644
index 00000000..44f2a480
Binary files /dev/null and b/Apps/crossdev/FINDFILE.COM differ
diff --git a/Apps/crossdev/FINDFILE.CPM b/Apps/crossdev/FINDFILE.CPM
new file mode 100644
index 00000000..44f2a480
Binary files /dev/null and b/Apps/crossdev/FINDFILE.CPM differ
diff --git a/Apps/crossdev/FINDFILE.REL b/Apps/crossdev/FINDFILE.REL
new file mode 100644
index 00000000..cc901d12
Binary files /dev/null and b/Apps/crossdev/FINDFILE.REL differ
diff --git a/Apps/crossdev/FINDFILE.SUB b/Apps/crossdev/FINDFILE.SUB
new file mode 100644
index 00000000..f5e8e754
--- /dev/null
+++ b/Apps/crossdev/FINDFILE.SUB
@@ -0,0 +1,13 @@
+e:rem findfile.sub 9/5/2012 dwg - make findfile.com from sources
+era *.bak
+era *.prn
+rasm80 findfile
+rasm80 printers
+rasm80 terminal
+rasm80 memory
+rasm80 banner
+rasm80 identity
+rasm80 hbios
+link80 findfile,hbios,identity,banner,memory,printers,terminal
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/FINDFILE.SYM b/Apps/crossdev/FINDFILE.SYM
new file mode 100644
index 00000000..1fb9e6ac
--- /dev/null
+++ b/Apps/crossdev/FINDFILE.SYM
@@ -0,0 +1,10 @@
+0103 HEXREF 0113 IDSIG 0115 IDRMJ 0116 IDRMN
+0117 IDRUP 0118 IDRTP 0119 IDMON 011A IDDAY
+011B IDYR 0120 PRESTK 0122 BEGIN 10A6 PRDWOR
+107E PRHBYT 1093 PRHWOR 0C2B XBANNE 0ED6 XSBANN
+1117 XCRTIN 11B1 XCRTLC 1122 XCRTCL 08EE XIDENT
+105A XMEMCP 105B XMEMSE 08E2 XGETSC 1068 PRHNYB
+10B2 PDEC 10D4 PDEC1 10D6 PDEC2 10F2 PDEC3
+146C PDEC4 146D PDEC5 1109 XPRDEC 1271 DR
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/FLIP.ASM b/Apps/crossdev/FLIP.ASM
new file mode 100644
index 00000000..bfd5cb5b
--- /dev/null
+++ b/Apps/crossdev/FLIP.ASM
@@ -0,0 +1,428 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ PUBLIC vdaini_
+vdaini_: lxi d,.2
+ call csave
+ LXI H,8-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16384
+ CALL .or
+ SHLD hregbc_
+ LHLD hregbc_
+ PUSH H
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,10-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD hregde_
+ LHLD hregde_
+ PUSH H
+ LXI H,.1+17
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,12-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD hreghl_
+ LHLD hreghl_
+ PUSH H
+ LXI H,.1+34
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ CALL diagnose_
+ LDA hrega_
+ MOV L,A
+ MVI H,0
+ PUSH H
+ LXI H,.1+51
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LDA hrega_
+ MOV L,A
+ MVI H,0
+ RET
+.2 EQU 0
+.1:
+ DB 104,114,101,103,98,99,32,61,32,48,120,37,48,52,120
+ DB 10,0,104,114,101,103,100,101,32,61,32,48,120,37,48
+ DB 52,120,10,0,104,114,101,103,104,108,32,61,32,48,120
+ DB 37,48,52,120,10,0,86,68,65,73,78,73,32,99,97
+ DB 108,108,101,100,44,32,114,101,116,117,114,110,32,99,111
+ DB 100,101,32,119,97,115,32,48,120,37,48,50,120,10,0
+ PUBLIC bitlook_
+bitlook_: lxi d,.4
+ call csave
+ LXI H,-32768
+ XCHG
+ LXI H,2-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,0-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .6
+.5:
+ LXI H,0-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.6:
+ LXI H,0-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,256
+ CALL .lt
+ JZ .7
+ LXI H,0-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,.3+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,-2-.4
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .9
+.8:
+ LXI H,-2-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.9:
+ LXI H,-2-.4
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,8
+ CALL .lt
+ JZ .10
+ LXI H,2-.4
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ XCHG
+ DCX H
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.3+16
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .8
+.10:
+ LXI H,.3+24
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .5
+.7:
+ RET
+.4 EQU -6
+.3:
+ DB 97,115,99,105,105,32,61,32,48,120,37,48,50,120,32
+ DB 0,48,120,37,48,50,120,32,0,10,0
+ PUBLIC vdaqry_
+vdaqry_: lxi d,.12
+ call csave
+ LXI H,8-.12
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,16640
+ CALL .or
+ SHLD hregbc_
+ LHLD hregbc_
+ PUSH H
+ LXI H,.11+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,10-.12
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD hreghl_
+ LHLD hreghl_
+ LXI D,-32768
+ CALL .ne
+ JZ .13
+ LXI H,.11+17
+ PUSH H
+ CALL printf_
+ POP D
+.13:
+ CALL diagnose_
+ LDA hrega_
+ MOV L,A
+ MVI H,0
+ PUSH H
+ LXI H,.11+43
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LHLD hregbc_
+ LXI D,255
+ CALL .an
+ PUSH H
+ LXI H,.11+83
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LHLD hregde_
+ LXI D,8
+ XCHG
+ CALL .ur
+ PUSH H
+ LHLD hregde_
+ LXI D,8
+ XCHG
+ CALL .ur
+ PUSH H
+ LXI H,.11+123
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ LHLD hregde_
+ LXI D,255
+ CALL .an
+ PUSH H
+ LHLD hregde_
+ LXI D,255
+ CALL .an
+ PUSH H
+ LXI H,.11+167
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ POP D
+ LDA hrega_
+ MOV L,A
+ MVI H,0
+ RET
+.12 EQU 0
+.11:
+ DB 104,114,101,103,98,99,32,61,32,48,120,37,48,52,120
+ DB 10,0,118,100,97,113,114,121,32,115,97,121,115,32,104
+ DB 108,32,33,61,32,48,120,56,48,48,48,10,0,86,68
+ DB 65,81,82,89,32,99,97,108,108,101,100,44,32,115,116
+ DB 97,116,117,115,32,32,32,32,32,32,32,119,97,115,32
+ DB 48,120,37,48,50,120,10,0,32,32,32,32,32,32,32
+ DB 32,32,32,32,32,32,32,32,118,105,100,101,111,32,109
+ DB 111,100,101,32,32,32,119,97,115,32,48,120,37,48,50
+ DB 120,10,0,32,32,32,32,32,32,32,32,32,32,32,32
+ DB 32,32,32,114,111,119,32,99,111,117,110,116,32,32,32
+ DB 32,119,97,115,32,48,120,37,48,50,120,40,37,100,41
+ DB 10,0,32,32,32,32,32,32,32,32,32,32,32,32,32
+ DB 32,32,99,111,108,117,109,110,32,99,111,117,110,116,32
+ DB 119,97,115,32,48,120,37,48,50,120,40,37,100,41,10
+ DB 0
+ PUBLIC main_
+main_: lxi d,.15
+ call csave
+ LXI H,.14+0
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,-32768
+ PUSH H
+ LXI H,64
+ PUSH H
+ CALL vdaqry_
+ POP D
+ POP D
+ XCHG
+ LXI H,-3-.15
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,-32768
+ XCHG
+ LXI H,2-.15
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,0
+ XCHG
+ LXI H,-1-.15
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .17
+.16:
+ LXI H,-1-.15
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.17:
+ LXI H,-1-.15
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2048
+ CALL .lt
+ JZ .18
+ LXI H,2-.15
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ MOV E,M
+ LXI H,1-.15
+ DAD SP
+ MOV M,E
+ LXI H,1-.15
+ DAD SP
+ MOV E,M
+ MVI D,0
+ LXI H,255
+ CALL .xr
+ XCHG
+ LXI H,1-.15
+ DAD SP
+ MOV M,E
+ LXI H,1-.15
+ DAD SP
+ MOV E,M
+ PUSH D
+ LXI H,4-.15
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ POP D
+ MOV M,E
+ LXI H,2-.15
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .16
+.18:
+ LXI H,-32768
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,64
+ PUSH H
+ CALL vdaini_
+ POP D
+ POP D
+ POP D
+ RET
+.15 EQU -7
+.14:
+ DB 102,108,105,112,46,99,111,109,40,99,41,32,49,49,47
+ DB 49,53,47,50,48,49,50,32,100,119,103,32,45,32,10
+ DB 10,0
+ extrn printf_
+ extrn diagnose_
+ extrn hreghl_
+ extrn hregde_
+ extrn hregbc_
+ extrn hrega_
+ extrn .or
+ extrn .xr
+ extrn .an
+ extrn .ne
+ extrn .lt
+ extrn .ur
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/FLIP.C b/Apps/crossdev/FLIP.C
new file mode 100644
index 00000000..bb740907
--- /dev/null
+++ b/Apps/crossdev/FLIP.C
@@ -0,0 +1,98 @@
+/* flip.c 11/17/2012 dwg - reverse the contrast */
+
+#include "std.h"
+#include "applvers.h"
+#include "diagnose.h"
+
+#define VDA_N8 4
+#define VDAINI 0x40
+#define VDAQRY 0x41
+#define VDARES 0x42
+#define VDASCS 0x43
+
+int vdaini(devunit,vidmode,bitmapp)
+ unsigned int devunit;
+ unsigned int vidmode;
+ unsigned int bitmapp;
+{
+ hregbc = (VDAINI << 8) | devunit;
+ printf("hregbc = 0x%04x\n",hregbc);
+ hregde = vidmode;
+ printf("hregde = 0x%04x\n",hregde);
+ hreghl = bitmapp;
+ printf("hreghl = 0x%04x\n",hreghl);
+ diagnose();
+ printf("VDAINI called, return code was 0x%02x\n",hrega);
+ return hrega;
+}
+
+bitlook()
+{
+ unsigned char *p;
+ int ascii,row;
+
+ p = 0x8000;
+ for(ascii=0;ascii<256;ascii++) {
+ printf("ascii = 0x%02x ",ascii);
+ for(row=0l;row<8;row++) {
+ printf("0x%02x ",*p++);
+ }
+ printf("\n");
+ }
+}
+
+int vdaqry(devunit,bitmapp)
+ unsigned int devunit;
+ unsigned int bitmapp;
+{
+ hregbc = (VDAQRY << 8) | devunit;
+ printf("hregbc = 0x%04x\n",hregbc);
+ hreghl = bitmapp;
+
+ if(hreghl != 0x8000) printf("vdaqry says hl != 0x8000\n");
+
+ diagnose();
+ printf("VDAQRY called, status was 0x%02x\n",hrega);
+ printf(" video mode was 0x%02x\n",hregbc & 255);
+ printf(" row count was 0x%02x(%d)\n",
+ (hregde >> 8),(hregde >> 8) );
+ printf(" column count was 0x%02x(%d)\n",
+ hregde & 255, hregde & 255);
+
+/* if(0 != bitmapp) {
+ printf("vdaqry called with bitmap pointer\n");
+ bitlook();
+ }
+*/
+
+ return hrega;
+}
+
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ unsigned char * p;
+ unsigned char byte;
+ int offs;
+ int retcode;
+
+ printf("flip.com(c) 11/15/2012 dwg - \n\n");
+
+ retcode = vdaqry(VDA_N8 << 4,0x8000);
+
+ p = 0x8000;
+ for(offs=0;offs<256*8;offs++) {
+ byte = *p;
+ byte = byte ^ 255;
+ *p = byte;
+ p++;
+ }
+
+/* bitlook(); */
+
+ vdaini(VDA_N8 << 4, 0, 0x8000);
+}
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/FLIP.SUB b/Apps/crossdev/FLIP.SUB
new file mode 100644
index 00000000..ab25bd36
--- /dev/null
+++ b/Apps/crossdev/FLIP.SUB
@@ -0,0 +1,5 @@
+cc flip
+as flip
+as diagnose
+ln flip.o diagnose.o -lc
+
\ No newline at end of file
diff --git a/Apps/crossdev/FORM.ASM b/Apps/crossdev/FORM.ASM
new file mode 100644
index 00000000..e2f63568
--- /dev/null
+++ b/Apps/crossdev/FORM.ASM
@@ -0,0 +1,646 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ global pDPHMAP_,2
+ global pDPHVEC_,16
+ DSEG
+ public pSYSCFG_
+pSYSCFG_:
+ DW -16384
+ CSEG
+ DSEG
+ public form_
+form_:
+ DW 6
+ DW 3
+ DW 6
+ DB 102
+ DB 105
+ DB 101
+ DB 108
+ DB 100
+ DB 49
+ DB 0
+ DW 6
+ DW 13
+ DB 100
+ DB 101
+ DB 102
+ DB 97
+ DB 117
+ DB 108
+ DB 116
+ DB 49
+ DB 0
+ ds 24
+ DW 7
+ DW 3
+ DW 6
+ DB 102
+ DB 105
+ DB 101
+ DB 108
+ DB 100
+ DB 50
+ DB 0
+ DW 7
+ DW 13
+ DB 100
+ DB 101
+ DB 102
+ DB 97
+ DB 117
+ DB 108
+ DB 116
+ DB 50
+ DB 0
+ ds 24
+ CSEG
+ PUBLIC main_
+main_: lxi d,.2
+ call csave
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LXI H,-16384
+ SHLD pSYSCFG_
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ CALL crtinit_
+ POP D
+ CALL crtclr_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,.1+0
+ PUSH H
+ CALL banner_
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .4
+.3:
+ LXI H,2-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.4:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2
+ CALL .lt
+ JZ .5
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+2
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+6
+ DAD D
+ PUSH H
+ LXI H,.1+5
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+15
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+13
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,0-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .7
+.6:
+ LXI H,0-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.7:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+17
+ DAD D
+ PUSH H
+ CALL strlen_
+ POP D
+ PUSH H
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ POP H
+ CALL .lt
+ JZ .8
+ LXI H,.1+8
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .6
+.8:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+15
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+13
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+17
+ DAD D
+ PUSH H
+ LXI H,.1+10
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .3
+.5:
+ LXI H,0
+ XCHG
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .10
+.9:
+ LXI H,2-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.10:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2
+ CALL .lt
+ JZ .11
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+15
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+13
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,34
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,-30-.2
+ DAD SP
+ PUSH H
+ CALL memset_
+ POP D
+ POP D
+ POP D
+ LXI H,10
+ SHLD dregbc_
+ LXI H,-34-.2
+ DAD SP
+ SHLD dregde_
+ LXI H,31
+ XCHG
+ LXI H,-34-.2
+ DAD SP
+ MOV M,E
+ LXI H,0
+ XCHG
+ LXI H,-33-.2
+ DAD SP
+ MOV M,E
+ CALL bdoscall_
+ LXI H,-33-.2
+ DAD SP
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,0
+ POP D
+ XCHG
+ CALL .lt
+ JZ .12
+ LXI H,32
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,6-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+17
+ DAD D
+ PUSH H
+ CALL memset_
+ POP D
+ POP D
+ POP D
+ LXI H,-32-.2
+ DAD SP
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+17
+ DAD D
+ PUSH H
+ CALL strcpy_
+ POP D
+ POP D
+.12:
+ JMP .9
+.11:
+ LXI H,0
+ XCHG
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .14
+.13:
+ LXI H,2-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.14:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,2
+ CALL .lt
+ JZ .15
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+2
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+6
+ DAD D
+ PUSH H
+ LXI H,.1+13
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+15
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+13
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,0
+ XCHG
+ LXI H,0-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ JMP .17
+.16:
+ LXI H,0-.2
+ DAD SP
+ PUSH H
+ MOV A,M
+ INX H
+ MOV H,M
+ MOV L,A
+ INX H
+ XCHG
+ POP H
+ MOV M,E
+ INX H
+ MOV M,D
+.17:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+17
+ DAD D
+ PUSH H
+ CALL strlen_
+ POP D
+ PUSH H
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ POP H
+ CALL .lt
+ JZ .18
+ LXI H,.1+16
+ PUSH H
+ CALL printf_
+ POP D
+ JMP .16
+.18:
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+15
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,4-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+13
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL crtlc_
+ POP D
+ POP D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ LXI H,50
+ CALL .ml
+ LXI D,form_+17
+ DAD D
+ PUSH H
+ LXI H,.1+18
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ JMP .13
+.15:
+ RET
+.2 EQU -38
+.1:
+ DB 70,79,82,77,0,37,115,0,95,0,37,115,0,37,115
+ DB 0,32,0,37,115,0
+ extrn strcpy_
+ extrn memset_
+ extrn strlen_
+ extrn printf_
+ extrn banner_
+ extrn crtlc_
+ extrn crtclr_
+ extrn crtinit_
+ extrn diagnose_
+ extrn hregde_
+ extrn hregbc_
+ extrn bdoscall_
+ extrn dregde_
+ extrn dregbc_
+ extrn .lt
+ extrn .ml
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/FORM.C b/Apps/crossdev/FORM.C
new file mode 100644
index 00000000..8bae233c
--- /dev/null
+++ b/Apps/crossdev/FORM.C
@@ -0,0 +1,107 @@
+/* form.c 8/21/2012 dwg - */
+
+
+#define MAXDRIVE 8
+#include "cpm80.h"
+#include "cpmbdos.h"
+#include "bdoscall.h"
+#include "cpmappl.h"
+#include "applvers.h"
+#include "cnfgdata.h"
+#include "syscfg.h"
+
+
+#define BDOS 5 /* memory address of BDOS invocation */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+
+struct SYSCFG * pSYSCFG = HIGHSEG;
+
+#define FRMFLDS 2
+#define FRSTLIN 6
+#define VISCOL 3
+#define VISSIZ 6
+#define VALCOL (VISCOL+VISSIZ+4)
+#define VALSIZ 32
+
+struct FORM {
+ int visline;
+ int viscol;
+ int vissize;
+ char visible[VISSIZ+1];
+ int valline;
+ int valcol;
+ char value[VALSIZ+1];
+} form[FRMFLDS] = {
+ { FRSTLIN, VISCOL, VISSIZ, "field1", FRSTLIN, VALCOL, "default1" },
+ { FRSTLIN+1, VISCOL, VISSIZ, "field2", FRSTLIN+1, VALCOL, "default2" }
+};
+
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ int i,j;
+ char buffer[VALSIZ+2];
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+ pSYSCFG = HIGHSEG;
+
+ crtinit(pSYSCFG->cnfgdata.termtype);
+ crtclr();
+ crtlc(0,0);
+
+ banner("FORM");
+
+ for(i=0;i
+#include "ascii.h"
+
+main()
+{
+ printf("%c",ASCII_FF);
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/FORMFEED.SUB b/Apps/crossdev/FORMFEED.SUB
new file mode 100644
index 00000000..67b4bbec
--- /dev/null
+++ b/Apps/crossdev/FORMFEED.SUB
@@ -0,0 +1,4 @@
+cc formfeed
+as formfeed
+ln formfeed.o -lc
+
\ No newline at end of file
diff --git a/Apps/crossdev/GETCFG.ASM b/Apps/crossdev/GETCFG.ASM
new file mode 100644
index 00000000..5d88ce09
--- /dev/null
+++ b/Apps/crossdev/GETCFG.ASM
@@ -0,0 +1,219 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ DSEG
+ public pPriFcb_
+pPriFcb_:
+ DW 92
+ CSEG
+ DSEG
+ public pSecFcb_
+pSecFcb_:
+ DW 108
+ CSEG
+ DSEG
+ public pDefBuf_
+pDefBuf_:
+ DW 128
+ CSEG
+ DSEG
+ public pBIOS_
+pBIOS_:
+ DW -6656
+ CSEG
+ global pDPB_,2
+ global pDPH_,2
+ global pINFOLIS_,2
+ global pCNFGDAT_,2
+ DSEG
+ public pSYSCFG_
+pSYSCFG_:
+ DW -16384
+ CSEG
+ PUBLIC main_
+main_: lxi d,.2
+ call csave
+ LXI H,-4096
+ SHLD hregbc_
+ LXI H,-16384
+ SHLD hregde_
+ CALL diagnose_
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ POP D
+ LHLD pSYSCFG_
+ LXI D,68
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ CALL crtinit_
+ POP D
+ CALL crtclr_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ CALL crtlc_
+ POP D
+ POP D
+ LHLD pBIOS_
+ LXI D,78
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LHLD pBIOS_
+ LXI D,77
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LHLD pBIOS_
+ LXI D,76
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LHLD pBIOS_
+ LXI D,75
+ DAD D
+ MOV E,M
+ MVI D,0
+ PUSH D
+ LXI H,2012
+ PUSH H
+ LXI H,23
+ PUSH H
+ LXI H,7
+ PUSH H
+ LXI H,.1+10
+ PUSH H
+ CALL printf_
+ XCHG
+ LXI H,16
+ DAD SP
+ SPHL
+ LXI H,.1+93
+ PUSH H
+ LXI H,.1+82
+ PUSH H
+ CALL fopen_
+ POP D
+ POP D
+ XCHG
+ LXI H,2-.2
+ DAD SP
+ MOV M,E
+ INX H
+ MOV M,D
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ LXI H,256
+ PUSH H
+ LXI H,1
+ PUSH H
+ LXI H,-16384
+ PUSH H
+ CALL fwrite_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,2-.2
+ DAD SP
+ MOV E,M
+ INX H
+ MOV D,M
+ PUSH D
+ CALL fclose_
+ POP D
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,-6596
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LHLD xreghl_
+ SHLD pINFOLIS_
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LXI H,25
+ PUSH H
+ LXI H,5
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LXI H,0
+ PUSH H
+ LXI H,0
+ PUSH H
+ LDA xrega_
+ MOV L,A
+ MVI H,0
+ PUSH H
+ LXI H,-6629
+ PUSH H
+ CALL asmif_
+ XCHG
+ LXI H,8
+ DAD SP
+ SPHL
+ LHLD xreghl_
+ SHLD pDPH_
+ LHLD pDPH_
+ LXI D,10
+ DAD D
+ MOV E,M
+ INX H
+ MOV D,M
+ XCHG
+ SHLD pDPB_
+ RET
+.2 EQU -2
+.1:
+ DB 84,84,32,105,115,32,37,100,10,0,71,69,84,67,70
+ DB 71,46,67,79,77,32,37,100,47,37,100,47,37,100,32
+ DB 37,100,46,37,100,46,37,100,46,37,100,32,100,119,103
+ DB 32,45,32,69,108,101,103,97,110,116,108,121,32,69,120
+ DB 112,114,101,115,115,101,100,32,67,80,47,77,32,80,114
+ DB 111,103,114,97,109,10,0,115,121,115,99,102,103,46,98
+ DB 105,110,0,119,0
+ extrn fclose_
+ extrn fwrite_
+ extrn printf_
+ extrn asmif_
+ extrn xreghl_
+ extrn xrega_
+ extrn diagnose_
+ extrn hregde_
+ extrn hregbc_
+ extrn crtlc_
+ extrn crtclr_
+ extrn crtinit_
+ extrn fopen_
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/GETCFG.C b/Apps/crossdev/GETCFG.C
new file mode 100644
index 00000000..72fa186d
--- /dev/null
+++ b/Apps/crossdev/GETCFG.C
@@ -0,0 +1,333 @@
+/* test.c 7/23/2012 dwg - */
+
+#include "stdio.h"
+#include "applvers.h"
+#include "ctermcap.h"
+
+/* declarations for HBIOS access */
+extern char hrega;
+extern unsigned int hregbc;
+extern unsigned int hregde;
+extern unsigned int hreghl;
+extern diagnose();
+
+/* declaration dir BIOS and BDOS and low level calls */
+extern char xrega;
+extern unsigned int xregbc;
+extern unsigned int xregde;
+extern unsigned int xreghl;
+extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
+
+#define BDOS 5 /* memory address of BDOS invocation */
+#define PRIFCB 0x5C /* memory address of primary FCB */
+#define SECFCB 0x6C /* memory address of secondary FCB */
+#define DEFBUF 0x80 /* memory address of default buffer */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+#define TERMCPM 0 /* BDOS function for System Reset */
+#define CONIN 1 /* BDOS function for Console Input */
+#define CWRITE 2 /* BDOS function for Console Output */
+#define DIRCONIO 6 /* BDOS function for Direct Console I/O */
+#define PRINTSTR 9 /* BDOS function for Print String */
+#define RDCONBUF 10 /* BDOS function for Buffered Console Read */
+#define GETCONST 11 /* BDOS function for Get Console Status */
+#define RETVERNUM 12 /* BDOS function for Return Version Number */
+#define RESDISKSYS 13 /* BDOS function for Reset Disk System */
+#define SELECTDISK 14 /* BDOS function for Select Disk */
+#define FOPEN 15 /* BDOS function for File Open */
+#define FCLOSE 16 /* BDOS function for File Close */
+#define SEARCHFIRST 17 /* BDOS function for Search First */
+#define SEARCHNEXT 18 /* BDOS function for Search Next */
+#define FDELETE 19 /* BDOS function for File Delete */
+#define FREADSEQ 20 /* BDOS function for File Read Sequential */
+#define FWRITESEQ 21 /* BDOS function for File Write Sequential */
+#define FMAKEFILE 22 /* BDOS function for File Make */
+#define FRENAME 23 /* BDOS function for File Rename */
+#define RETLOGINVEC 24 /* BDOS function for Return Login Vector */
+#define RETCURRDISK 25 /* BDOS function for Return Current Disk */
+#define SETDMAADDR 26 /* BDOS function for Set DMA Address */
+#define GETALLOCVEC 27 /* BDOS function for Get Allocation Vector */
+#define WRPROTDISK 28 /* BDOS function for Write Protect Disk */
+#define GETROVECTOR 29 /* BDOS function for Get Read Only Vector */
+#define FSETATTRIB 30 /* BDOS function for File Set Attribute */
+#define GETDPBADDR 31 /* BDOS function for Get DPB Address */
+#define SETGETUSER 32 /* BDOS function for Set & Get User Number */
+#define FREADRANDOM 33 /* BDOS function for File Read Random */
+#define FWRITERAND 34 /* BDOS function for File Write Random */
+#define FCOMPSIZE 35 /* BDOS function for File Compare Size */
+#define SETRANDREC 36 /* BDOS function for Set Random Record # */
+#define RESETDRIVE 37 /* BDOS function for Reset Drive */
+#define WRRANDFILL 38 /* BDOS function for Write Random w/ Fill */
+
+#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
+#define BDOSDRA 1 /* BDOS Drive A: number */
+#define BDOSDRB 2 /* BDOS Drive B: number */
+#define BDOSDRC 3 /* BDOS Drive C: number */
+#define BDOSDRD 4 /* BDOS Drive D: number */
+#define BDOSDRE 5 /* BDOS Drive E: number */
+#define BDOSDRF 6 /* BDOS Drive F: number */
+#define BDOSDRG 7 /* BDOS Drive G: number */
+#define BDOSDRH 8 /* BDOS Drive H: number */
+
+#define BIOSDRA 0 /* BIOS Drive A: number */
+#define BIOSDRB 1 /* BIOS Drive B: number */
+#define BIOSDRC 2 /* BIOS Drive C: number */
+#define BIOSDRD 3 /* BIOS Drive D: number */
+#define BIOSDRE 4 /* BIOS Drive E: number */
+#define BIOSDRF 5 /* BIOS Drive F: number */
+#define BIOSDRG 6 /* BIOS Drive G: number */
+#define BIOSDRH 7 /* BIOS Drive H: number */
+
+struct FCB {
+ char drive; /* BDOS Drive Code */
+ char filename[8]; /* space padded file name */
+ char filetype[3]; /* space padded file extension */
+ char filler[24]; /* remainder of FCB */
+};
+
+struct FCB * pPriFcb = PRIFCB; /* pointer to Primary FCB structure */
+
+struct FCB * pSecFcb = SECFCB; /* pointer to secondary FCB structure */
+
+struct {
+ char length; /* length of commad tail */
+ char tail[127]; /* command tail */
+} * pDefBuf = DEFBUF;
+
+
+#define CURDRV 0x00004
+#define BIOSAD 0x0e600 /* base address of BIOS jumps */
+
+/* addresses of BIOS jumps */
+#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; /* JMP opcode */
+ unsigned int address; /* JMP 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 rmj;
+ char rmn;
+ char rup;
+ char rtp;
+
+} * pBIOS = 0xe600;
+
+/* pointer based Disk Parameter Block structure */
+struct DPB {
+ unsigned int spt;
+ unsigned char bsh;
+ unsigned char blm;
+ unsigned char exm;
+ unsigned int dsm;
+ unsigned int drm;
+ unsigned char al0;
+ unsigned int cks;
+ unsigned int off;
+} * pDPB;
+
+/* pointer based Disk Parameter Header structure */
+struct DPH {
+ unsigned int xlt;
+ unsigned int rv1;
+ unsigned int rv2;
+ unsigned int rv3;
+ unsigned int dbf;
+ struct DPB * pDpb;
+ unsigned int csv;
+ unsigned int alv;
+ unsigned char sigl;
+ unsigned char sigu;
+ unsigned int current;
+ unsigned int number;
+} * pDPH;
+
+/* pointer based Information List structure */
+struct INFOLIST {
+ int version;
+ void * banptr;
+ void * varloc;
+ void * tstloc;
+ void * dpbmap;
+ void * dphmap;
+ void * ciomap;
+} * pINFOLIST;
+
+/* pointer based Configuration Data structure */
+struct CNFGDATA {
+ unsigned char rmj;
+ unsigned char rmn;
+ unsigned char rup;
+ unsigned char rtp;
+ unsigned char diskboot;
+ unsigned char devunit;
+ unsigned int bootlu;
+ unsigned char hour;
+ unsigned char minute;
+ unsigned char second;
+ unsigned char month;
+ unsigned char day;
+ unsigned char year;
+ unsigned char freq;
+ unsigned char platform;
+ unsigned char dioplat;
+ unsigned char vdumode;
+ unsigned int romsize;
+ unsigned int ramsize;
+ unsigned char clrramdk;
+ unsigned char dskyenable;
+ unsigned char uartenable;
+ unsigned char vduenable;
+ unsigned char fdenable;
+ unsigned char fdtrace;
+ unsigned char fdmedia;
+ unsigned char fdmediaalt;
+ unsigned char fdmauto;
+ unsigned char ideenable;
+ unsigned char idetrace;
+ unsigned char ide8bit;
+ unsigned int idecapacity;
+ unsigned char ppideenable;
+ unsigned char ppidetrace;
+ unsigned char ppide8bit;
+ unsigned int ppidecapacity;
+ unsigned char ppideslow;
+ unsigned char boottype;
+ unsigned char boottimeout;
+ unsigned char bootdefault;
+ unsigned int baudrate;
+ unsigned char ckdiv;
+ unsigned char memwait;
+ unsigned char iowait;
+ unsigned char cntlb0;
+ unsigned char cntlb1;
+ unsigned char sdenable;
+ unsigned char sdtrace;
+ unsigned int sdcapacity;
+ unsigned char sdcsio;
+ unsigned char sdcsiofast;
+ unsigned char defiobyte;
+ unsigned char termtype;
+ unsigned int revision;
+ unsigned char prpsdenable;
+ unsigned char prpsdtrace;
+ unsigned int prpsdcapacity;
+ unsigned char prpconenable;
+ unsigned int biossize;
+ unsigned char pppenable;
+ unsigned char pppsdenable;
+ unsigned char pppsdtrace;
+ unsigned int pppsdcapacity;
+ unsigned char pppconenable;
+ unsigned char prpenable;
+} * pCNFGDATA;
+
+
+struct JMP_TAG {
+ unsigned char opcode;
+ unsigned int address;
+};
+
+
+/* pointer based System Configuration structure */
+struct SYSCFG {
+ struct JMP_TAG jmp;
+ void * cnfloc;
+ void * tstloc;
+ void * varloc;
+ struct CNFGDATA cnfgdata;
+ char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
+} * pSYSCFG = HIGHSEG;
+
+
+main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ FILE * fd;
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+
+ printf("TT is %d\n",pSYSCFG->cnfgdata.termtype);
+
+ crtinit(pSYSCFG->cnfgdata.termtype);
+ crtclr();
+ crtlc(0,0);
+
+ printf(
+ "GETCFG.COM %d/%d/%d %d.%d.%d.%d dwg - Elegantly Expressed CP/M Program\n",
+ A_MONTH,A_DAY,A_YEAR,
+ pBIOS->rmj,pBIOS->rmn,pBIOS->rup,pBIOS->rtp);
+
+ fd = fopen("syscfg.bin","w");
+ fwrite(HIGHSEG,1,256,fd);
+ fclose(fd);
+
+
+
+ asmif(pGETINFO,0,0,0); /* get addr of the information list */
+ pINFOLIST = xreghl; /* set base pointer of the structure */
+
+ asmif(BDOS,RETCURRDISK,0,0); /* get current drive into xrega */
+ asmif(pSELDSK,xrega,0,0); /* get DPH of current drive */
+ pDPH = xreghl; /* establish addressability to DPH */
+ pDPB = pDPH->pDpb; /* establish addressability to DPB */
+
+/* printf("spt is %d\n",pDPB->spt); */ /* demonstrate DPB access */
+
+
+
+}
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/GLOBALS.H b/Apps/crossdev/GLOBALS.H
index 672b4a07..58976394 100644
--- a/Apps/crossdev/GLOBALS.H
+++ b/Apps/crossdev/GLOBALS.H
@@ -1,4 +1,5 @@
/****************************************************************/
+/* globals.h 9/4/2012 dwg - increase MAXDRIVE to 12 */
/* globals.h 3/11/2012 dwg - add BIOS_ADDR */
/* globals.h 3/11/2012 dwg - declarations common to all modules */
/****************************************************************/
@@ -10,8 +11,8 @@
#define BIOSAD 0x0e600
#define INFLSTV 1
-#define MAXDRIVE 8
+#define MAXDRIVE 12
/*******************/
/* eof - globals.h */
-/*******************/
\ No newline at end of file
+/*******************/
\ No newline at end of file
diff --git a/Apps/crossdev/GLOBALS.LIB b/Apps/crossdev/GLOBALS.LIB
new file mode 100644
index 00000000..152e55f4
--- /dev/null
+++ b/Apps/crossdev/GLOBALS.LIB
@@ -0,0 +1,18 @@
+; globals.lib 7/19/2012 dwg - update for 2.0.0.0 B22
+; globals.lib 1/18/2012 dwg - program globals
+
+ENGLISH equ TRUE
+SPANISH equ FALSE
+
+MAX$LABEL equ 16
+STACK$SIZE equ 512
+
+COLON equ ':'
+
+stack macro
+ ds STACK$SIZE
+stack$top:
+ endm
+
+; eof - globals.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/HARDWARE.LIB b/Apps/crossdev/HARDWARE.LIB
new file mode 100644
index 00000000..3503e99e
--- /dev/null
+++ b/Apps/crossdev/HARDWARE.LIB
@@ -0,0 +1,16 @@
+; hardware.lib 1/18/2012 dwg - hardware declarations
+HASZ80 equ TRUE
+
+; I/O address of Zeta RTC
+zeta$rtc equ 70h
+; write bit definitions
+z$rtc$ce equ 10h
+z$rtc$we equ 20h
+z$rtc$clk equ 40h
+z$rtc$inp equ 80h
+; read bit definitions
+z$rtc$out equ 01h
+z$rtc$cfg equ 40h
+
+; eof - hardware.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/HBIOS.ASM b/Apps/crossdev/HBIOS.ASM
new file mode 100644
index 00000000..50d43a0f
--- /dev/null
+++ b/Apps/crossdev/HBIOS.ASM
@@ -0,0 +1,18 @@
+; hbios.asm 7/19/2012 dwg -
+
+CFGVERS equ 0
+
+ public xgetsc
+xgetsc:
+ enter
+ mvi b,0F0h
+ mvi c,CFGVERS
+ lxi d,8000h
+ db 0cfh ; rst 8
+ lxi h,8000h
+ leave
+ ret
+
+
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/HBIOS.H b/Apps/crossdev/HBIOS.H
new file mode 100644
index 00000000..e56562c8
--- /dev/null
+++ b/Apps/crossdev/HBIOS.H
@@ -0,0 +1,48 @@
+/* hbios.h 7/4/2012 dgw - */
+
+/* CIO */
+
+/* Character Input (CIOIN) */
+
+/* Character Output (CIOOUT) */
+
+/* Character Input Status (CIOIST) */
+
+/* Character Output Status (CIOOST) */
+
+/* DIO */
+
+/* Disk Read (DIORD) */
+
+/* Disk Write (DIOWR) */
+
+/* Disk Status (DIOST) */
+
+/* Disk Media (DIOMED) */
+
+/* Disk Idetify (DIOID) */
+
+/* Disk Get Buffer Address (DIOGBA) */
+
+
+
+
+/*
+ extern char hrega;
+ extern unsigned int hregbc;
+ extern unsigned int hregde;
+ extern unsigned int hreghl;
+ extern diagnose();
+*/
+
+
+
+
+
+/*****************/
+/* eof - hbios.h */
+/*****************/
+
+
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/HBIOS.LIB b/Apps/crossdev/HBIOS.LIB
new file mode 100644
index 00000000..166327be
--- /dev/null
+++ b/Apps/crossdev/HBIOS.LIB
@@ -0,0 +1,3 @@
+; hbios.lib 7/19/2012 dwg -
+ extrn xgetsc
+
\ No newline at end of file
diff --git a/Apps/crossdev/HBIOS.REL b/Apps/crossdev/HBIOS.REL
new file mode 100644
index 00000000..b47b7c7d
Binary files /dev/null and b/Apps/crossdev/HBIOS.REL differ
diff --git a/Apps/crossdev/HBIOS.SYM b/Apps/crossdev/HBIOS.SYM
new file mode 100644
index 00000000..4285f164
--- /dev/null
+++ b/Apps/crossdev/HBIOS.SYM
@@ -0,0 +1,2 @@
+0000 CFGVERS 0000 ENTER 000B LEAVE 0000 XGETSC
+
\ No newline at end of file
diff --git a/Apps/crossdev/HELLO.C b/Apps/crossdev/HELLO.C
new file mode 100644
index 00000000..daff6af1
--- /dev/null
+++ b/Apps/crossdev/HELLO.C
@@ -0,0 +1,333 @@
+/* test.c 7/21/2012 dwg - */
+
+#include "stdio.h"
+#include "applvers.h"
+
+/* declarations for HBIOS access */
+extern char hrega;
+extern unsigned int hregbc;
+extern unsigned int hregde;
+extern unsigned int hreghl;
+extern diagnose();
+
+/* declaration dir BIOS and BDOS and low level calls */
+extern char xrega;
+extern unsigned int xregbc;
+extern unsigned int xregde;
+extern unsigned int xreghl;
+extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
+
+#define BDOS 5 /* memory address of BDOS invocation */
+#define PRIFCB 0x5C /* memory address of primary FCB */
+#define SECFCB 0x6C /* memory address of secondary FCB */
+#define DEFBUF 0x80 /* memory address of default buffer */
+#define HIGHSEG 0x0C000 /* memory address of system config */
+
+#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
+
+#define TERMCPM 0 /* BDOS function for System Reset */
+#define CONIN 1 /* BDOS function for Console Input */
+#define CWRITE 2 /* BDOS function for Console Output */
+#define DIRCONIO 6 /* BDOS function for Direct Console I/O */
+#define PRINTSTR 9 /* BDOS function for Print String */
+#define RDCONBUF 10 /* BDOS function for Buffered Console Read */
+#define GETCONST 11 /* BDOS function for Get Console Status */
+#define RETVERNUM 12 /* BDOS function for Return Version Number */
+#define RESDISKSYS 13 /* BDOS function for Reset Disk System */
+#define SELECTDISK 14 /* BDOS function for Select Disk */
+#define FOPEN 15 /* BDOS function for File Open */
+#define FCLOSE 16 /* BDOS function for File Close */
+#define SEARCHFIRST 17 /* BDOS function for Search First */
+#define SEARCHNEXT 18 /* BDOS function for Search Next */
+#define FDELETE 19 /* BDOS function for File Delete */
+#define FREADSEQ 20 /* BDOS function for File Read Sequential */
+#define FWRITESEQ 21 /* BDOS function for File Write Sequential */
+#define FMAKEFILE 22 /* BDOS function for File Make */
+#define FRENAME 23 /* BDOS function for File Rename */
+#define RETLOGINVEC 24 /* BDOS function for Return Login Vector */
+#define RETCURRDISK 25 /* BDOS function for Return Current Disk */
+#define SETDMAADDR 26 /* BDOS function for Set DMA Address */
+#define GETALLOCVEC 27 /* BDOS function for Get Allocation Vector */
+#define WRPROTDISK 28 /* BDOS function for Write Protect Disk */
+#define GETROVECTOR 29 /* BDOS function for Get Read Only Vector */
+#define FSETATTRIB 30 /* BDOS function for File Set Attribute */
+#define GETDPBADDR 31 /* BDOS function for Get DPB Address */
+#define SETGETUSER 32 /* BDOS function for Set & Get User Number */
+#define FREADRANDOM 33 /* BDOS function for File Read Random */
+#define FWRITERAND 34 /* BDOS function for File Write Random */
+#define FCOMPSIZE 35 /* BDOS function for File Compare Size */
+#define SETRANDREC 36 /* BDOS function for Set Random Record # */
+#define RESETDRIVE 37 /* BDOS function for Reset Drive */
+#define WRRANDFILL 38 /* BDOS function for Write Random w/ Fill */
+
+#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
+#define BDOSDRA 1 /* BDOS Drive A: number */
+#define BDOSDRB 2 /* BDOS Drive B: number */
+#define BDOSDRC 3 /* BDOS Drive C: number */
+#define BDOSDRD 4 /* BDOS Drive D: number */
+#define BDOSDRE 5 /* BDOS Drive E: number */
+#define BDOSDRF 6 /* BDOS Drive F: number */
+#define BDOSDRG 7 /* BDOS Drive G: number */
+#define BDOSDRH 8 /* BDOS Drive H: number */
+
+#define BIOSDRA 0 /* BIOS Drive A: number */
+#define BIOSDRB 1 /* BIOS Drive B: number */
+#define BIOSDRC 2 /* BIOS Drive C: number */
+#define BIOSDRD 3 /* BIOS Drive D: number */
+#define BIOSDRE 4 /* BIOS Drive E: number */
+#define BIOSDRF 5 /* BIOS Drive F: number */
+#define BIOSDRG 6 /* BIOS Drive G: number */
+#define BIOSDRH 7 /* BIOS Drive H: number */
+
+struct FCB {
+ char drive; /* BDOS Drive Code */
+ char filename[8]; /* space padded file name */
+ char filetype[3]; /* space padded file extension */
+ char filler[24]; /* remainder of FCB */
+};
+
+struct FCB * pPriFcb = PRIFCB; /* pointer to Primary FCB structure */
+
+struct FCB * pSecFcb = SECFCB; /* pointer to secondary FCB structure */
+
+struct {
+ char length; /* length of commad tail */
+ char tail[127]; /* command tail */
+} * pDefBuf = DEFBUF;
+
+
+#define CURDRV 0x00004
+#define BIOSAD 0x0e600 /* base address of BIOS jumps */
+
+/* addresses of BIOS jumps */
+#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; /* JMP opcode */
+ unsigned int address; /* JMP 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 rmj;
+ char rmn;
+ char rup;
+ char rtp;
+
+} * pBIOS = 0xe600;
+
+/* pointer based Disk Parameter Block structure */
+struct DPB {
+ unsigned int spt;
+ unsigned char bsh;
+ unsigned char blm;
+ unsigned char exm;
+ unsigned int dsm;
+ unsigned int drm;
+ unsigned char al0;
+ unsigned int cks;
+ unsigned int off;
+} * pDPB;
+
+/* pointer based Disk Parameter Header structure */
+struct DPH {
+ unsigned int xlt;
+ unsigned int rv1;
+ unsigned int rv2;
+ unsigned int rv3;
+ unsigned int dbf;
+ struct DPB * pDpb;
+ unsigned int csv;
+ unsigned int alv;
+ unsigned char sigl;
+ unsigned char sigu;
+ unsigned int current;
+ unsigned int number;
+} * pDPH;
+
+/* pointer based Information List structure */
+struct INFOLIST {
+ int version;
+ void * banptr;
+ void * varloc;
+ void * tstloc;
+ void * dpbmap;
+ void * dphmap;
+ void * ciomap;
+} * pINFOLIST;
+
+/* pointer based Configuration Data structure */
+struct CNFGDATA {
+ unsigned char rmj;
+ unsigned char rmn;
+ unsigned char rup;
+ unsigned char rtp;
+ unsigned char diskboot;
+ unsigned char devunit;
+ unsigned int bootlu;
+ unsigned char hour;
+ unsigned char minute;
+ unsigned char second;
+ unsigned char month;
+ unsigned char day;
+ unsigned char year;
+ unsigned char freq;
+ unsigned char platform;
+ unsigned char dioplat;
+ unsigned char vdumode;
+ unsigned int romsize;
+ unsigned int ramsize;
+ unsigned char clrramdk;
+ unsigned char dskyenable;
+ unsigned char uartenable;
+ unsigned char vduenable;
+ unsigned char fdenable;
+ unsigned char fdtrace;
+ unsigned char fdmedia;
+ unsigned char fdmediaalt;
+ unsigned char fdmauto;
+ unsigned char ideenable;
+ unsigned char idetrace;
+ unsigned char ide8bit;
+ unsigned int idecapacity;
+ unsigned char ppideenable;
+ unsigned char ppidetrace;
+ unsigned char ppide8bit;
+ unsigned int ppidecapacity;
+ unsigned char ppideslow;
+ unsigned char boottype;
+ unsigned char boottimeout;
+ unsigned char bootdefault;
+ unsigned int baudrate;
+ unsigned char ckdiv;
+ unsigned char memwait;
+ unsigned char iowait;
+ unsigned char cntlb0;
+ unsigned char cntlb1;
+ unsigned char sdenable;
+ unsigned char sdtrace;
+ unsigned int sdcapacity;
+ unsigned char sdcsio;
+ unsigned char sdcsiofast;
+ unsigned char defiobyte;
+ unsigned char termtype;
+ unsigned int revision;
+ unsigned char prpsdenable;
+ unsigned char prpsdtrace;
+ unsigned int prpsdcapacity;
+ unsigned char prpconenable;
+ unsigned int biossize;
+ unsigned char pppenable;
+ unsigned char pppsdenable;
+ unsigned char pppsdtrace;
+ unsigned int pppsdcapacity;
+ unsigned char pppconenable;
+ unsigned char prpenable;
+} * pCNFGDATA;
+
+
+struct JMP_TAG {
+ unsigned char opcode;
+ unsigned int address;
+};
+
+
+/* pointer based System Configuration structure */
+struct SYSCFG {
+ struct JMP_TAG jmp;
+ void * cnfloc;
+ void * tstloc;
+ void * varloc;
+ struct CNFGDATA cnfgdata;
+ char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
+} * pSYSCFG = HIGHSEG;
+
+
+main(argc,argv)
+ int argc;
+ char *argv[];
+{
+
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+ pSYSCFG = HIGHSEG;
+
+ crtinit(pSYSCFG->cnfgdata.termtype);
+ crtclr();
+ crtlc(0,0);
+
+/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
+
+
+ printf(
+ "TEST.COM %d/%d/%d %d.%d.%d.%d dwg - Elegantly Expressed CP/M Program\n",
+ A_MONTH,A_DAY,A_YEAR,
+ pBIOS->rmj,pBIOS->rmn,pBIOS->rup,pBIOS->rtp);
+
+ asmif(pGETINFO,0,0,0); /* get addr of the information list */
+ pINFOLIST = xreghl; /* set base pointer of the structure */
+
+ asmif(BDOS,RETCURRDISK,0,0); /* get current drive into xrega */
+ asmif(pSELDSK,xrega,0,0); /* get DPH of current drive */
+ pDPH = xreghl; /* establish addressability to DPH */
+ pDPB = pDPH->pDpb; /* establish addressability to DPB */
+
+/* printf("spt is %d\n",pDPB->spt); */ /* demonstrate DPB access */
+
+ hregbc = GETSYSCFG; /* function = Get System Config */
+ hregde = HIGHSEG; /* addr of dest (must be high) */
+ diagnose(); /* invoke the NBIOS function */
+
+/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
+
+
+}
+
+
\ No newline at end of file
diff --git a/Apps/crossdev/HELP.ASM b/Apps/crossdev/HELP.ASM
new file mode 100644
index 00000000..00f63941
--- /dev/null
+++ b/Apps/crossdev/HELP.ASM
@@ -0,0 +1,17 @@
+ extrn .begin,.chl,.swt
+ extrn csave,cret,.move
+ PUBLIC main_
+main_: lxi d,.2
+ call csave
+ LXI H,.1+0
+ PUSH H
+ CALL printf_
+ POP D
+ LXI H,0
+ RET
+.2 EQU 0
+.1:
+ DB 72,101,108,112,32,87,111,114,108,100,33,33,10,0
+ extrn printf_
+ END
+
\ No newline at end of file
diff --git a/Apps/crossdev/HELP.C b/Apps/crossdev/HELP.C
new file mode 100644
index 00000000..0541cc1e
--- /dev/null
+++ b/Apps/crossdev/HELP.C
@@ -0,0 +1,11 @@
+#include
+#include
+
+int main(argc,argv)
+ int argc;
+ char * argv[];
+{
+ printf("Help World!!\n");
+ return 0;
+}
+
\ No newline at end of file
diff --git a/Apps/crossdev/IDENT.ASM b/Apps/crossdev/IDENT.ASM
new file mode 100644
index 00000000..9840c850
--- /dev/null
+++ b/Apps/crossdev/IDENT.ASM
@@ -0,0 +1,64 @@
+ title 'Ident - Display Program Identification'
+
+; ident.asm 2/21/2012 dwg - review for release 2.0.0.0
+; ident.asm 2/19.2012 dwg - review for release 1.5.1.0
+; ident.asm 2/19/2012 dwg - remove test* & analyse & ws-shim
+; ident.asm 2/18/2012 dwg - drives,map and slice become map
+; ident.asm 2/14/2012 dwg - superfmt becomes multifmt
+; ident.asm 2/13/2012 dwg - add disk
+; ident.asm 2/12/2012 dwg - add cleardir and superfmt
+; ident.asm 2/11/2012 dwg - Display the Ident of a program file
+
+; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
+;
+; This file is part of NuBiosDWG and is free software: you can
+; redistribute it and/or modify it under the terms of the GNU
+; General Public License as published by the Free Software Foundation,
+; either version 3 of the License, or (at your option) any later version.
+; This file is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+; You should have received a copy of the GNU General Public License
+; along with it. If not, see .
+
+ maclib portab
+ maclib globals
+ maclib cpmbdos
+ maclib cpmappl
+ maclib applvers
+ maclib banner
+ maclib printers
+ maclib dumpmac
+ maclib memory
+ maclib identity
+
+ do$start
+
+ idata
+
+ sbanner argv
+
+ ify 'ACCESS COM',TRUE
+; ify 'ASSIGN COM',TRUE
+; ify 'CPMNAME COM',TRUE
+; ify 'ERASE COM',TRUE
+ ify 'FINDFILECOM',TRUE
+; ify 'HEADER COM',TRUE
+ ify 'IDENT COM',TRUE
+ ify 'SETLABELCOM',TRUE
+; ify 'MAP COM',TRUE
+; ify 'METAVIEWCOM',TRUE
+; ify 'MULTIFMTCOM',TRUE
+ ify 'NOACCESSCOM',TRUE
+; ify 'PAUSE COM',TRUE
+; ify 'REM COM',TRUE
+; ify 'REQ1PARMCOM',TRUE
+; ify 'STOP COM',TRUE
+; ify 'TERMTYPECOM',TRUE
+; ify 'WRITESYSCOM',FALSE
+
+ do$end
+
+ end
+
\ No newline at end of file
diff --git a/Apps/crossdev/IDENTITY.ASM b/Apps/crossdev/IDENTITY.ASM
new file mode 100644
index 00000000..858d7727
--- /dev/null
+++ b/Apps/crossdev/IDENTITY.ASM
@@ -0,0 +1,196 @@
+; identity.asm 2/17/2012 dwg - Program Identity Declarations
+
+ maclib portab
+ maclib globals
+ maclib stdlib
+ maclib cpmbios
+ maclib cpmbdos
+ maclib memory
+ maclib printers
+
+ public x$ident
+x$ident:
+ shld lfcbptr ; save pointer to fcb
+
+ mvi c,FOPEN
+ lhld lfcbptr
+ xchg
+ call BDOS
+ cpi 255
+ jnz openok
+
+;;; memcpy lname,file1fcb+1,8
+ mvi c,8
+ lxi d,lname
+ lhld lfcbptr
+ inx h
+ call x$memcpy
+
+ mvi a,','
+ sta ldot
+
+;;; memcpy lext,file1fcb+9,3
+ mvi c,3
+ lhld lfcbptr
+ lxi d,9
+ dad d
+ lxi d,lext
+ call x$memcpy
+
+
+ mvi a,'$'
+ sta lterm
+ print lname
+ printf ' -- File Not Found'
+ mvi a,FAILURE
+ jmp fini
+openok:
+
+ mvi c,SETDMA
+ lxi d,buffer
+ call BDOS
+
+ mvi c,READSEQ
+ lhld lfcbptr
+ xchg
+ call BDOS
+
+
+ mvi c,SETDMA
+ lxi d,buffer+128
+ call BDOS
+
+ mvi c,READSEQ
+ lhld lfcbptr
+ xchg
+ call BDOS
+
+ mvi c,FCLOSE
+ lhld lfcbptr
+ xchg
+ call BDOS
+
+ lxi d,d$prog
+ mvi c,9
+ call BDOS
+
+ conout ','
+ conout ' '
+ lda p$rmj
+ mov l,a
+ mvi h,0
+ call pr$d$word
+ conout '.'
+ lda p$rmn
+ mov l,a
+ call pr$d$word
+ conout '.'
+ lda p$rup
+ mov l,a
+ call pr$d$word
+ conout '.'
+ lda p$rtp
+ mov l,a
+ call pr$d$word
+ conout ','
+ conout ' '
+
+ lda p$mon
+ mov l,a
+ call pr$d$word
+ conout '/'
+ lda p$day
+ mov l,a
+ call pr$d$word
+ conout '/'
+ lhld p$year
+ call pr$d$word
+ conout ','
+ conout ' '
+
+ lxi d,d$prod
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$orig
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$ser
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lda d$term2
+ cpi '$'
+ jnz do$name
+ conout ' '
+ lxi d,d$uuid+19
+ jmp do$any
+do$name:
+ lxi d,d$name
+do$any:
+ mvi c,9
+ call BDOS
+
+ mvi a,SUCCESS ; set return code
+fini:
+ ret
+
+lfcbptr ds 2
+ldrive ds 1
+lcolon ds 1
+lname ds 8
+ldot ds 1
+lext ds 3
+lterm ds 1
+
+ db 'buffer-->'
+buffer ds 1
+p$start ds 2
+p$hexrf ds 16
+p$sig ds 2
+p$rmj ds 1
+p$rmn ds 1
+p$rup ds 1
+p$rtp ds 1
+p$mon ds 1
+p$day ds 1
+p$year ds 2
+p$argv ds 2
+p$e5 ds 1
+p$pr$st ds 2
+p$code1 ds 3 ; begin: lxi h,0
+p$code2 ds 1 ; dad sp
+p$code3 ds 3 ; shld pre$stk
+p$code4 ds 3 ; lxi sp,stack$top
+p$code5 ds 1 ; nop
+p$code6 ds 3 ; jmp around$bandata
+p$prog ds 2 ; dw prog
+p$dat ds 2 ; dw dat
+p$prod ds 2 ; dw prod
+p$orig ds 2 ; dw orig
+p$ser ds 2 ; dw ser
+p$nam ds 2 ; dw nam
+p$term ds 2 ; dw 0
+d$prog ds 8+1+3+1 ; db '12345678.123$'
+d$date ds 2+1+2+1+4+1 ; db ' 2/11/2012$'
+d$ser ds 6+1 ; db '654321$'
+d$prod ds 5+1 ; db 'CPM80$'
+d$orig ds 3+1 ; db 'DWG$'
+d$name ds 1+7+1+1+1+1+7+1 ; db ' Douglas W. Goodall$'
+d$uuid ds 36 ; unique user identification
+d$term2 ds 1 ; can be set to zero or dollar sign
+p$len equ $-buffer
+p$rsvd ds 256-p$len
+ db '<--buffer'
+ dw p$len
+crlf db CR,LF,'$'
+
+; eof - identity.asm
+
\ No newline at end of file
diff --git a/Apps/crossdev/IDENTITY.LIB b/Apps/crossdev/IDENTITY.LIB
new file mode 100644
index 00000000..b66e6c3e
--- /dev/null
+++ b/Apps/crossdev/IDENTITY.LIB
@@ -0,0 +1,191 @@
+; identity.lib 2/19/2012 dwg - add ify macro
+; identity.lib 2/17/2012 dwg - Program Identity Declarations
+
+ extrn x$ident
+
+ident macro file1fcb
+ lxi h,file1fcb
+ call x$ident
+ endm
+
+ify macro progname,bool
+ local done
+ local file
+ local fini
+ ident file
+ jmp fini
+ newfcb file,0,progname
+fini: mvi a,bool
+ cpi TRUE
+ jnz done
+ conout CR
+ conout LF
+done:
+ endm
+
+
+identx macro file1fcb
+ local openok
+ local identend
+
+ local ldrive,lcolon,lname,ldot,lext,lterm
+
+ mvi c,FOPEN
+ lxi d,file1fcb
+ call BDOS
+ cpi 255
+ jnz openok
+
+ memcpy lname,file1fcb+1,8
+ mvi a,','
+ sta ldot
+ memcpy lext,file1fcb+9,3
+ mvi a,'$'
+ sta lterm
+ print lname
+ printf ' -- File Not Found'
+ jmp identend
+openok:
+
+ mvi c,SETDMA
+ lxi d,buffer
+ call BDOS
+
+ mvi c,READSEQ
+ lxi d,file1fcb
+ call BDOS
+
+ mvi c,FCLOSE
+ lxi d,file1fcb
+ call BDOS
+
+ lxi d,d$prog
+ mvi c,9
+ call BDOS
+
+ conout ','
+ conout ' '
+ lda p$rmj
+ mov l,a
+ mvi h,0
+ call pr$d$word
+ conout '.'
+ lda p$rmn
+ mov l,a
+ call pr$d$word
+ conout '.'
+ lda p$rup
+ mov l,a
+ call pr$d$word
+ conout '.'
+ lda p$rtp
+ mov l,a
+ call pr$d$word
+ conout ','
+ conout ' '
+
+ lda p$mon
+ mov l,a
+ call pr$d$word
+ conout '/'
+ lda p$day
+ mov l,a
+ call pr$d$word
+ conout '/'
+ lhld p$year
+ call pr$d$word
+ conout ','
+ conout ' '
+
+ lxi d,d$prod
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$orig
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$ser
+ mvi c,9
+ call BDOS
+ conout ','
+ conout ' '
+
+ lxi d,d$name
+ mvi c,9
+ call BDOS
+ jmp identend
+
+ldrive ds 1
+lcolon ds 1
+lname ds 8
+ldot ds 1
+lext ds 3
+lterm ds 1
+
+identend:
+ endm
+
+idata macro
+ jmp around$bandata
+argv dw prog,dat,prod,orig,ser,myname,0
+prog db 'IDENT.COM $'
+ date
+ serial
+ product
+ originator
+ oriname
+uuid db '777A67C2-4A92-42D4-80FE-C96FD6483BD2$'
+ db 'buffer-->'
+ public buffer,p$start,p$hexrf,p$sig
+ public p$rmj,p$rmn,p$rup,p$rtp
+ public p$mon,p$day,p$year
+buffer ds 1
+p$start ds 2
+p$hexrf ds 16
+p$sig ds 2
+p$rmj ds 1
+p$rmn ds 1
+p$rup ds 1
+p$rtp ds 1
+p$mon ds 1
+p$day ds 1
+p$year ds 2
+p$argv ds 2
+p$e5 ds 1
+p$pr$st ds 2
+p$code1 ds 3 ; begin: lxi h,0
+p$code2 ds 1 ; dad sp
+p$code3 ds 3 ; shld pre$stk
+p$code4 ds 3 ; lxi sp,stack$top
+p$code5 ds 1 ; nop
+p$code6 ds 3 ; jmp around$bandata
+p$prog ds 2 ; dw prog
+p$dat ds 2 ; dw dat
+p$prod ds 2 ; dw prod
+p$orig ds 2 ; dw orig
+p$ser ds 2 ; dw ser
+p$nam ds 2 ; dw nam
+p$term ds 2 ; dw 0
+d$prog ds 8+1+3+1 ; db '12345678.123$'
+d$date ds 2+1+2+1+4+1 ; db ' 2/11/2012$'
+d$ser ds 6+1 ; db '654321$'
+d$prod ds 5+1 ; db 'CPM80$'
+d$orig ds 3+1 ; db 'DWG$'
+d$name ds 1+7+1+1+1+1+7+1 ; db ' Douglas W. Goodall$'
+d$uuid ds 37 ; unique user identification
+d$term2 ds 1 ; can be set to zero or dollar sign
+p$len equ $-buffer
+p$rsvd ds 128-p$len
+ db '<--buffer'
+crlf db CR,LF,'$'
+around$bandata:
+
+ endm
+
+; eof - identity.lib
+
\ No newline at end of file
diff --git a/Apps/crossdev/IDENTITY.REL b/Apps/crossdev/IDENTITY.REL
new file mode 100644
index 00000000..b451b042
Binary files /dev/null and b/Apps/crossdev/IDENTITY.REL differ
diff --git a/Apps/crossdev/IDENTITY.SYM b/Apps/crossdev/IDENTITY.SYM
new file mode 100644
index 00000000..5ecad124
--- /dev/null
+++ b/Apps/crossdev/IDENTITY.SYM
@@ -0,0 +1,35 @@
+0009 AL0OFS 000A AL1OFS 000E ALVOFS 0005 BDOS E600 BIBOOT
+E609 BICONIN E60C BICONOUT E606 BICONST 0000 BIDRVA 0001 BIDRVB
+0002 BIDRVC 0003 BIDRVD 0004 BIDRVE 0005 BIDRVF 0006 BIDRVG
+0007 BIDRVH E618 BIHOME E60F BILIST E62D BILISTST E612 BIPUNCH
+E627 BIREAD E615 BIREADER E630 BISECTRN E61B BISELDSK E624 BISETDMA
+E621 BISETSEC E61E BISETTRK E603 BIWBOOT E62A BIWRITE 0003 BLMOFS
+0002 BSHOFS 022F BUFFER 0001 BYTESIZE 000B CKSOFS 003A COLON
+000D CR 0001 CREAD 033A CRLF 0020 CROFS 000C CSVOFS
+0012 CUROFS 0002 CWRITE 0010 D0OFS 0008 DBFOFS 027A DDATE
+0080 DEFBUF 0296 DNAME 020D DOANY 020A DONAME 0292 DORIG
+000F DPBLEN 000A DPBOFS 0010 DPHLEN 028C DPROD 026D DPROG
+0007 DRMOFS 0000 DROFS 0285 DSER 000D DSKRESET 0005 DSMOFS
+02CE DTERM2 02AA DUUID 0001 ENGLISH 001B ESC 0004 EXMOFS
+000C EXOFS 0001 F1OFS 0002 F2OFS 0003 F3OFS 0004 F4OFS
+0005 F5OFS 0006 F6OFS 0007 F7OFS 0008 F8OFS 0001 FAILURE
+0000 FALSE 0024 FCBLEN 0010 FCLOSE 0023 FCOMPSIZE 0013 FDELETE
+0214 FINI 0016 FMAKE 000F FOPEN 0017 FRENAME 0218 LCOLON
+0221 LDOT 0217 LDRIVE 0020 LENFCB 0222 LEXT 000A LF
+0215 LFCBPTR 0219 LNAME 0225 LTERM 0010 LU1OFS 0011 LU2OFS
+0010 MAXLABEL 0000 NEVER 0014 NLUOFS 00E5 OEMID 000D OFFOFS
+0071 OPENOK 024C PARGV 0251 PCODE1 0254 PCODE2 0255 PCODE3
+0258 PCODE4 025B PCODE5 025C PCODE6 0261 PDAT 0249 PDAY
+024E PE5 0232 PHEXRF 00A0 PLEN 0248 PMON 0269 PNAM
+0265 PORIG 0263 PPROD 025F PPROG 024F PPRST 0000 PRDWORD
+0000 PRHBYTE 0000 PRHWORD 005C PRIFCB 0009 PRINTSTR 0244 PRMJ
+0245 PRMN 02CF PRSVD 0247 PRTP 0246 PRUP 0267 PSER
+0242 PSIG 0230 PSTART 026B PTERM 024A PYEAR 0021 R0OFS
+0022 R1OFS 0023 R2OFS 000F RCOFS 000A READCONBUF 0014 READSEQ
+0025 RESETDRIVE 0019 RETCURR 000C RETVERNO 0002 RV1OFS 0004 RV2OFS
+0006 RV3OFS 000D S1OFS 000E S2OFS 006C SECFCB 000E SELDSK
+001A SETDMA 0024 SETRANDREC 0000 SPANISH 0000 SPTOFS 0200 STACKSIZE
+0000 SUCCESS 0009 T1OFS 000A T2OFS 000B T3OFS 0000 TERMCPM
+0001 TRUE 0002 WORDSIZE 0022 WRITERAND 0028 WRITERANDZF
+0015 WRITESEQ 0000 XIDENT 0000 XLTOFS 0000 XMEMCPY 0000 XMEMSET
+
\ No newline at end of file
diff --git a/Apps/crossdev/LABEL.DWG b/Apps/crossdev/LABEL.DWG
new file mode 100644
index 00000000..cbf30794
--- /dev/null
+++ b/Apps/crossdev/LABEL.DWG
@@ -0,0 +1,3 @@
+RomWBW/branches/dwg/Apps/crossdev
+1234567890123456789012345678901234
+ 1 2 3
\ No newline at end of file
diff --git a/Apps/crossdev/LABELIB.ASM b/Apps/crossdev/LABELIB.ASM
new file mode 100644
index 00000000..85afc81e
--- /dev/null
+++ b/Apps/crossdev/LABELIB.ASM
@@ -0,0 +1,217 @@
+; labelib.asm 2/22/2012 dwg - label library function implementation
+; label.asm 2/11/2012 dwg - make ident compliant
+; label.asm 2/11/2012 dwg - begin 1.6 enhancements
+; label.asm 2/04/2012 dwg - use new macros for benefits
+; label.asm 1/20/2012 dwg - label a drive or slice
+
+;
+; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
+;
+; This file is part of NuBiosDWG and is free software: you can
+; redistribute it and/or modify it under the terms of the GNU
+; General Public License as published by the Free Software Foundation,
+; either version 3 of the License, or (at your option) any later version.
+; This file is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+; You should have received a copy of the GNU General Public License
+; along with it. If not, see .
+;
+
+
+ maclib portab
+ maclib globals
+ maclib cpmbios
+ maclib cpmbdos
+ maclib bioshdr
+ maclib hardware
+ maclib z80
+ maclib memory
+; maclib applvers
+; maclib cpmappl
+ maclib printers
+ maclib metadata
+; maclib banner
+ maclib stdlib
+; maclib ffhaslu
+; maclib identity
+
+
+
+ cseg
+
+ public x$label
+x$label:
+ mov a,c
+ sta drive$num
+
+ get$off
+ mov a,h
+ ora l
+ jnz off$ok
+ printf 'Sorry, you can only label drives with reserved tracks'
+ jmp main$exit
+off$ok:
+
+ lda drive$num
+ mov c,a
+ lxi h,buffer
+ call x$g$meta
+
+ lda DEFBUF ! mov c,a
+ cpi 0 ! jnz x$lab2
+
+; ; Interactive label functionality here...
+
+prompt:
+ ; signature exists so label should be displayable
+
+ print old$lbl
+
+; print label
+ lxi h,buffer
+ lxi d,meta$label
+ dad d
+ push h
+ pop d
+ mvi c,PRINTSTR
+ call BDOS
+
+ print crlf
+ print new$lbl
+
+ mvi c,READ$CON$BUF
+ lxi d,rcbuff
+ call BDOS
+ lda rclen
+ cpi 0
+ jnz length$ok
+ jmp main$exit
+length$ok:
+ inr a
+ sta DEFBUF
+ mvi a,' '
+ sta DEFBUF+1
+ mov c,a
+ mvi b,0
+ lxi h,rcdata
+ lxi d,DEFBUF+2
+ ldir
+
+ print crlf
+
+ lda drive$num
+ mov c,a
+ ; fall through to code below
+
+
+;;; not$interactive:
+
+ public x$lab2
+x$lab2:
+; This routine can be used interactively or non-interactively.
+; You can set up the default buffer at 80h and call x$lab2,
+; or you can call x$label and it will interactively redo the label.
+;
+ mov a,c
+ sta drive$num
+
+
+ lxi h,buffer
+ lxi d,meta$label
+ dad d
+ mvi a,' '
+ lxi b,meta$label$len ; max length of label
+ call x$memset
+
+ lda DEFBUF ; pick up length of command tail
+ cpi 18 ; compare with max size of label
+ jc lenok ; jump if size is within limits
+ mvi a,17 ; specify maximum size
+ sta DEFBUF ; and poke into default buffer size byte
+
+lenok: lda DEFBUF ; pick up command tail size byte
+ dcr a ; decrement
+
+ mov c,a ; move to c reg as counter
+ mvi b,0
+
+ lxi h,buffer
+ lxi d,meta$label
+ dad d
+ xchg
+ lxi h,DEFBUF+2 ; set source index for move
+ ldir
+
+ lxi h,buffer
+ lxi d,meta$term
+ dad d
+ mvi a,'$'
+ mov m,a
+
+ lda drive$num
+ mov c,a
+
+ lxi h,buffer
+ call x$u$meta
+ cpi FAILURE
+ jz write$prot$err
+
+ lxi h,buffer
+ call x$p$meta
+
+ print suc$msg
+
+ jmp main$exit
+
+write$prot$err:
+ print wr$prot$msg
+ jmp main$exit
+
+readerr:
+ print rd$err$msg
+ jmp main$exit
+
+writeerr:
+ print wr$err$msg
+ jmp main$exit
+
+dontboth:
+ print usage$msg
+
+main$exit:
+ ret
+
+ dseg
+
+suc$msg db 'Label Written Successfully$'
+rd$err$msg db 'Sorry, cannot read label sector$'
+wr$err$msg db 'Sorry, cannot write label sector$'
+wr$prot$msg db 'Sorry, metadata is write protected$'
+usage$msg db 'usage - label