Browse Source

Reintegrate dwg -> trunk

pull/3/head
wayne 13 years ago
parent
commit
01b68baf68
  1. 1
      Apps/apps-bins/readme.txt
  2. 12
      Apps/core/FETCH.BAT
  3. BIN
      Apps/core/access.com
  4. BIN
      Apps/core/cpmname.com
  5. BIN
      Apps/core/findfile.com
  6. BIN
      Apps/core/map.com
  7. BIN
      Apps/core/meta.com
  8. BIN
      Apps/core/multifmt.com
  9. BIN
      Apps/core/setlabel.com
  10. BIN
      Apps/core/sysgen.com
  11. BIN
      Apps/core/termtype.com
  12. BIN
      Apps/core/view.com
  13. BIN
      Apps/crossdev/ACCESS.CPM
  14. 248
      Apps/crossdev/ACCESS.PRN
  15. BIN
      Apps/crossdev/ACCESS.REL
  16. 7
      Apps/crossdev/APPLVERS.H
  17. 12
      Apps/crossdev/APPLVERS.LIB
  18. BIN
      Apps/crossdev/ASMIFACE.O
  19. 587
      Apps/crossdev/BANNER.PRN
  20. BIN
      Apps/crossdev/BANNER.REL
  21. 4
      Apps/crossdev/BANNER.SYM
  22. BIN
      Apps/crossdev/BDOSCALL.O
  23. BIN
      Apps/crossdev/BIOSCALL.O
  24. 208
      Apps/crossdev/CBANNER.ASM
  25. BIN
      Apps/crossdev/CBANNER.O
  26. 159
      Apps/crossdev/CLOGICAL.ASM
  27. BIN
      Apps/crossdev/CLOGICAL.O
  28. BIN
      Apps/crossdev/CMEMORY.O
  29. 527
      Apps/crossdev/CNAMEPT1.ASM
  30. BIN
      Apps/crossdev/CNAMEPT1.O
  31. 480
      Apps/crossdev/CNAMEPT2.ASM
  32. BIN
      Apps/crossdev/CNAMEPT2.O
  33. 794
      Apps/crossdev/CNAMEPT3.ASM
  34. BIN
      Apps/crossdev/CNAMEPT3.O
  35. 742
      Apps/crossdev/CNAMEPT4.ASM
  36. BIN
      Apps/crossdev/CNAMEPT4.O
  37. 164
      Apps/crossdev/CPMNAME.ASM
  38. BIN
      Apps/crossdev/CPMNAME.CPM
  39. BIN
      Apps/crossdev/CPMNAME.O
  40. 334
      Apps/crossdev/CTERMCAP.ASM
  41. BIN
      Apps/crossdev/CTERMCAP.O
  42. BIN
      Apps/crossdev/DIAGNOSE.O
  43. BIN
      Apps/crossdev/FINDFILE.COM
  44. BIN
      Apps/crossdev/FINDFILE.CPM
  45. 1552
      Apps/crossdev/FINDFILE.PRN
  46. BIN
      Apps/crossdev/FINDFILE.REL
  47. 18
      Apps/crossdev/HBIOS.PRN
  48. BIN
      Apps/crossdev/HBIOS.REL
  49. 419
      Apps/crossdev/IDENTITY.PRN
  50. BIN
      Apps/crossdev/IDENTITY.REL
  51. 351
      Apps/crossdev/LABELIB.PRN
  52. BIN
      Apps/crossdev/LABELIB.REL
  53. 1649
      Apps/crossdev/MAP.ASM
  54. BIN
      Apps/crossdev/MAP.CPM
  55. BIN
      Apps/crossdev/MAP.O
  56. 27
      Apps/crossdev/MEMORY.PRN
  57. BIN
      Apps/crossdev/MEMORY.REL
  58. 750
      Apps/crossdev/META.ASM
  59. BIN
      Apps/crossdev/META.CPM
  60. BIN
      Apps/crossdev/META.O
  61. 529
      Apps/crossdev/METADATA.PRN
  62. BIN
      Apps/crossdev/METADATA.REL
  63. 4
      Apps/crossdev/METADATA.SYM
  64. 1319
      Apps/crossdev/MULTIFMT.ASM
  65. BIN
      Apps/crossdev/MULTIFMT.CPM
  66. BIN
      Apps/crossdev/MULTIFMT.O
  67. 2056
      Apps/crossdev/N8CHARS.ASM
  68. BIN
      Apps/crossdev/N8CHARS.O
  69. 609
      Apps/crossdev/N8VIDTST.ASM
  70. BIN
      Apps/crossdev/N8VIDTST.CPM
  71. BIN
      Apps/crossdev/N8VIDTST.O
  72. 153
      Apps/crossdev/PRINTERS.PRN
  73. BIN
      Apps/crossdev/PRINTERS.REL
  74. 24
      Apps/crossdev/REM.PRN
  75. BIN
      Apps/crossdev/REM.REL
  76. 117
      Apps/crossdev/SECTORIO.ASM
  77. BIN
      Apps/crossdev/SETLABEL.CPM
  78. 152
      Apps/crossdev/SETLABEL.PRN
  79. BIN
      Apps/crossdev/SETLABEL.REL
  80. 982
      Apps/crossdev/SYSGEN.ASM
  81. BIN
      Apps/crossdev/SYSGEN.CPM
  82. BIN
      Apps/crossdev/SYSGEN.O
  83. 370
      Apps/crossdev/TERMINAL.PRN
  84. BIN
      Apps/crossdev/TERMINAL.REL
  85. 448
      Apps/crossdev/TERMTYPE.ASM
  86. BIN
      Apps/crossdev/TERMTYPE.CPM
  87. BIN
      Apps/crossdev/TERMTYPE.O
  88. 1463
      Apps/crossdev/TMS9918.ASM
  89. BIN
      Apps/crossdev/TMS9918.O
  90. BIN
      Apps/crossdev/TMSSTAT.CPM
  91. BIN
      Apps/crossdev/TMSSTAT.O
  92. 2233
      Apps/crossdev/VIEW.ASM
  93. BIN
      Apps/crossdev/VIEW.CPM
  94. BIN
      Apps/crossdev/VIEW.O
  95. 7
      Apps/dougs-devo/readme.txt

1
Apps/apps-bins/readme.txt

@ -0,0 +1 @@
The library in this folder is not current. The best of everything is in the crossdev folder.

12
Apps/core/FETCH.BAT

@ -0,0 +1,12 @@
@echo Copy CP/M-80 executables from the crossdev folder to here (core only)
copy ..\crossdev\ACCESS.CPM ACCESS.COM
copy ..\crossdev\CPMNAME.CPM CPMNAME.COM
copy ..\crossdev\FINDFILE.CPM FINDFILE.COM
copy ..\crossdev\MAP.CPM MAP.COM
copy ..\crossdev\META.CPM META.COM
copy ..\crossdev\MULTIFMT.CPM MULTIFMT.COM
copy ..\crossdev\REM.CPM REM.COM
copy ..\crossdev\SETLABEL.CPM SETLABEL.COM
copy ..\crossdev\SYSGEN.CPM SYSGEN.COM
copy ..\crossdev\TERMTYPE.CPM TERMTYPE.COM
copy ..\crossdev\VIEW.CPM VIEW.COM

BIN
Apps/core/access.com

Binary file not shown.

BIN
Apps/core/cpmname.com

Binary file not shown.

BIN
Apps/core/findfile.com

Binary file not shown.

BIN
Apps/core/map.com

Binary file not shown.

BIN
Apps/core/meta.com

Binary file not shown.

BIN
Apps/core/multifmt.com

Binary file not shown.

BIN
Apps/core/setlabel.com

Binary file not shown.

BIN
Apps/core/sysgen.com

Binary file not shown.

BIN
Apps/core/termtype.com

Binary file not shown.

BIN
Apps/core/view.com

Binary file not shown.

BIN
Apps/crossdev/ACCESS.CPM

Binary file not shown.

248
Apps/crossdev/ACCESS.PRN

@ -0,0 +1,248 @@
; access.asm 7/19/2012 dwg - for 2.0.0.0 B22
; access.com 2/17/2012 dwg - review for release 1.5.1.0
; access.asm 2/11/2012 dwg - make ident compliant
; access.com 2/07/2012 dwg - review for release 1.5
; access.com 2/05/2012 dwg - adjust for new macros
; access.asm 1/30/2012 dwg - use new do$start and do$end macros
; access.asm 1/28/2012 dwg - assure file exists from within submit 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 <http://www.gnu.org/licenses/>.
;----------------------------------------------------------------------
maclib portab
maclib globals
maclib cpmbdos
maclib printers
maclib banner
maclib applvers
maclib z80
maclib memory
maclib version
maclib cpmappl
maclib banner
;-----------------------
do$start
0000+C32200 START: JMP BEGIN
0003+3031323334HEXREF DB '0123456789ABCDEF'
0013+4944 ID$SIG DB 'ID'
0015+02 ID$RMJ DB A$RMJ
0016+05 ID$RMN DB A$RMN
0017+00 ID$RUP DB A$RUP
0018+01 ID$RTP DB A$RTP
0019+03 ID$MON DB A$MONTH
001A+1F ID$DAY DB A$DAY
001B+DD07 ID$YR DW A$YEAR
001D+3000 ID$ARGV DW ARGV
001F+E5 DB 0E5H
0020+ PRE$STK DS 2
0022+210000 BEGIN: LXI H,0
0025+39 DAD SP
0026+222000 SHLD PRE$STK
0029+31FC03 LXI SP,STACK$TOP
002C+00 NOP
002D C3A000 jmp around$bandata
0030 3E004B005Dargv dw prog,dat,prod,orig,ser,myname,0
003E 4143434553prog db 'ACCESS.COM $'
date
004B+20332F3331DAT DB ' 3/31/2013$'
serial
0056+3635343332SER DB '654321$'
product
005D+43504D3830PROD DB 'CPM80$'
originator
0063+44574724 ORIG DB 'DWG$'
oriname
0067+20444F5547MYNAME DB ' DOUGLAS W GOODALL $'
007B 3038443439uuid db '08D4953E-B6F4-4673-990C-7E17A0A299BD$'
around$bandata:
sbanner argv
00A0+213000 LXI H,ARGV
00A3+CD0000 CALL X$SBANNER
00A6 3A8000 lda 80h ; pick up the command tail length provided by CCP
00A9 FE00 cpi 0 ; were there any parameters given?
00AB C2DE00 jnz no$usage ; If not, go around
printf 'usage - access <filename>'
00AE+F5 PUSH PSW
00AF+C5 PUSH B
00B0+D5 PUSH D
00B1+E5 PUSH H
00B2+0E09 MVI C,PRINTSTR
00B4+11C100 LXI D,??0002
00B7+CD0500 CALL BDOS
00BA+E1 POP H
00BB+D1 POP D
00BC+C1 POP B
00BD+F1 POP PSW
00BE+C3DB00 JMP ??0001
00C1+7573616765??0002 DB 'usage - access <filename>'
00DA+24 DB '$'
00DB C3F201 jmp do$exit
no$usage:
memcpy work$fcb,PRIFCB,32 ; Save initial default FCB from CCP
00DE+111F04 LXI D,WORK$FCB ; LOAD 1ST POSITIONAL PARAMETER INTO REG
00E1+215C00 LXI H,PRIFCB ; LOAD 2ND POSITIONAL PARAMETER INTO REG
00E4+012000 LXI B,32 ; LOAD 3RD POSITIONAL PARAMETER INTO REG
00E7+CD0000 CALL X$MEMCPY ; CALL ACTUAL ROUTINE IN SEE MEMORY.ASM
printf 'Checking: '
00EA+F5 PUSH PSW
00EB+C5 PUSH B
00EC+D5 PUSH D
00ED+E5 PUSH H
00EE+0E09 MVI C,PRINTSTR
00F0+11FD00 LXI D,??0004
00F3+CD0500 CALL BDOS
00F6+E1 POP H
00F7+D1 POP D
00F8+C1 POP B
00F9+F1 POP PSW
00FA+C30801 JMP ??0003
00FD+436865636B??0004 DB 'Checking: '
0107+24 DB '$'
0108 3E24 mvi a,'$' ; place a terminating dollar sign
010A 326500 sta PRIFCB+9 ; at the end of the filname field
print PRIFCB+1 ; and print the filename portion
010D+F5 PUSH PSW
010E+C5 PUSH B
010F+D5 PUSH D
0110+E5 PUSH H
0111+0E09 MVI C,PRINTSTR
0113+115D00 LXI D,PRIFCB+1
0116+CD0500 CALL BDOS
0119+E1 POP H
011A+D1 POP D
011B+C1 POP B
011C+F1 POP PSW
conout '.' ; print the seperating dot
011D+F5 PUSH PSW
011E+C5 PUSH B
011F+D5 PUSH D
0120+E5 PUSH H
0121+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0123+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0125+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0128+E1 POP H
0129+D1 POP D
012A+C1 POP B
012B+F1 POP PSW
memcpy PRIFCB,work$fcb,16 ; get a fresh copy of the initial FCB
012C+115C00 LXI D,PRIFCB ; LOAD 1ST POSITIONAL PARAMETER INTO REG
012F+211F04 LXI H,WORK$FCB ; LOAD 2ND POSITIONAL PARAMETER INTO REG
0132+011000 LXI B,16 ; LOAD 3RD POSITIONAL PARAMETER INTO REG
0135+CD0000 CALL X$MEMCPY ; CALL ACTUAL ROUTINE IN SEE MEMORY.ASM
0138 3E24 mvi a,'$' ; place a terminating dollar sign
013A 326800 sta PRIFCB+12 ; at the end of the filetype field
print PRIFCB+9 ; and print the filetype
013D+F5 PUSH PSW
013E+C5 PUSH B
013F+D5 PUSH D
0140+E5 PUSH H
0141+0E09 MVI C,PRINTSTR
0143+116500 LXI D,PRIFCB+9
0146+CD0500 CALL BDOS
0149+E1 POP H
014A+D1 POP D
014B+C1 POP B
014C+F1 POP PSW
print crlf ; followed by a CR and LF
014D+F5 PUSH PSW
014E+C5 PUSH B
014F+D5 PUSH D
0150+E5 PUSH H
0151+0E09 MVI C,PRINTSTR
0153+114304 LXI D,CRLF
0156+CD0500 CALL BDOS
0159+E1 POP H
015A+D1 POP D
015B+C1 POP B
015C+F1 POP PSW
memcpy PRIFCB,work$fcb,32 ; restore the initial FCB
015D+115C00 LXI D,PRIFCB ; LOAD 1ST POSITIONAL PARAMETER INTO REG
0160+211F04 LXI H,WORK$FCB ; LOAD 2ND POSITIONAL PARAMETER INTO REG
0163+012000 LXI B,32 ; LOAD 3RD POSITIONAL PARAMETER INTO REG
0166+CD0000 CALL X$MEMCPY ; CALL ACTUAL ROUTINE IN SEE MEMORY.ASM
0169 0E0F mvi c,FOPEN ; Try to open the given filename
016B 115C00 lxi d,PRIFCB ; using the primary default FCB
016E CD0500 call BDOS ; with a BDOS call
0171 FEFF cpi 255 ; Test for Open Failure (255)
0173 C2C001 jnz done ; jump if file existed
0176 0E13 mvi c,FDELETE ; Delete the A:$$$.SUB file
0178 11FC03 lxi d,del$fcb ; using an alternative FCB
017B CD0500 call BDOS
printf 'Submit file terminated due to missing file$'
017E+F5 PUSH PSW
017F+C5 PUSH B
0180+D5 PUSH D
0181+E5 PUSH H
0182+0E09 MVI C,PRINTSTR
0184+119101 LXI D,??0006
0187+CD0500 CALL BDOS
018A+E1 POP H
018B+D1 POP D
018C+C1 POP B
018D+F1 POP PSW
018E+C3BD01 JMP ??0005
0191+5375626D69??0006 DB 'Submit file terminated due to missing file$'
01BC+24 DB '$'
01BD C3F201 jmp do$exit ; Go to the one true exit point
done:
printf 'File found, Submit may proceed'
01C0+F5 PUSH PSW
01C1+C5 PUSH B
01C2+D5 PUSH D
01C3+E5 PUSH H
01C4+0E09 MVI C,PRINTSTR
01C6+11D301 LXI D,??0008
01C9+CD0500 CALL BDOS
01CC+E1 POP H
01CD+D1 POP D
01CE+C1 POP B
01CF+F1 POP PSW
01D0+C3F201 JMP ??0007
01D3+46696C6520??0008 DB 'File found, Submit may proceed'
01F1+24 DB '$'
do$exit:
do$end
01F2+2A2000 LHLD PRE$STK
01F5+F9 SPHL
01F6+0E0D MVI C,13
01F8+CD0500 CALL BDOS
01FB+C9 RET
01FC+ DS STACK$SIZE
newfcb del$fcb,1,'$$$ SUB'
03FC+0124242420DEL$FCB DB 1,'$$$ SUB'
0408+0000000000 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
041F work$fcb ds 36 ; A place to save a copy of the default FCB on entry
0443 0D0A crlf db CR,LF ; a dollar sign terminated CR and LF
0445 24 term db '$' ; a general purpose terminating character
0446 end start


BIN
Apps/crossdev/ACCESS.REL

Binary file not shown.

7
Apps/crossdev/APPLVERS.H

@ -1,14 +1,14 @@
/************************************/ /************************************/
/* applvers.h dwg - 2.2.0.3 Beta */
/* applvers.h dwg - 2.5.0.1 Beta */
/************************************/ /************************************/
#define A_RMJ 2 #define A_RMJ 2
#define A_RMN 5 #define A_RMN 5
#define A_RUP 0 #define A_RUP 0
#define A_RTP 0
#define A_RTP 1
#define A_MONTH 3 #define A_MONTH 3
#define A_DAY 18
#define A_DAY 31
#define A_YEAR 2013 #define A_YEAR 2013
#define A_YR 13 #define A_YR 13
@ -17,4 +17,3 @@
/********************/ /********************/


12
Apps/crossdev/APPLVERS.LIB

@ -1,16 +1,16 @@
; applvers.lib 2/29/2012 dwg - For RomWBW 2.1.1 Release
; applvers.lib 3/31/2012 dwg - For RomWBW 2.5.0.1 Release
A$RMJ equ 2 A$RMJ equ 2
A$RMN equ 2
A$RMN equ 5
A$RUP equ 0 A$RUP equ 0
A$RTP equ 0
A$RTP equ 1
A$MONTH equ 2
A$DAY equ 15
A$MONTH equ 3
A$DAY equ 31
A$YEAR equ 2013 A$YEAR equ 2013
date macro date macro
dat db ' 2/15/2013$'
dat db ' 3/31/2013$'
endm endm
serial macro serial macro

BIN
Apps/crossdev/ASMIFACE.O

Binary file not shown.

587
Apps/crossdev/BANNER.PRN

@ -0,0 +1,587 @@
; 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:
0000 221E04 shld argv
0003 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
000C 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
0015 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
001E 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
0027 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
0030 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
printf '----------------------------------------'
0039+F5 PUSH PSW
003A+C5 PUSH B
003B+D5 PUSH D
003C+E5 PUSH H
003D+0E09 MVI C,PRINTSTR
003F+114C00 LXI D,??0002
0042+CD0500 CALL BDOS
0045+E1 POP H
0046+D1 POP D
0047+C1 POP B
0048+F1 POP PSW
0049+C37500 JMP ??0001
004C+2D2D2D2D2D??0002 DB '----------------------------------------'
0074+24 DB '$'
print crlf
0075+F5 PUSH PSW
0076+C5 PUSH B
0077+D5 PUSH D
0078+E5 PUSH H
0079+0E09 MVI C,PRINTSTR
007B+112C04 LXI D,CRLF
007E+CD0500 CALL BDOS
0081+E1 POP H
0082+D1 POP D
0083+C1 POP B
0084+F1 POP PSW
0085 2A2004EB0E lhld xprog ! xchg ! mvi c,9 ! call BDOS
printf ' '
008E+F5 PUSH PSW
008F+C5 PUSH B
0090+D5 PUSH D
0091+E5 PUSH H
0092+0E09 MVI C,PRINTSTR
0094+11A100 LXI D,??0004
0097+CD0500 CALL BDOS
009A+E1 POP H
009B+D1 POP D
009C+C1 POP B
009D+F1 POP PSW
009E+C3A300 JMP ??0003
00A1+20 ??0004 DB ' '
00A2+24 DB '$'
IF A$MONTH LT 10
conout ' '
00A3+F5 PUSH PSW
00A4+C5 PUSH B
00A5+D5 PUSH D
00A6+E5 PUSH H
00A7+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00A9+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00AB+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00AE+E1 POP H
00AF+D1 POP D
00B0+C1 POP B
00B1+F1 POP PSW
ENDIF
IF A$DAY LT 10
conout ' '
ENDIF
00B2 210300 lxi h,A$MONTH
00B5 CD0000 call pr$d$word
conout '/'
00B8+F5 PUSH PSW
00B9+C5 PUSH B
00BA+D5 PUSH D
00BB+E5 PUSH H
00BC+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00BE+1E2F MVI E,'/' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00C0+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00C3+E1 POP H
00C4+D1 POP D
00C5+C1 POP B
00C6+F1 POP PSW
00C7 211F00 lxi h,A$DAY
00CA CD0000 call pr$d$word
conout '/'
00CD+F5 PUSH PSW
00CE+C5 PUSH B
00CF+D5 PUSH D
00D0+E5 PUSH H
00D1+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00D3+1E2F MVI E,'/' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00D5+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00D8+E1 POP H
00D9+D1 POP D
00DA+C1 POP B
00DB+F1 POP PSW
00DC 21DD07 lxi h,A$YEAR
00DF CD0000 call pr$d$word
printf ' '
00E2+F5 PUSH PSW
00E3+C5 PUSH B
00E4+D5 PUSH D
00E5+E5 PUSH H
00E6+0E09 MVI C,PRINTSTR
00E8+11F500 LXI D,??0006
00EB+CD0500 CALL BDOS
00EE+E1 POP H
00EF+D1 POP D
00F0+C1 POP B
00F1+F1 POP PSW
00F2+C3F800 JMP ??0005
00F5+2020 ??0006 DB ' '
00F7+24 DB '$'
printf 'Version '
00F8+F5 PUSH PSW
00F9+C5 PUSH B
00FA+D5 PUSH D
00FB+E5 PUSH H
00FC+0E09 MVI C,PRINTSTR
00FE+110B01 LXI D,??0008
0101+CD0500 CALL BDOS
0104+E1 POP H
0105+D1 POP D
0106+C1 POP B
0107+F1 POP PSW
0108+C31401 JMP ??0007
010B+5665727369??0008 DB 'Version '
0113+24 DB '$'
0114 210200 lxi h,A$RMJ
0117 CD0000 call pr$d$word
conout '.'
011A+F5 PUSH PSW
011B+C5 PUSH B
011C+D5 PUSH D
011D+E5 PUSH H
011E+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0120+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0122+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0125+E1 POP H
0126+D1 POP D
0127+C1 POP B
0128+F1 POP PSW
0129 210500 lxi h,A$RMN
012C CD0000 call pr$d$word
conout '.'
012F+F5 PUSH PSW
0130+C5 PUSH B
0131+D5 PUSH D
0132+E5 PUSH H
0133+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0135+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0137+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
013A+E1 POP H
013B+D1 POP D
013C+C1 POP B
013D+F1 POP PSW
013E 210000 lxi h,A$RUP
0141 CD0000 call pr$d$word
printf ' ('
0144+F5 PUSH PSW
0145+C5 PUSH B
0146+D5 PUSH D
0147+E5 PUSH H
0148+0E09 MVI C,PRINTSTR
014A+115701 LXI D,??0010
014D+CD0500 CALL BDOS
0150+E1 POP H
0151+D1 POP D
0152+C1 POP B
0153+F1 POP PSW
0154+C35A01 JMP ??0009
0157+2028 ??0010 DB ' ('
0159+24 DB '$'
015A 210100 lxi h,A$RTP
015D CD0000 call pr$d$word
conout ')'
0160+F5 PUSH PSW
0161+C5 PUSH B
0162+D5 PUSH D
0163+E5 PUSH H
0164+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0166+1E29 MVI E,')' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0168+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
016B+E1 POP H
016C+D1 POP D
016D+C1 POP B
016E+F1 POP PSW
print crlf
016F+F5 PUSH PSW
0170+C5 PUSH B
0171+D5 PUSH D
0172+E5 PUSH H
0173+0E09 MVI C,PRINTSTR
0175+112C04 LXI D,CRLF
0178+CD0500 CALL BDOS
017B+E1 POP H
017C+D1 POP D
017D+C1 POP B
017E+F1 POP PSW
printf 'S/N '
017F+F5 PUSH PSW
0180+C5 PUSH B
0181+D5 PUSH D
0182+E5 PUSH H
0183+0E09 MVI C,PRINTSTR
0185+119201 LXI D,??0012
0188+CD0500 CALL BDOS
018B+E1 POP H
018C+D1 POP D
018D+C1 POP B
018E+F1 POP PSW
018F+C39701 JMP ??0011
0192+532F4E20 ??0012 DB 'S/N '
0196+24 DB '$'
0197 2A2404EB0E lhld xprod ! xchg ! mvi c,9 ! call BDOS
conout '-'
01A0+F5 PUSH PSW
01A1+C5 PUSH B
01A2+D5 PUSH D
01A3+E5 PUSH H
01A4+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01A6+1E2D MVI E,'-' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01A8+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
01AB+E1 POP H
01AC+D1 POP D
01AD+C1 POP B
01AE+F1 POP PSW
01AF 2A2604EB0E lhld xorig ! xchg ! mvi c,9 ! call BDOS
conout '-'
01B8+F5 PUSH PSW
01B9+C5 PUSH B
01BA+D5 PUSH D
01BB+E5 PUSH H
01BC+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01BE+1E2D MVI E,'-' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01C0+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
01C3+E1 POP H
01C4+D1 POP D
01C5+C1 POP B
01C6+F1 POP PSW
; print xser
01C7 2A2804EB0E lhld xser ! xchg ! mvi c,9 ! call BDOS
printf ' '
01D0+F5 PUSH PSW
01D1+C5 PUSH B
01D2+D5 PUSH D
01D3+E5 PUSH H
01D4+0E09 MVI C,PRINTSTR
01D6+11E301 LXI D,??0014
01D9+CD0500 CALL BDOS
01DC+E1 POP H
01DD+D1 POP D
01DE+C1 POP B
01DF+F1 POP PSW
01E0+C3E501 JMP ??0013
01E3+20 ??0014 DB ' '
01E4+24 DB '$'
; printf 'All Rights Reserved'
printf 'Licensed under GPL3'
01E5+F5 PUSH PSW
01E6+C5 PUSH B
01E7+D5 PUSH D
01E8+E5 PUSH H
01E9+0E09 MVI C,PRINTSTR
01EB+11F801 LXI D,??0016
01EE+CD0500 CALL BDOS
01F1+E1 POP H
01F2+D1 POP D
01F3+C1 POP B
01F4+F1 POP PSW
01F5+C30C02 JMP ??0015
01F8+4C6963656E??0016 DB 'Licensed under GPL3'
020B+24 DB '$'
print crlf
020C+F5 PUSH PSW
020D+C5 PUSH B
020E+D5 PUSH D
020F+E5 PUSH H
0210+0E09 MVI C,PRINTSTR
0212+112C04 LXI D,CRLF
0215+CD0500 CALL BDOS
0218+E1 POP H
0219+D1 POP D
021A+C1 POP B
021B+F1 POP PSW
printf 'Copyright (C) 2011-12'
021C+F5 PUSH PSW
021D+C5 PUSH B
021E+D5 PUSH D
021F+E5 PUSH H
0220+0E09 MVI C,PRINTSTR
0222+112F02 LXI D,??0018
0225+CD0500 CALL BDOS
0228+E1 POP H
0229+D1 POP D
022A+C1 POP B
022B+F1 POP PSW
022C+C34502 JMP ??0017
022F+436F707972??0018 DB 'Copyright (C) 2011-12'
0244+24 DB '$'
0245 2A2A04EB0E lhld xnam ! xchg ! mvi c,9 ! call BDOS
print crlf
024E+F5 PUSH PSW
024F+C5 PUSH B
0250+D5 PUSH D
0251+E5 PUSH H
0252+0E09 MVI C,PRINTSTR
0254+112C04 LXI D,CRLF
0257+CD0500 CALL BDOS
025A+E1 POP H
025B+D1 POP D
025C+C1 POP B
025D+F1 POP PSW
printf '----------------------------------------'
025E+F5 PUSH PSW
025F+C5 PUSH B
0260+D5 PUSH D
0261+E5 PUSH H
0262+0E09 MVI C,PRINTSTR
0264+117102 LXI D,??0020
0267+CD0500 CALL BDOS
026A+E1 POP H
026B+D1 POP D
026C+C1 POP B
026D+F1 POP PSW
026E+C39A02 JMP ??0019
0271+2D2D2D2D2D??0020 DB '----------------------------------------'
0299+24 DB '$'
print crlf
029A+F5 PUSH PSW
029B+C5 PUSH B
029C+D5 PUSH D
029D+E5 PUSH H
029E+0E09 MVI C,PRINTSTR
02A0+112C04 LXI D,CRLF
02A3+CD0500 CALL BDOS
02A6+E1 POP H
02A7+D1 POP D
02A8+C1 POP B
02A9+F1 POP PSW
02AA C9 ret
; entered with argv in hl
public x$sbanner
x$sbanner:
02AB 221E04 shld argv
02AE 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
02B7 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
02C0 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
02C9 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
02D2 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
02DB 5E235623EB mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
; printf '----------------------------------------'
; print crlf
02E4 2A2004EB0E lhld xprog ! xchg ! mvi c,9 ! call BDOS
printf ' '
02ED+F5 PUSH PSW
02EE+C5 PUSH B
02EF+D5 PUSH D
02F0+E5 PUSH H
02F1+0E09 MVI C,PRINTSTR
02F3+110003 LXI D,??0022
02F6+CD0500 CALL BDOS
02F9+E1 POP H
02FA+D1 POP D
02FB+C1 POP B
02FC+F1 POP PSW
02FD+C30203 JMP ??0021
0300+20 ??0022 DB ' '
0301+24 DB '$'
IF A$MONTH LT 10
conout ' '
0302+F5 PUSH PSW
0303+C5 PUSH B
0304+D5 PUSH D
0305+E5 PUSH H
0306+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0308+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
030A+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
030D+E1 POP H
030E+D1 POP D
030F+C1 POP B
0310+F1 POP PSW
ENDIF
IF A$DAY LT 10
conout ' '
ENDIF
0311 210300 lxi h,A$MONTH
0314 CD0000 call pr$d$word
conout '/'
0317+F5 PUSH PSW
0318+C5 PUSH B
0319+D5 PUSH D
031A+E5 PUSH H
031B+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
031D+1E2F MVI E,'/' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
031F+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0322+E1 POP H
0323+D1 POP D
0324+C1 POP B
0325+F1 POP PSW
0326 211F00 lxi h,A$DAY
0329 CD0000 call pr$d$word
conout '/'
032C+F5 PUSH PSW
032D+C5 PUSH B
032E+D5 PUSH D
032F+E5 PUSH H
0330+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0332+1E2F MVI E,'/' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0334+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0337+E1 POP H
0338+D1 POP D
0339+C1 POP B
033A+F1 POP PSW
033B 21DD07 lxi h,A$YEAR
033E CD0000 call pr$d$word
printf ' '
0341+F5 PUSH PSW
0342+C5 PUSH B
0343+D5 PUSH D
0344+E5 PUSH H
0345+0E09 MVI C,PRINTSTR
0347+115403 LXI D,??0024
034A+CD0500 CALL BDOS
034D+E1 POP H
034E+D1 POP D
034F+C1 POP B
0350+F1 POP PSW
0351+C35703 JMP ??0023
0354+2020 ??0024 DB ' '
0356+24 DB '$'
printf 'Vers. '
0357+F5 PUSH PSW
0358+C5 PUSH B
0359+D5 PUSH D
035A+E5 PUSH H
035B+0E09 MVI C,PRINTSTR
035D+116A03 LXI D,??0026
0360+CD0500 CALL BDOS
0363+E1 POP H
0364+D1 POP D
0365+C1 POP B
0366+F1 POP PSW
0367+C37103 JMP ??0025
036A+566572732E??0026 DB 'Vers. '
0370+24 DB '$'
0371 210200 lxi h,A$RMJ
0374 CD0000 call pr$d$word
conout '.'
0377+F5 PUSH PSW
0378+C5 PUSH B
0379+D5 PUSH D
037A+E5 PUSH H
037B+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
037D+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
037F+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0382+E1 POP H
0383+D1 POP D
0384+C1 POP B
0385+F1 POP PSW
0386 210500 lxi h,A$RMN
0389 CD0000 call pr$d$word
conout '.'
038C+F5 PUSH PSW
038D+C5 PUSH B
038E+D5 PUSH D
038F+E5 PUSH H
0390+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0392+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0394+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0397+E1 POP H
0398+D1 POP D
0399+C1 POP B
039A+F1 POP PSW
039B 210000 lxi h,A$RUP
039E CD0000 call pr$d$word
printf ' ( '
03A1+F5 PUSH PSW
03A2+C5 PUSH B
03A3+D5 PUSH D
03A4+E5 PUSH H
03A5+0E09 MVI C,PRINTSTR
03A7+11B403 LXI D,??0028
03AA+CD0500 CALL BDOS
03AD+E1 POP H
03AE+D1 POP D
03AF+C1 POP B
03B0+F1 POP PSW
03B1+C3B803 JMP ??0027
03B4+202820 ??0028 DB ' ( '
03B7+24 DB '$'
03B8 210100 lxi h,A$RTP
03BB CD0000 call pr$d$word
printf ') '
03BE+F5 PUSH PSW
03BF+C5 PUSH B
03C0+D5 PUSH D
03C1+E5 PUSH H
03C2+0E09 MVI C,PRINTSTR
03C4+11D103 LXI D,??0030
03C7+CD0500 CALL BDOS
03CA+E1 POP H
03CB+D1 POP D
03CC+C1 POP B
03CD+F1 POP PSW
03CE+C3D403 JMP ??0029
03D1+2920 ??0030 DB ') '
03D3+24 DB '$'
printf 'COPR Douglas Goodall Licensed w/GPLv3'
03D4+F5 PUSH PSW
03D5+C5 PUSH B
03D6+D5 PUSH D
03D7+E5 PUSH H
03D8+0E09 MVI C,PRINTSTR
03DA+11E703 LXI D,??0032
03DD+CD0500 CALL BDOS
03E0+E1 POP H
03E1+D1 POP D
03E2+C1 POP B
03E3+F1 POP PSW
03E4+C30D04 JMP ??0031
03E7+434F505220??0032 DB 'COPR Douglas Goodall Licensed w/GPLv3'
040C+24 DB '$'
print crlf
040D+F5 PUSH PSW
040E+C5 PUSH B
040F+D5 PUSH D
0410+E5 PUSH H
0411+0E09 MVI C,PRINTSTR
0413+112C04 LXI D,CRLF
0416+CD0500 CALL BDOS
0419+E1 POP H
041A+D1 POP D
041B+C1 POP B
041C+F1 POP PSW
041D C9 ret
;----------------------------------------------------------------
041E argv ds 2
;----------------
0420 xprog ds 2
0422 xvers ds 2
0424 xprod ds 2
0426 xorig ds 2
0428 xser ds 2
042A xnam ds 2
042C 0D0A24 crlf db CR,LF,'$'
042F end


BIN
Apps/crossdev/BANNER.REL

Binary file not shown.

4
Apps/crossdev/BANNER.SYM

@ -1,5 +1,5 @@
000F ADAY 0009 AL0OFS 000A AL1OFS 000E ALVOFS 0002 AMONTH
041E ARGV 0002 ARMJ 0002 ARMN 0000 ARTP 0000 ARUP
001F ADAY 0009 AL0OFS 000A AL1OFS 000E ALVOFS 0003 AMONTH
041E ARGV 0002 ARMJ 0005 ARMN 0001 ARTP 0000 ARUP
07DD AYEAR 0005 BDOS E600 BIBOOT E609 BICONIN E60C BICONOUT 07DD AYEAR 0005 BDOS E600 BIBOOT E609 BICONIN E60C BICONOUT
E606 BICONST 0000 BIDRVA 0001 BIDRVB 0002 BIDRVC 0003 BIDRVD E606 BICONST 0000 BIDRVA 0001 BIDRVB 0002 BIDRVC 0003 BIDRVD
0004 BIDRVE 0005 BIDRVF 0006 BIDRVG 0007 BIDRVH E618 BIHOME 0004 BIDRVE 0005 BIDRVF 0006 BIDRVG 0007 BIDRVH E618 BIHOME

BIN
Apps/crossdev/BDOSCALL.O

Binary file not shown.

BIN
Apps/crossdev/BIOSCALL.O

Binary file not shown.

208
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,31
PUSH H
LXI H,3
PUSH H
LXI H,.5+4
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,1
PUSH H
LXI H,0
PUSH H
LXI H,5
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,31
PUSH H
LXI H,3
PUSH H
LXI H,.7+10
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,1
PUSH H
LXI H,0
PUSH H
LXI H,5
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


BIN
Apps/crossdev/CBANNER.O

Binary file not shown.

159
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


BIN
Apps/crossdev/CLOGICAL.O

Binary file not shown.

BIN
Apps/crossdev/CMEMORY.O

Binary file not shown.

527
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


BIN
Apps/crossdev/CNAMEPT1.O

Binary file not shown.

480
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


BIN
Apps/crossdev/CNAMEPT2.O

Binary file not shown.

794
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


BIN
Apps/crossdev/CNAMEPT3.O

Binary file not shown.

742
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


BIN
Apps/crossdev/CNAMEPT4.O

Binary file not shown.

164
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,1
PUSH H
LXI H,0
PUSH H
LXI H,5
PUSH H
LXI H,2
PUSH H
LXI H,2013
PUSH H
LXI H,31
PUSH H
LXI H,3
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


BIN
Apps/crossdev/CPMNAME.CPM

Binary file not shown.

BIN
Apps/crossdev/CPMNAME.O

Binary file not shown.

334
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


BIN
Apps/crossdev/CTERMCAP.O

Binary file not shown.

BIN
Apps/crossdev/DIAGNOSE.O

Binary file not shown.

BIN
Apps/crossdev/FINDFILE.COM

Binary file not shown.

BIN
Apps/crossdev/FINDFILE.CPM

Binary file not shown.

1552
Apps/crossdev/FINDFILE.PRN

File diff suppressed because it is too large

BIN
Apps/crossdev/FINDFILE.REL

Binary file not shown.

18
Apps/crossdev/HBIOS.PRN

@ -0,0 +1,18 @@
; hbios.asm 7/19/2012 dwg -
0000 = CFGVERS equ 0
public xgetsc
xgetsc:
enter
0000 06F0 mvi b,0F0h
0002 0E00 mvi c,CFGVERS
0004 110080 lxi d,8000h
0007 CF db 0cfh ; rst 8
0008 210080 lxi h,8000h
leave
000B C9 ret
000C END


BIN
Apps/crossdev/HBIOS.REL

Binary file not shown.

419
Apps/crossdev/IDENTITY.PRN

@ -0,0 +1,419 @@
; 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:
0000 221502 shld lfcbptr ; save pointer to fcb
0003 0E0F mvi c,FOPEN
0005 2A1502 lhld lfcbptr
0008 EB xchg
0009 CD0500 call BDOS
000C FEFF cpi 255
000E C27100 jnz openok
;;; memcpy lname,file1fcb+1,8
0011 0E08 mvi c,8
0013 111902 lxi d,lname
0016 2A1502 lhld lfcbptr
0019 23 inx h
001A CD0000 call x$memcpy
001D 3E2C mvi a,','
001F 322102 sta ldot
;;; memcpy lext,file1fcb+9,3
0022 0E03 mvi c,3
0024 2A1502 lhld lfcbptr
0027 110900 lxi d,9
002A 19 dad d
002B 112202 lxi d,lext
002E CD0000 call x$memcpy
0031 3E24 mvi a,'$'
0033 322502 sta lterm
print lname
0036+F5 PUSH PSW
0037+C5 PUSH B
0038+D5 PUSH D
0039+E5 PUSH H
003A+0E09 MVI C,PRINTSTR
003C+111902 LXI D,LNAME
003F+CD0500 CALL BDOS
0042+E1 POP H
0043+D1 POP D
0044+C1 POP B
0045+F1 POP PSW
printf ' -- File Not Found'
0046+F5 PUSH PSW
0047+C5 PUSH B
0048+D5 PUSH D
0049+E5 PUSH H
004A+0E09 MVI C,PRINTSTR
004C+115900 LXI D,??0002
004F+CD0500 CALL BDOS
0052+E1 POP H
0053+D1 POP D
0054+C1 POP B
0055+F1 POP PSW
0056+C36C00 JMP ??0001
0059+202D2D2046??0002 DB ' -- File Not Found'
006B+24 DB '$'
006C 3E01 mvi a,FAILURE
006E C31402 jmp fini
openok:
0071 0E1A mvi c,SETDMA
0073 112F02 lxi d,buffer
0076 CD0500 call BDOS
0079 0E14 mvi c,READSEQ
007B 2A1502 lhld lfcbptr
007E EB xchg
007F CD0500 call BDOS
0082 0E1A mvi c,SETDMA
0084 11AF02 lxi d,buffer+128
0087 CD0500 call BDOS
008A 0E14 mvi c,READSEQ
008C 2A1502 lhld lfcbptr
008F EB xchg
0090 CD0500 call BDOS
0093 0E10 mvi c,FCLOSE
0095 2A1502 lhld lfcbptr
0098 EB xchg
0099 CD0500 call BDOS
009C 116D02 lxi d,d$prog
009F 0E09 mvi c,9
00A1 CD0500 call BDOS
conout ','
00A4+F5 PUSH PSW
00A5+C5 PUSH B
00A6+D5 PUSH D
00A7+E5 PUSH H
00A8+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00AA+1E2C MVI E,',' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00AC+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00AF+E1 POP H
00B0+D1 POP D
00B1+C1 POP B
00B2+F1 POP PSW
conout ' '
00B3+F5 PUSH PSW
00B4+C5 PUSH B
00B5+D5 PUSH D
00B6+E5 PUSH H
00B7+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00B9+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00BB+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00BE+E1 POP H
00BF+D1 POP D
00C0+C1 POP B
00C1+F1 POP PSW
00C2 3A4402 lda p$rmj
00C5 6F mov l,a
00C6 2600 mvi h,0
00C8 CD0000 call pr$d$word
conout '.'
00CB+F5 PUSH PSW
00CC+C5 PUSH B
00CD+D5 PUSH D
00CE+E5 PUSH H
00CF+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00D1+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00D3+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00D6+E1 POP H
00D7+D1 POP D
00D8+C1 POP B
00D9+F1 POP PSW
00DA 3A4502 lda p$rmn
00DD 6F mov l,a
00DE CD0000 call pr$d$word
conout '.'
00E1+F5 PUSH PSW
00E2+C5 PUSH B
00E3+D5 PUSH D
00E4+E5 PUSH H
00E5+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00E7+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00E9+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00EC+E1 POP H
00ED+D1 POP D
00EE+C1 POP B
00EF+F1 POP PSW
00F0 3A4602 lda p$rup
00F3 6F mov l,a
00F4 CD0000 call pr$d$word
conout '.'
00F7+F5 PUSH PSW
00F8+C5 PUSH B
00F9+D5 PUSH D
00FA+E5 PUSH H
00FB+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00FD+1E2E MVI E,'.' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00FF+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0102+E1 POP H
0103+D1 POP D
0104+C1 POP B
0105+F1 POP PSW
0106 3A4702 lda p$rtp
0109 6F mov l,a
010A CD0000 call pr$d$word
conout ','
010D+F5 PUSH PSW
010E+C5 PUSH B
010F+D5 PUSH D
0110+E5 PUSH H
0111+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0113+1E2C MVI E,',' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0115+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0118+E1 POP H
0119+D1 POP D
011A+C1 POP B
011B+F1 POP PSW
conout ' '
011C+F5 PUSH PSW
011D+C5 PUSH B
011E+D5 PUSH D
011F+E5 PUSH H
0120+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0122+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0124+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0127+E1 POP H
0128+D1 POP D
0129+C1 POP B
012A+F1 POP PSW
012B 3A4802 lda p$mon
012E 6F mov l,a
012F CD0000 call pr$d$word
conout '/'
0132+F5 PUSH PSW
0133+C5 PUSH B
0134+D5 PUSH D
0135+E5 PUSH H
0136+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0138+1E2F MVI E,'/' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
013A+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
013D+E1 POP H
013E+D1 POP D
013F+C1 POP B
0140+F1 POP PSW
0141 3A4902 lda p$day
0144 6F mov l,a
0145 CD0000 call pr$d$word
conout '/'
0148+F5 PUSH PSW
0149+C5 PUSH B
014A+D5 PUSH D
014B+E5 PUSH H
014C+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
014E+1E2F MVI E,'/' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0150+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0153+E1 POP H
0154+D1 POP D
0155+C1 POP B
0156+F1 POP PSW
0157 2A4A02 lhld p$year
015A CD0000 call pr$d$word
conout ','
015D+F5 PUSH PSW
015E+C5 PUSH B
015F+D5 PUSH D
0160+E5 PUSH H
0161+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0163+1E2C MVI E,',' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0165+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0168+E1 POP H
0169+D1 POP D
016A+C1 POP B
016B+F1 POP PSW
conout ' '
016C+F5 PUSH PSW
016D+C5 PUSH B
016E+D5 PUSH D
016F+E5 PUSH H
0170+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0172+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0174+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0177+E1 POP H
0178+D1 POP D
0179+C1 POP B
017A+F1 POP PSW
017B 118C02 lxi d,d$prod
017E 0E09 mvi c,9
0180 CD0500 call BDOS
conout ','
0183+F5 PUSH PSW
0184+C5 PUSH B
0185+D5 PUSH D
0186+E5 PUSH H
0187+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0189+1E2C MVI E,',' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
018B+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
018E+E1 POP H
018F+D1 POP D
0190+C1 POP B
0191+F1 POP PSW
conout ' '
0192+F5 PUSH PSW
0193+C5 PUSH B
0194+D5 PUSH D
0195+E5 PUSH H
0196+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0198+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
019A+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
019D+E1 POP H
019E+D1 POP D
019F+C1 POP B
01A0+F1 POP PSW
01A1 119202 lxi d,d$orig
01A4 0E09 mvi c,9
01A6 CD0500 call BDOS
conout ','
01A9+F5 PUSH PSW
01AA+C5 PUSH B
01AB+D5 PUSH D
01AC+E5 PUSH H
01AD+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01AF+1E2C MVI E,',' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01B1+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
01B4+E1 POP H
01B5+D1 POP D
01B6+C1 POP B
01B7+F1 POP PSW
conout ' '
01B8+F5 PUSH PSW
01B9+C5 PUSH B
01BA+D5 PUSH D
01BB+E5 PUSH H
01BC+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01BE+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01C0+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
01C3+E1 POP H
01C4+D1 POP D
01C5+C1 POP B
01C6+F1 POP PSW
01C7 118502 lxi d,d$ser
01CA 0E09 mvi c,9
01CC CD0500 call BDOS
conout ','
01CF+F5 PUSH PSW
01D0+C5 PUSH B
01D1+D5 PUSH D
01D2+E5 PUSH H
01D3+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01D5+1E2C MVI E,',' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01D7+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
01DA+E1 POP H
01DB+D1 POP D
01DC+C1 POP B
01DD+F1 POP PSW
conout ' '
01DE+F5 PUSH PSW
01DF+C5 PUSH B
01E0+D5 PUSH D
01E1+E5 PUSH H
01E2+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01E4+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01E6+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
01E9+E1 POP H
01EA+D1 POP D
01EB+C1 POP B
01EC+F1 POP PSW
01ED 3ACE02 lda d$term2
01F0 FE24 cpi '$'
01F2 C20A02 jnz do$name
conout ' '
01F5+F5 PUSH PSW
01F6+C5 PUSH B
01F7+D5 PUSH D
01F8+E5 PUSH H
01F9+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
01FB+1E20 MVI E,' ' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
01FD+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0200+E1 POP H
0201+D1 POP D
0202+C1 POP B
0203+F1 POP PSW
0204 11BD02 lxi d,d$uuid+19
0207 C30D02 jmp do$any
do$name:
020A 119602 lxi d,d$name
do$any:
020D 0E09 mvi c,9
020F CD0500 call BDOS
0212 3E00 mvi a,SUCCESS ; set return code
fini:
0214 C9 ret
0215 lfcbptr ds 2
0217 ldrive ds 1
0218 lcolon ds 1
0219 lname ds 8
0221 ldot ds 1
0222 lext ds 3
0225 lterm ds 1
0226 6275666665 db 'buffer-->'
022F buffer ds 1
0230 p$start ds 2
0232 p$hexrf ds 16
0242 p$sig ds 2
0244 p$rmj ds 1
0245 p$rmn ds 1
0246 p$rup ds 1
0247 p$rtp ds 1
0248 p$mon ds 1
0249 p$day ds 1
024A p$year ds 2
024C p$argv ds 2
024E p$e5 ds 1
024F p$pr$st ds 2
0251 p$code1 ds 3 ; begin: lxi h,0
0254 p$code2 ds 1 ; dad sp
0255 p$code3 ds 3 ; shld pre$stk
0258 p$code4 ds 3 ; lxi sp,stack$top
025B p$code5 ds 1 ; nop
025C p$code6 ds 3 ; jmp around$bandata
025F p$prog ds 2 ; dw prog
0261 p$dat ds 2 ; dw dat
0263 p$prod ds 2 ; dw prod
0265 p$orig ds 2 ; dw orig
0267 p$ser ds 2 ; dw ser
0269 p$nam ds 2 ; dw nam
026B p$term ds 2 ; dw 0
026D d$prog ds 8+1+3+1 ; db '12345678.123$'
027A d$date ds 2+1+2+1+4+1 ; db ' 2/11/2012$'
0285 d$ser ds 6+1 ; db '654321$'
028C d$prod ds 5+1 ; db 'CPM80$'
0292 d$orig ds 3+1 ; db 'DWG$'
0296 d$name ds 1+7+1+1+1+1+7+1 ; db ' Douglas W. Goodall$'
02AA d$uuid ds 36 ; unique user identification
02CE d$term2 ds 1 ; can be set to zero or dollar sign
00A0 = p$len equ $-buffer
02CF p$rsvd ds 256-p$len
032F 3C2D2D6275 db '<--buffer'
0338 A000 dw p$len
033A 0D0A24 crlf db CR,LF,'$'
; eof - identity.asm


BIN
Apps/crossdev/IDENTITY.REL

Binary file not shown.

351
Apps/crossdev/LABELIB.PRN

@ -0,0 +1,351 @@
; 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 <http://www.gnu.org/licenses/>.
;
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:
0000 79 mov a,c
0001 323E01 sta drive$num
get$off
0004+F5 PUSH PSW
0005+C5 PUSH B
0006+D5 PUSH D
0007+CD1BE6 CALL BISELDSK
000A+110A00 LXI D,DPB$OFS
000D+19 DAD D
000E+5E MOV E,M
000F+23 INX H
0010+56 MOV D,M
0011+EB XCHG
0012+110D00 LXI D,OFF$OFS
0015+19 DAD D
0016+5E MOV E,M
0017+23 INX H
0018+56 MOV D,M
0019+EB XCHG
001A+D1 POP D
001B+C1 POP B
001C+F1 POP PSW
001D 7C mov a,h
001E B5 ora l
001F C26E00 jnz off$ok
printf 'Sorry, you can only label drives with reserved tracks'
0022+F5 PUSH PSW
0023+C5 PUSH B
0024+D5 PUSH D
0025+E5 PUSH H
0026+0E09 MVI C,PRINTSTR
0028+113500 LXI D,??0002
002B+CD0500 CALL BDOS
002E+E1 POP H
002F+D1 POP D
0030+C1 POP B
0031+F1 POP PSW
0032+C36B00 JMP ??0001
0035+536F727279??0002 DB 'Sorry, you can only label drives with reserved tracks'
006A+24 DB '$'
006B C3A901 jmp main$exit
off$ok:
006E 3A3E01 lda drive$num
0071 4F mov c,a
0072 215101 lxi h,buffer
0075 CD0000 call x$g$meta
0078 3A80004F lda DEFBUF ! mov c,a
007C FE00C2FA00 cpi 0 ! jnz x$lab2
; ; Interactive label functionality here...
prompt:
; signature exists so label should be displayable
print old$lbl
0081+F5 PUSH PSW
0082+C5 PUSH B
0083+D5 PUSH D
0084+E5 PUSH H
0085+0E09 MVI C,PRINTSTR
0087+11DE00 LXI D,OLD$LBL
008A+CD0500 CALL BDOS
008D+E1 POP H
008E+D1 POP D
008F+C1 POP B
0090+F1 POP PSW
; print label
0091 215101 lxi h,buffer
0094 116700 lxi d,meta$label
0097 19 dad d
0098 E5 push h
0099 D1 pop d
009A 0E09 mvi c,PRINTSTR
009C CD0500 call BDOS
print crlf
009F+F5 PUSH PSW
00A0+C5 PUSH B
00A1+D5 PUSH D
00A2+E5 PUSH H
00A3+0E09 MVI C,PRINTSTR
00A5+113B01 LXI D,CRLF
00A8+CD0500 CALL BDOS
00AB+E1 POP H
00AC+D1 POP D
00AD+C1 POP B
00AE+F1 POP PSW
print new$lbl
00AF+F5 PUSH PSW
00B0+C5 PUSH B
00B1+D5 PUSH D
00B2+E5 PUSH H
00B3+0E09 MVI C,PRINTSTR
00B5+11EA00 LXI D,NEW$LBL
00B8+CD0500 CALL BDOS
00BB+E1 POP H
00BC+D1 POP D
00BD+C1 POP B
00BE+F1 POP PSW
00BF 0E0A mvi c,READ$CON$BUF
00C1 113F01 lxi d,rcbuff
00C4 CD0500 call BDOS
00C7 3A4001 lda rclen
00CA FE00 cpi 0
00CC C2D200 jnz length$ok
00CF C3A901 jmp main$exit
length$ok:
00D2 3C inr a
00D3 328000 sta DEFBUF
00D6 3E20 mvi a,' '
00D8 328100 sta DEFBUF+1
00DB 4F mov c,a
00DC 0600 mvi b,0
00DE 214101 lxi h,rcdata
00E1 118200 lxi d,DEFBUF+2
ldir
00E4+EDB0 DB 0EDH,0B0H
print crlf
00E6+F5 PUSH PSW
00E7+C5 PUSH B
00E8+D5 PUSH D
00E9+E5 PUSH H
00EA+0E09 MVI C,PRINTSTR
00EC+113B01 LXI D,CRLF
00EF+CD0500 CALL BDOS
00F2+E1 POP H
00F3+D1 POP D
00F4+C1 POP B
00F5+F1 POP PSW
00F6 3A3E01 lda drive$num
00F9 4F 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.
;
00FA 79 mov a,c
00FB 323E01 sta drive$num
00FE 215101 lxi h,buffer
0101 116700 lxi d,meta$label
0104 19 dad d
0105 3E20 mvi a,' '
0107 011000 lxi b,meta$label$len ; max length of label
010A CD0000 call x$memset
010D 3A8000 lda DEFBUF ; pick up length of command tail
0110 FE12 cpi 18 ; compare with max size of label
0112 DA1A01 jc lenok ; jump if size is within limits
0115 3E11 mvi a,17 ; specify maximum size
0117 328000 sta DEFBUF ; and poke into default buffer size byte
011A 3A8000 lenok: lda DEFBUF ; pick up command tail size byte
011D 3D dcr a ; decrement
011E 4F mov c,a ; move to c reg as counter
011F 0600 mvi b,0
0121 215101 lxi h,buffer
0124 116700 lxi d,meta$label
0127 19 dad d
0128 EB xchg
0129 218200 lxi h,DEFBUF+2 ; set source index for move
ldir
012C+EDB0 DB 0EDH,0B0H
012E 215101 lxi h,buffer
0131 117700 lxi d,meta$term
0134 19 dad d
0135 3E24 mvi a,'$'
0137 77 mov m,a
0138 3A3E01 lda drive$num
013B 4F mov c,a
013C 215101 lxi h,buffer
013F CD0000 call x$u$meta
0142 FE01 cpi FAILURE
0144 CA6001 jz write$prot$err
0147 215101 lxi h,buffer
014A CD0000 call x$p$meta
print suc$msg
014D+F5 PUSH PSW
014E+C5 PUSH B
014F+D5 PUSH D
0150+E5 PUSH H
0151+0E09 MVI C,PRINTSTR
0153+110000 LXI D,SUC$MSG
0156+CD0500 CALL BDOS
0159+E1 POP H
015A+D1 POP D
015B+C1 POP B
015C+F1 POP PSW
015D C3A901 jmp main$exit
write$prot$err:
print wr$prot$msg
0160+F5 PUSH PSW
0161+C5 PUSH B
0162+D5 PUSH D
0163+E5 PUSH H
0164+0E09 MVI C,PRINTSTR
0166+115C00 LXI D,WR$PROT$MSG
0169+CD0500 CALL BDOS
016C+E1 POP H
016D+D1 POP D
016E+C1 POP B
016F+F1 POP PSW
0170 C3A901 jmp main$exit
readerr:
print rd$err$msg
0173+F5 PUSH PSW
0174+C5 PUSH B
0175+D5 PUSH D
0176+E5 PUSH H
0177+0E09 MVI C,PRINTSTR
0179+111B00 LXI D,RD$ERR$MSG
017C+CD0500 CALL BDOS
017F+E1 POP H
0180+D1 POP D
0181+C1 POP B
0182+F1 POP PSW
0183 C3A901 jmp main$exit
writeerr:
print wr$err$msg
0186+F5 PUSH PSW
0187+C5 PUSH B
0188+D5 PUSH D
0189+E5 PUSH H
018A+0E09 MVI C,PRINTSTR
018C+113B00 LXI D,WR$ERR$MSG
018F+CD0500 CALL BDOS
0192+E1 POP H
0193+D1 POP D
0194+C1 POP B
0195+F1 POP PSW
0196 C3A901 jmp main$exit
dontboth:
print usage$msg
0199+F5 PUSH PSW
019A+C5 PUSH B
019B+D5 PUSH D
019C+E5 PUSH H
019D+0E09 MVI C,PRINTSTR
019F+117F00 LXI D,USAGE$MSG
01A2+CD0500 CALL BDOS
01A5+E1 POP H
01A6+D1 POP D
01A7+C1 POP B
01A8+F1 POP PSW
main$exit:
01A9 C9 ret
dseg
0000 4C6162656Csuc$msg db 'Label Written Successfully$'
001B 536F727279rd$err$msg db 'Sorry, cannot read label sector$'
003B 536F727279wr$err$msg db 'Sorry, cannot write label sector$'
005C 536F727279wr$prot$msg db 'Sorry, metadata is write protected$'
007F 7573616765usage$msg db 'usage - label <label>$'
0095 536F727279ver$msg db 'Sorry, requires RomWBW or NuBios v1.5$'
00BB 556E6C6162def$label db 'Unlabeled ',0
00CC 4C6162656Cinit$msg db 'Label initialized$'
00DE 4F6C64204Cold$lbl db 'Old Label: $'
00EA 4E6577204Cnew$lbl db 'New Label: $'
00F6 436F707972copr$msg db 'Copyright (C) 2012 Douglas Goodall$'
0119 50726F6772lic$msg db 'Program licensed under the GPL v3$'
013B 0D0A crlf db CR,LF
013D 24 term db '$'
013E drive$num ds 1
013F 10 rcbuff db MAX$LABEL
0140 00 rclen db 0
0141 rcdata ds MAX$LABEL
0151 buffer ds 128
01D1 end start


BIN
Apps/crossdev/LABELIB.REL

Binary file not shown.

1649
Apps/crossdev/MAP.ASM

File diff suppressed because it is too large

BIN
Apps/crossdev/MAP.CPM

Binary file not shown.

BIN
Apps/crossdev/MAP.O

Binary file not shown.

27
Apps/crossdev/MEMORY.PRN

@ -0,0 +1,27 @@
; memory.asm 2/1/2012 dwg - memory library implementation
; maclib z80
;memcpy macro h=src,d==dst,bc=size
public x$memcpy
x$memcpy:
ldir
0000 C9 ret
; memset macro h=dst,a=data,c=siz
public x$memset
x$memset:
0001 F5 push psw
x$ms$loop:
0002 F1 pop psw
0003 77 mov m,a
0004 23 inx h
0005 0B dcx b
0006 F5 push psw
0007 78 mov a,b
0008 B1 ora c
0009 C20200 jnz x$ms$loop
000C F1 pop psw
000D C9 ret
; eof - memory.asm


BIN
Apps/crossdev/MEMORY.REL

Binary file not shown.

750
Apps/crossdev/META.ASM

@ -0,0 +1,750 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global metadata_,128
global bRunning_,2
global deflu_,2
global drive_,2
global logunit_,2
global numlu_,2
DSEG
public pSYSCFG_
pSYSCFG_:
DW -16384
CSEG
PUBLIC display_
display_: lxi d,.2
call csave
LHLD logunit_
PUSH H
LHLD drive_
PUSH H
CALL luscur_
POP D
POP D
LXI H,metadata_
PUSH H
LXI H,11
PUSH H
LXI H,0
PUSH H
LHLD drive_
PUSH H
CALL rdsector_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,0
PUSH H
LXI H,7
PUSH H
CALL crtlc_
POP D
POP D
LHLD metadata_
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,8
PUSH H
CALL crtlc_
POP D
POP D
LDA metadata_+2
MOV L,A
MVI H,0
PUSH H
LXI H,.1+28
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,9
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.1+56
PUSH H
CALL printf_
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,8
CALL .lt
JZ .5
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,metadata_+4
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+79
PUSH H
CALL printf_
POP D
POP D
JMP .3
.5:
LXI H,.1+82
PUSH H
CALL printf_
POP D
LXI H,0
PUSH H
LXI H,10
PUSH H
CALL crtlc_
POP D
POP D
LDA metadata_+12
MOV L,A
MVI H,0
LXI D,65
DAD D
PUSH H
LXI H,.1+84
PUSH H
CALL printf_
POP D
POP D
LHLD metadata_+13
XCHG
LHLD logunit_
CALL .ne
JZ .6
LHLD logunit_
SHLD metadata_+13
LHLD metadata_+97
INX H
SHLD metadata_+97
LXI H,metadata_
PUSH H
LXI H,11
PUSH H
LXI H,0
PUSH H
LHLD drive_
PUSH H
CALL wrsector_
XCHG
LXI H,8
DAD SP
SPHL
.6:
LXI H,0
PUSH H
LXI H,11
PUSH H
CALL crtlc_
POP D
POP D
LHLD numlu_
PUSH H
LHLD metadata_+13
PUSH H
LXI H,.1+109
PUSH H
CALL printf_
POP D
POP D
POP D
LXI H,0
PUSH H
LXI H,12
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.1+150
PUSH H
CALL printf_
POP D
LDA metadata_+96
MOV L,A
MVI H,0
JMP .7
.9:
LXI H,.1+172
PUSH H
CALL printf_
POP D
JMP .8
.10:
LXI H,.1+178
PUSH H
CALL printf_
POP D
JMP .8
.11:
LXI H,.1+184
PUSH H
CALL printf_
POP D
JMP .8
.7:
CALL .swt
DW 2
DW 0,.10
DW 1,.9
DW .11
.8:
LXI H,0
PUSH H
LXI H,13
PUSH H
CALL crtlc_
POP D
POP D
LHLD metadata_+97
PUSH H
LXI H,.1+190
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,14
PUSH H
CALL crtlc_
POP D
POP D
LDA metadata_+101
MOV L,A
MVI H,0
PUSH H
LDA metadata_+101
MOV L,A
MVI H,0
PUSH H
LDA metadata_+100
MOV L,A
MVI H,0
PUSH H
LDA metadata_+99
MOV L,A
MVI H,0
PUSH H
LXI H,.1+214
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
LXI H,0
PUSH H
LXI H,15
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.1+247
PUSH H
CALL printf_
POP D
LXI H,0
XCHG
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
JMP .13
.12:
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
.13:
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .14
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,metadata_+103
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+270
PUSH H
CALL printf_
POP D
POP D
JMP .12
.14:
LXI H,.1+273
PUSH H
CALL printf_
POP D
LXI H,0
PUSH H
LXI H,16
PUSH H
CALL crtlc_
POP D
POP D
LHLD metadata_+120
PUSH H
LXI H,.1+275
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,17
PUSH H
CALL crtlc_
POP D
POP D
LHLD metadata_+122
PUSH H
LXI H,.1+303
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,18
PUSH H
CALL crtlc_
POP D
POP D
LHLD metadata_+124
PUSH H
LXI H,.1+331
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,19
PUSH H
CALL crtlc_
POP D
POP D
LHLD metadata_+126
PUSH H
LXI H,.1+359
PUSH H
CALL printf_
POP D
POP D
RET
.2 EQU -2
.1:
DB 109,101,116,97,100,97,116,97,46,115,105,103,110,97,116
DB 117,114,101,32,61,32,48,120,37,48,52,120,0,109,101
DB 116,97,100,97,116,97,46,112,108,97,116,102,111,114,109
DB 32,32,61,32,48,120,37,48,50,120,0,109,101,116,97
DB 100,97,116,97,46,102,111,114,109,97,116,116,101,114,32
DB 61,32,34,0,37,99,0,34,0,109,101,116,97,100,97
DB 116,97,46,100,114,105,118,101,32,32,32,32,32,61,32
DB 37,99,58,0,109,101,116,97,100,97,116,97,46,108,111
DB 103,117,110,105,116,32,32,32,61,32,37,100,40,114,101
DB 108,48,41,32,111,102,32,37,100,32,32,32,32,32,0
DB 109,101,116,97,100,97,116,97,46,119,114,105,116,101,112
DB 114,111,116,32,61,32,0,84,82,85,69,32,0,70,65
DB 76,83,69,0,85,110,107,33,33,0,109,101,116,97,100
DB 97,116,97,46,117,112,100,97,116,101,32,32,32,32,61
DB 32,37,100,0,109,101,116,97,100,97,116,97,46,123,118
DB 101,114,125,32,32,32,32,32,61,32,37,100,46,37,100
DB 46,37,100,46,37,100,0,109,101,116,97,100,97,116,97
DB 46,108,97,98,101,108,32,32,32,32,32,61,32,34,0
DB 37,99,0,34,0,109,101,116,97,100,97,116,97,46,105
DB 110,102,108,111,99,32,32,32,32,61,32,48,120,37,48
DB 52,120,0,109,101,116,97,100,97,116,97,46,99,112,109
DB 108,111,99,32,32,32,32,61,32,48,120,37,48,52,120
DB 0,109,101,116,97,100,97,116,97,46,99,112,109,101,110
DB 100,32,32,32,32,61,32,48,120,37,48,52,120,0,109
DB 101,116,97,100,97,116,97,46,99,112,109,101,110,116,32
DB 32,32,32,61,32,48,120,37,48,52,120,0
PUBLIC menu_
menu_: lxi d,.16
call csave
LXI H,0
PUSH H
LXI H,21
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.15+0
PUSH H
CALL printf_
POP D
LXI H,.15+40
PUSH H
CALL printf_
POP D
LXI H,0
PUSH H
LXI H,21
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.15+80
PUSH H
CALL printf_
POP D
LXI H,0
XCHG
LHLD logunit_
CALL .lt
JZ .17
LXI H,.15+90
PUSH H
CALL printf_
POP D
.17:
LHLD numlu_
DCX H
PUSH H
LHLD logunit_
POP D
XCHG
CALL .lt
JZ .18
LXI H,.15+102
PUSH H
CALL printf_
POP D
.18:
LDA metadata_+96
MOV L,A
MVI H,0
PUSH H
LXI H,1
POP D
CALL .eq
JZ .19
LXI H,.15+114
PUSH H
CALL printf_
POP D
.19:
lda metadata_+96
ora a
JNZ .20
LXI H,.15+127
PUSH H
CALL printf_
POP D
.20:
LXI H,.15+138
PUSH H
CALL printf_
POP D
LXI H,1
SHLD dregbc_
CALL bdoscall_
LXI H,1
XCHG
LXI H,2-.16
DAD SP
MOV M,E
INX H
MOV M,D
LDA drega_
MOV L,A
MVI H,0
JMP .21
.23:
.24:
LXI H,0
XCHG
LXI H,2-.16
DAD SP
MOV M,E
INX H
MOV M,D
JMP .22
.25:
LHLD numlu_
DCX H
PUSH H
LHLD logunit_
POP D
XCHG
CALL .lt
JZ .26
LHLD logunit_
INX H
SHLD logunit_
JMP .27
.26:
LXI H,7
PUSH H
LXI H,.15+151
PUSH H
CALL printf_
POP D
POP D
.27:
JMP .22
.28:
LXI H,0
XCHG
LHLD logunit_
CALL .lt
JZ .29
LHLD logunit_
DCX H
SHLD logunit_
JMP .30
.29:
LXI H,7
PUSH H
LXI H,.15+154
PUSH H
CALL printf_
POP D
POP D
.30:
JMP .22
.31:
LXI H,1
MOV A,L
STA metadata_+96
LHLD metadata_+97
INX H
SHLD metadata_+97
LXI H,metadata_
PUSH H
LXI H,11
PUSH H
LXI H,0
PUSH H
LHLD drive_
PUSH H
CALL wrsector_
XCHG
LXI H,8
DAD SP
SPHL
JMP .22
.32:
LXI H,0
MOV A,L
STA metadata_+96
LHLD metadata_+97
INX H
SHLD metadata_+97
LXI H,metadata_
PUSH H
LXI H,11
PUSH H
LXI H,0
PUSH H
LHLD drive_
PUSH H
CALL wrsector_
XCHG
LXI H,8
DAD SP
SPHL
JMP .22
.33:
LXI H,7
PUSH H
LXI H,.15+157
PUSH H
CALL printf_
POP D
POP D
JMP .22
.21:
CALL .swt
DW 6
DW 43,.25
DW 45,.28
DW 88,.23
DW 112,.31
DW 117,.32
DW 120,.24
DW .33
.22:
LXI H,2-.16
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
RET
.16 EQU -2
.15:
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
DB 32,32,32,32,32,32,32,32,32,0,32,32,32,32,32
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
DB 32,32,32,32,0,79,112,116,105,111,110,115,40,32,0
DB 32,45,123,112,114,101,118,32,108,117,125,0,32,43,123
DB 110,101,120,116,32,108,117,125,0,32,117,123,110,112,114
DB 111,116,101,99,116,125,0,32,112,123,114,111,116,101,99
DB 116,125,0,32,120,123,113,117,105,116,125,32,41,58,32
DB 0,37,99,0,37,99,0,37,99,0
PUBLIC main_
main_: lxi d,.35
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,.34+0
PUSH H
CALL banner_
POP D
LXI H,25
SHLD dregbc_
CALL bdoscall_
LDA drega_
MOV L,A
MVI H,0
SHLD drive_
LHLD drive_
PUSH H
CALL lugnum_
POP D
SHLD numlu_
LHLD drive_
PUSH H
CALL lugcur_
POP D
SHLD deflu_
LHLD deflu_
SHLD logunit_
LXI H,1
SHLD bRunning_
.36:
LXI H,1
XCHG
LHLD bRunning_
CALL .eq
JZ .37
CALL display_
LXI H,1
PUSH H
CALL menu_
POP D
SHLD bRunning_
JMP .36
.37:
LHLD deflu_
PUSH H
LHLD drive_
PUSH H
CALL luscur_
POP D
POP D
LXI H,0
PUSH H
LXI H,23
PUSH H
CALL crtlc_
POP D
POP D
RET
.35 EQU 0
.34:
DB 77,69,84,65,0
extrn banner_
extrn printf_
extrn lugnum_
extrn luscur_
extrn lugcur_
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn wrsector_
extrn rdsector_
extrn bdoscall_
extrn dregbc_
extrn drega_
extrn .eq
extrn .ne
extrn .lt
END


BIN
Apps/crossdev/META.CPM

Binary file not shown.

BIN
Apps/crossdev/META.O

Binary file not shown.

529
Apps/crossdev/METADATA.PRN

@ -0,0 +1,529 @@
; metadata.asm 7/30/2012 dwg - set c=0 for BIOS WRITE calls per Wayne
; metadata.asm 2/17/2012 dwg - review for release 1.5.1.0
; metadata.asm 2/11/2012 dwg - review for release 1.5
; metadata.asm 2/ 4/2012 dwg - metadata library implementation
; 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 <http://www.gnu.org/licenses/>.
maclib portab
maclib globals
maclib cpmbios
maclib cpmbdos
maclib memory ; has x$memset
maclib applvers ; has A$RMJ, A$RMN, A$RUP, A$RTP
maclib printers
maclib stdlib ; SUCCESS and FAILURE
; metadata.lib 1/31/2012 dwg - macros to manipulate drive metadata
;
; update$meta buffer | x$u$meta hl -> buffer
; init$meta buffer | x$i$meta hl -> buffer
; get$meta drive,buffer | x$g$meta hl -> buffer, c = drivenum
; put$meta drive,buffer | x$p$meta hl -> buffer, c = drivenum
; prot$meta drive | x$pr$meta c = drivenum
; unprot$meta drive | x$un$meta c = drivenum
;
;-------------------------------------------
;meta$debug equ TRUE
0000 = meta$debug equ FALSE
0000 = meta$sig5a equ 0
0001 = meta$siga5 equ 1
0060 = meta$prot equ 128-8-1-16-7
0061 = meta$updates equ 128-8-1-16-6
0063 = meta$rmj equ 128-8-1-16-4
0064 = meta$rmn equ 128-8-1-16-3
0065 = meta$rup equ 128-8-1-16-2
0066 = meta$rtp equ 128-8-1-16-1
0067 = meta$label equ 128-8-1-16
0077 = meta$term equ 128-8-1
0078 = meta$info$loc equ 128-8
007A = meta$cpm$loc equ 128-6
007C = meta$dat$end equ 128-4
007E = meta$cpm$ent equ 128-2
0010 = meta$label$len equ meta$term-meta$label
;-----------------------------
0000 0D0A24 crlf db CR,LF,'$'
;-----------------------------
page
public x$u$meta
x$u$meta:
0003 225F00 shld x$u$bufptr
; lhld x$u$bufptr
0006 116000 lxi d,meta$prot
0009 19 dad d
000A 7E mov a,m
000B FE01 cpi TRUE ; is metadata write protected
000D CA5C00 jz x$u$proterr ; if so go around update code
; increment the update count
0010 2A5F00 lhld x$u$bufptr
0013 116100 lxi d,meta$updates
0016 19 dad d
0017 5E mov e,m ; pick up LO byte into E
0018 23 inx h
0019 56 mov d,m ; pick up HO byte into D
001A 13 inx d ; increment DE
001B 72 mov m,d
001C 2B dcx h
001D 73 mov m,e
; update last written version quad
001E 2A5F00 lhld x$u$bufptr
0021 116300 lxi d,meta$rmj
0024 19 dad d
0025 3E02 mvi a,A$RMJ
0027 77 mov m,a
0028 23 inx h
0029 3E05 mvi a,A$RMN
002B 77 mov m,a
002C 23 inx h
002D 3E00 mvi a,A$RUP
002F 77 mov m,a
0030 23 inx h
0031 3E01 mvi a,A$RTP
0033 77 mov m,a
0034 2A5F00 lhld x$u$bufptr
0037 117700 lxi d,meta$term
003A 19 dad d
003B 7E mov a,m
003C FE24 cpi '$'
003E CA5900 jz x$u$end
0041 2A5F00 lhld x$u$bufptr
0044 116700 lxi d,meta$label
0047 19 dad d
0048 3E20 mvi a,' '
004A 0E10 mvi c,16
004C CD0000 call x$memset
004F 2A5F00 lhld x$u$bufptr
0052 117700 lxi d,meta$term
0055 19 dad d
0056 3E24 mvi a,'$'
0058 77 mov m,a
x$u$end:
0059 3E00 mvi a,SUCCESS
005B C9 ret
x$u$proterr:
005C 3E01 mvi a,FAILURE
005E C9 ret
005F x$u$bufptr ds 2
;-----------------------------
page
public x$i$meta
x$i$meta:
0061 22B300 shld x$i$bufptr
0064 2AB300 lhld x$i$bufptr
0067 110000 lxi d,meta$sig5a
006A 19 dad d
006B 3E5A mvi a,05ah
006D 77 mov m,a
006E 23 inx h
006F 3EA5 mvi a,0a5h
0071 77 mov m,a
0072 2AB300 lhld x$i$bufptr
0075 116000 lxi d,meta$prot
0078 19 dad d
0079 3E00 mvi a,FALSE
007B 77 mov m,a
007C 2AB300 lhld x$i$bufptr
007F 116100 lxi d,meta$updates
0082 19 dad d
0083 3E00 mvi a,0
0085 77 mov m,a
0086 23 inx h
0087 77 mov m,a
0088 2AB300 lhld x$i$bufptr
008B 116700 lxi d,meta$label
008E 19 dad d ; hl -> dest
008F 3E20 mvi a,' '
0091 0E10 mvi c,meta$label$len
0093 CD0000 call x$memset
0096 2AB300 lhld x$i$bufptr
0099 117700 lxi d,meta$term
009C 19 dad d
009D 3E24 mvi a,'$'
009F 77 mov m,a
00A0 2AB300 lhld x$i$bufptr
00A3 116100 lxi d,meta$updates
00A6 19 dad d
00A7 3E00 mvi a,0
00A9 77 mov m,a
00AA 23 inx h
00AB 77 mov m,a
00AC 2AB300 lhld x$i$bufptr
00AF CD0300 call x$u$meta
00B2 C9 ret
00B3 x$i$bufptr ds 2
;-------------------------------------------
page
public x$g$meta
x$g$meta;
00B5 220501 shld x$g$bufptr ; entry hl has bufptr
00B8 79 mov a,c ; entry c has drivenum
00B9 320701 sta x$g$drivenum
; lda x$g$drivenum
00BC 4F mov c,a
00BD CD1BE6 call BISELDSK
00C0 010000 lxi b,0
00C3 CD1EE6 call BISETTRK
00C6 010B00 lxi b,11
00C9 CD21E6 call BISETSEC
00CC 2A0501 lhld x$g$bufptr
00CF E5 push h
00D0 C1 pop b
00D1 CD24E6 call BISETDMA
00D4 CD27E6 call BIREAD
00D7 2A0501 lhld x$g$bufptr
00DA 110100 lxi d,meta$siga5
00DD 19 dad d
00DE 7E mov a,m
00DF FEA5 cpi 0a5h
00E1 C2F400 jnz x$g$needs$init
00E4 2A0501 lhld x$g$bufptr
00E7 110000 lxi d,meta$sig5a
00EA 19 dad d
00EB 7E mov a,m
00EC FE5A cpi 05ah
00EE C2F400 jnz x$g$needs$init
00F1 C3FF00 jmp x$g$fini
x$g$needs$init:
00F4 2A0501 lhld x$g$bufptr
00F7 CD6100 call x$i$meta
00FA 0E00 mvi c,0 ; default to 0 per Wayne
00FC CD2AE6 call BIWRITE
x$g$fini:
00FF 0E0D mvi c,13
0101 CD0500 call BDOS
0104 C9 ret
0105 x$g$bufptr ds 2
0107 x$g$drivenum ds 1
;-----------------------------------
page
public x$p$meta
x$p$meta:
0108 226001 shld x$p$bufptr
010B 79 mov a,c
010C 326201 sta x$p$drivenum
IF meta$debug eq TRUE
conout 'x'
conout '$'
conout 'p'
conout '$'
printf 'meta called, drive='
lda x$p$drivenum
mov l,a
mvi h,0
call pr$d$word
printf ', buffer='
lhld x$p$bufptr
call pr$h$word
print crlf
ENDIF
; increment the update count
010F 2A6001 lhld x$p$bufptr ; hl -> buffer
0112 116100 lxi d,meta$updates ; de = offset to updates word
0115 19 dad d ; hl -> updates word
0116 5E mov e,m ; e = LO byte of updates
0117 23 inx h ; hl -> HO byte
0118 56 mov d,m ; d = HO byte of updates
0119 13 inx d ; increment DE (updates)
011A 72 mov m,d ; put back HO byte
011B 2B dcx h ; back up ptr
011C 73 mov m,e ; put back LO byte
; update last written version quad
011D 2A6001 lhld x$p$bufptr
0120 116300 lxi d,meta$rmj
0123 19 dad d
0124 3E02 mvi a,A$RMJ
0126 77 mov m,a
0127 23 inx h
0128 3E05 mvi a,A$RMN
012A 77 mov m,a
012B 23 inx h
012C 78 mov a,A$RUP
012D 77 mov m,a
012E 23 inx h
012F 3E01 mvi a,A$RTP
0131 77 mov m,a
0132 2A6001 lhld x$p$bufptr
0135 116000 lxi d,meta$prot
0138 19 dad d
0139 7E mov a,m
013A FE01 cpi TRUE ; if metadata is write protected
013C CA5F01 jz x$p$fini ; jump around update code
013F 3A6201 lda x$p$drivenum
0142 4F mov c,a
0143 CD1BE6 call BISELDSK
0146 010000 lxi b,0
0149 CD1EE6 call BISETTRK
014C 010B00 lxi b,11
014F CD21E6 call BISETSEC
0152 2A6001 lhld x$p$bufptr
0155 E5 push h
0156 C1 pop b
0157 CD24E6 call BISETDMA
015A 0E00 mvi c,0 ; default to 0 per Wayne
015C CD2AE6 call BIWRITE
IF meta$debug eq TRUE
printf 'return from BIWRITE is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
x$p$fini:
015F C9 ret
0160 x$p$bufptr ds 2
0162 x$p$drivenum ds 1
;-----------------------
page
public x$pr$meta
x$pr$meta:
0163 79 mov a,c
0164 32BF01 sta x$pr$drivenum
IF meta$debug eq TRUE
conout 'x'
conout '$'
printf 'pr'
conout '$'
printf 'meta called, drive='
lda x$pr$drivenum
mov l,a
mvi h,0
call pr$d$word
print crlf
ENDIF
0167 3ABF01 lda x$pr$drivenum
016A 4F mov c,a
016B CD1BE6 call BISELDSK
016E 010000 lxi b,0
0171 CD1EE6 call BISETTRK
0174 010B00 lxi b,11
0177 CD21E6 call BISETSEC
017A 01C001 lxi b,x$pr$buffer
017D CD24E6 call BISETDMA
0180 CD27E6 call BIREAD
IF meta$debug eq TRUE
printf 'return from BIREAD is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
0183 21C001 lxi h,x$pr$buffer
0186 116000 lxi d,meta$prot
0189 19 dad d
018A 3E01 mvi a,TRUE
018C 77 mov m,a
018D 21C001 lxi h,x$pr$buffer
0190 116100 lxi d,meta$updates
0193 19 dad d
0194 5E mov e,m
0195 23 inx h
0196 56 mov d,m
0197 13 inx d
0198 72 mov m,d
0199 2B dcx h
019A 73 mov m,e
019B 3ABF01 lda x$pr$drivenum
019E 4F mov c,a
019F CD1BE6 call BISELDSK
01A2 010000 lxi b,0
01A5 CD1EE6 call BISETTRK
01A8 010B00 lxi b,11
01AB CD21E6 call BISETSEC
01AE 01C001 lxi b,x$pr$buffer
01B1 CD24E6 call BISETDMA
01B4 0E00 mvi c,0 ; default to 0 per Wayne
01B6 CD2AE6 call BIWRITE
IF meta$debug eq TRUE
printf 'return from BIWRITE is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
01B9 0E0D mvi c,13
01BB CD0500 call BDOS
01BE C9 ret
01BF x$pr$drivenum ds 1
01C0 x$pr$buffer ds 128
;-----------------------
page
public x$un$meta
x$un$meta:
0240 79 mov a,c
0241 329C02 sta x$un$drivenum
IF meta$debug eq TRUE
conout 'x'
conout '$'
printf 'un'
conout '$'
printf 'meta called, drive='
lda x$un$drivenum
mov l,a
mvi h,0
call pr$d$word
print crlf
ENDIF
0244 3A9C02 lda x$un$drivenum
0247 4F mov c,a
0248 CD1BE6 call BISELDSK
024B 010000 lxi b,0
024E CD1EE6 call BISETTRK
0251 010B00 lxi b,11
0254 CD21E6 call BISETSEC
0257 019D02 lxi b,x$un$buffer
025A CD24E6 call BISETDMA
025D CD27E6 call BIREAD
IF meta$debug eq TRUE
printf 'return from BIREAD is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
0260 219D02 lxi h,x$un$buffer
0263 116000 lxi d,meta$prot
0266 19 dad d
0267 3E00 mvi a,FALSE
0269 77 mov m,a
026A 219D02 lxi h,x$un$buffer
026D 116100 lxi d,meta$updates
0270 19 dad d
0271 5E mov e,m
0272 23 inx h
0273 56 mov d,m
0274 13 inx d
0275 72 mov m,d
0276 2B dcx h
0277 73 mov m,e
0278 3A9C02 lda x$un$drivenum
027B 4F mov c,a
027C CD1BE6 call BISELDSK
027F 010000 lxi b,0
0282 CD1EE6 call BISETTRK
0285 010B00 lxi b,11
0288 CD21E6 call BISETSEC
028B 019D02 lxi b,x$un$buffer
028E CD24E6 call BISETDMA
0291 0E00 mvi c,0 ; default to 0 per Wayne
0293 CD2AE6 call BIWRITE
IF meta$debug eq TRUE
printf 'return from BIWRITE is '
mov l,a
mvi h,0
call pr$h$word
print crlf
ENDIF
0296 0E0D mvi c,13
0298 CD0500 call BDOS
029B C9 ret
029C x$un$drivenum ds 1
029D x$un$buffer ds 128
;-----------------------
; eof - metadata.asm


BIN
Apps/crossdev/METADATA.REL

Binary file not shown.

4
Apps/crossdev/METADATA.SYM

@ -1,5 +1,5 @@
000F ADAY 0009 AL0OFS 000A AL1OFS 000E ALVOFS 0002 AMONTH
0002 ARMJ 0002 ARMN 0000 ARTP 0000 ARUP 07DD AYEAR
001F ADAY 0009 AL0OFS 000A AL1OFS 000E ALVOFS 0003 AMONTH
0002 ARMJ 0005 ARMN 0001 ARTP 0000 ARUP 07DD AYEAR
0005 BDOS E600 BIBOOT E609 BICONIN E60C BICONOUT E606 BICONST 0005 BDOS E600 BIBOOT E609 BICONIN E60C BICONOUT E606 BICONST
0000 BIDRVA 0001 BIDRVB 0002 BIDRVC 0003 BIDRVD 0004 BIDRVE 0000 BIDRVA 0001 BIDRVB 0002 BIDRVC 0003 BIDRVD 0004 BIDRVE
0005 BIDRVF 0006 BIDRVG 0007 BIDRVH E618 BIHOME E60F BILIST 0005 BIDRVF 0006 BIDRVG 0007 BIDRVH E618 BIHOME E60F BILIST

1319
Apps/crossdev/MULTIFMT.ASM

File diff suppressed because it is too large

BIN
Apps/crossdev/MULTIFMT.CPM

Binary file not shown.

BIN
Apps/crossdev/MULTIFMT.O

Binary file not shown.

2056
Apps/crossdev/N8CHARS.ASM

File diff suppressed because it is too large

BIN
Apps/crossdev/N8CHARS.O

Binary file not shown.

609
Apps/crossdev/N8VIDTST.ASM

@ -0,0 +1,609 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global style_,1
global vdp_rege_,960
global szTemp_,128
global linenum_,1
global counter_,1
global outer_,1
global inner_,1
global limit_,1
global index_,2
PUBLIC main_
main_: lxi d,.2
call csave
CALL vdp_clr1_
CALL vdp_setr_
CALL vdp_mode_
CALL vdp_pnt_
CALL vdp_pgt_
CALL vdp_colo_
CALL vdp_load_
LDA outer_
MOV L,A
MVI H,0
LXI D,3
CALL .eq
JZ .3
LXI H,0
MOV A,L
STA style_
.3:
LXI H,.1+0
PUSH H
CALL vdp_main_
POP D
LXI H,0
XCHG
LXI H,-63-.2
DAD SP
MOV M,E
LXI H,0
MOV A,L
STA outer_
JMP .5
.4:
LDA outer_
MOV L,A
INX H
MOV A,L
STA outer_
.5:
LDA outer_
MOV L,A
MVI H,0
LXI D,4
XCHG
CALL .lt
JZ .6
LXI H,4
MOV A,L
STA linenum_
LXI H,0
MOV A,L
STA inner_
JMP .8
.7:
LDA inner_
MOV L,A
INX H
MOV A,L
STA inner_
.8:
LDA inner_
MOV L,A
MVI H,0
LXI D,6
XCHG
CALL .lt
JZ .9
LDA inner_
MOV L,A
MVI H,0
LXI D,5
XCHG
CALL .lt
JZ .10
LXI H,11
MOV A,L
STA limit_
JMP .11
.10:
LXI H,9
MOV A,L
STA limit_
.11:
LXI H,0
XCHG
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
JMP .13
.12:
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
.13:
LDA limit_
MOV L,A
MVI H,0
PUSH H
LXI H,4-.2
DAD SP
MOV E,M
INX H
MOV D,M
POP H
CALL .lt
JZ .14
LXI H,-63-.2
DAD SP
MOV E,M
MVI D,0
PUSH D
LXI H,.1+14
PUSH H
LXI H,-58-.2
DAD SP
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,-62-.2
DAD SP
PUSH H
LXI H,4-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,3
CALL .ml
INX H
INX H
PUSH H
LDA linenum_
MOV L,A
MVI H,0
PUSH H
CALL vdp_disp_
POP D
POP D
POP D
LXI H,-63-.2
DAD SP
PUSH H
MOV L,M
INX H
XCHG
POP H
MOV M,E
XCHG
DCX H
MVI H,0
PUSH H
LXI H,.1+17
PUSH H
LXI H,-58-.2
DAD SP
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,-62-.2
DAD SP
PUSH H
LXI H,4-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,3
CALL .ml
INX H
INX H
PUSH H
LDA linenum_
MOV L,A
MVI H,0
INX H
PUSH H
CALL vdp_disp_
POP D
POP D
POP D
JMP .12
.14:
LXI H,3
XCHG
LDA linenum_
MOV L,A
mvi h,0
DAD D
MOV A,L
STA linenum_
LDA inner_
MOV L,A
MVI H,0
LXI D,5
CALL .eq
JZ .15
LDA outer_
MOV L,A
MVI H,0
INX H
PUSH H
LXI H,.1+22
PUSH H
LXI H,-58-.2
DAD SP
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,-62-.2
DAD SP
PUSH H
LXI H,29
PUSH H
LXI H,20
PUSH H
CALL vdp_disp_
POP D
POP D
POP D
.15:
JMP .7
.9:
LDA outer_
MOV L,A
MVI H,0
LXI D,3
XCHG
CALL .lt
JZ .16
LXI H,.1+30
PUSH H
LXI H,2
PUSH H
LXI H,22
PUSH H
CALL vdp_disp_
POP D
POP D
POP D
LXI H,-62-.2
DAD SP
PUSH H
CALL gets_
POP D
.16:
JMP .4
.6:
LXI H,.1+57
PUSH H
LXI H,1
PUSH H
LXI H,22
PUSH H
CALL vdp_disp_
POP D
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2
CALL .eq
JZ .17
LXI H,10-.2
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 atoi_
POP D
PUSH H
LXI H,.1+93
PUSH H
LXI H,-58-.2
DAD SP
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,-62-.2
DAD SP
PUSH H
LXI H,35
PUSH H
LXI H,1
PUSH H
CALL vdp_disp_
POP D
POP D
POP D
.17:
LXI H,charset_
XCHG
LXI H,-65-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,.1+108
PUSH H
LXI H,.1+96
PUSH H
CALL fopen_
POP D
POP D
XCHG
LXI H,-67-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,.1+110
PUSH H
LXI H,-65-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fprintf_
POP D
POP D
LXI H,0
SHLD index_
JMP .19
.18:
LHLD index_
INX H
SHLD index_
.19:
LHLD index_
LXI D,256
XCHG
CALL .lt
JZ .20
LXI H,.1+163
PUSH H
LXI H,-65-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fprintf_
POP D
POP D
LHLD index_
PUSH H
LHLD index_
PUSH H
LXI H,-61-.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,-59-.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,-57-.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,-55-.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,-53-.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,-51-.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,-49-.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,-47-.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,.1+169
PUSH H
LXI H,-45-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fprintf_
XCHG
LXI H,24
DAD SP
SPHL
JMP .18
.20:
LXI H,.1+231
PUSH H
LXI H,-65-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fprintf_
POP D
POP D
LXI H,-67-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fclose_
POP D
RET
.2 EQU -71
.1:
DB 78,56,86,73,68,84,83,84,40,100,119,103,41,0,37
DB 99,0,37,48,50,120,0,80,103,32,37,100,47,52,0
DB 32,80,114,101,115,115,32,97,110,121,32,107,101,121,32
DB 116,111,32,99,111,110,116,105,110,117,101,0,69,120,101
DB 99,117,116,105,111,110,32,99,111,109,112,108,101,116,101
DB 44,114,101,116,117,114,110,101,100,32,116,111,32,67,80
DB 47,77,0,37,99,0,110,56,99,104,97,114,115,46,105
DB 110,99,0,119,0,59,32,110,56,99,104,97,114,115,46
DB 105,110,99,32,45,32,97,117,116,111,109,97,116,105,99
DB 97,108,108,121,32,103,101,110,101,114,97,116,101,100,32
DB 98,121,32,110,56,118,105,100,116,115,116,10,0,9,46
DB 68,66,9,0,37,48,51,120,104,44,37,48,51,120,104
DB 44,37,48,51,120,104,44,37,48,51,120,104,44,37,48
DB 51,120,104,44,37,48,51,120,104,44,37,48,51,120,104
DB 44,37,48,51,120,104,9,59,32,48,120,37,48,50,120
DB 40,37,100,41,10,0,59,32,101,111,102,32,45,32,110
DB 56,99,104,97,114,115,46,105,110,99,10,0
extrn fclose_
extrn fprintf_
extrn atoi_
extrn gets_
extrn sprintf_
extrn vdp_load_
extrn vdp_colo_
extrn vdp_pgt_
extrn vdp_pnt_
extrn vdp_mode_
extrn vdp_setr_
extrn vdp_clr1_
extrn vdp_main_
extrn vdp_disp_
extrn charset_
extrn fopen_
extrn .eq
extrn .lt
extrn .ml
END


BIN
Apps/crossdev/N8VIDTST.CPM

Binary file not shown.

BIN
Apps/crossdev/N8VIDTST.O

Binary file not shown.

153
Apps/crossdev/PRINTERS.PRN

@ -0,0 +1,153 @@
; printers.asm 12/25/2011 dwg -
; Copyright (C) 2011-2012 Douglas Goodall All Rights Reserved.
; For non-commercial use by N8VEM community
maclib portab
maclib cpmbdos
extrn hexref
cseg
public pr$h$nyb
pr$h$nyb:
enter
0000+F5 PUSH PSW
0001+C5 PUSH B
0002+D5 PUSH D
0003+E5 PUSH H
0004 E60F ani 15
0006 210000 lxi h,hexref
0009 85 add l
000A 6F mov l,a
000B 5E mov e,m
000C 0E02 mvi c,CWRITE
000E CD0500 call BDOS
leave
0011+E1 POP H
0012+D1 POP D
0013+C1 POP B
0014+F1 POP PSW
0015 C9 ret
public pr$h$byte
pr$h$byte:
enter
0016+F5 PUSH PSW
0017+C5 PUSH B
0018+D5 PUSH D
0019+E5 PUSH H
001A F5 push psw
001B 0F rrc
001C 0F rrc
001D 0F rrc
001E 0F rrc
001F CD0000 call pr$h$nyb
0022 F1 pop psw
0023 CD0000 call pr$h$nyb
leave
0026+E1 POP H
0027+D1 POP D
0028+C1 POP B
0029+F1 POP PSW
002A C9 ret
public pr$h$word
pr$h$word:
enter
002B+F5 PUSH PSW
002C+C5 PUSH B
002D+D5 PUSH D
002E+E5 PUSH H
002F E5 push h
0030 7C mov a,h
0031 CD1600 call pr$h$byte
0034 E1 pop h
0035 7D mov a,l
0036 CD1600 call pr$h$byte
leave
0039+E1 POP H
003A+D1 POP D
003B+C1 POP B
003C+F1 POP PSW
003D C9 ret
public pr$d$word
pr$d$word:
enter
003E+F5 PUSH PSW
003F+C5 PUSH B
0040+D5 PUSH D
0041+E5 PUSH H
0042 CD4A00 call PDEC
leave
0045+E1 POP H
0046+D1 POP D
0047+C1 POP B
0048+F1 POP PSW
0049 C9 ret
; From the "99 Bottles of Beer" web page at
; http://99-bottles-of-beer.net/language-assembler-(8080-8085)-764.html
; adapted for use in RomWBW/Apps with rmac syntax
; PRINT HL AS A DECIMAL NUMBER (0-65535)
; public PDEC
public PDEC,PDEC1,PDEC2,PDEC3,PDEC4,PDEC5
004A AF PDEC: XRA A ; LEADING ZERO FLAG
004B 320100 STA PDEC5
004E 01F0D8 LXI B, -10000
0051 CD6C00 CALL PDEC1
0054 0118FC LXI B, -1000
0057 CD6C00 CALL PDEC1
005A 019CFF LXI B, -100
005D CD6C00 CALL PDEC1
0060 0EF6 MVI C, -10
0062 CD6C00 CALL PDEC1
0065 0EFF MVI C, -1
0067 3EFF MVI A, 0FFh ; IF NUMBER IS ZERO, THIS MAKES SURE
0069 320100 STA PDEC5 ; IT'S PRINTED
006C 3E2F PDEC1: MVI A, '/' ; "0" - 1
006E 3C PDEC2: INR A
006F 09 DAD B
0070 DA6E00 JC PDEC2
0073 320000 STA PDEC4 ; SUBTRACT BC FROM HL
0076 7D MOV A, L
0077 99 SBB C
0078 6F MOV L, A
0079 7C MOV A, H
007A 98 SBB B
007B 67 MOV H, A
007C 3A0000 LDA PDEC4
007F FE30 CPI '0' ; ZERO?
0081 C28A00 JNZ PDEC3
0084 3A0100 LDA PDEC5 ; ZERO FLAG SET?
0087 FE00 CPI 0h
0089 C8 RZ ; COMMENT OUT TO PRINT LEADING ZEROS
008A 3A0000 PDEC3: LDA PDEC4
CONOUTA ; WAS "CALL PCHAR"
008D+F5 PUSH PSW
008E+C5 PUSH B
008F+D5 PUSH D
0090+E5 PUSH H
0091+0E02 MVI C,CWRITE
0093+5F MOV E,A
0094+CD0500 CALL BDOS
0097+E1 POP H
0098+D1 POP D
0099+C1 POP B
009A+F1 POP PSW
009B 3EFF MVI A, 0FFh ; SET LEADING ZERO FLAG
009D 320100 STA PDEC5
00A0 C9 RET
dseg
0000 00 PDEC4: DB 0 ; TEMP FOR 16 BIT SUBTRACTION
0001 00 PDEC5: DB 0 ; FLAG FOR LEADING ZEROS
0002 END


BIN
Apps/crossdev/PRINTERS.REL

Binary file not shown.

24
Apps/crossdev/REM.PRN

@ -0,0 +1,24 @@
; rem.asm 1/28/2012 dwg - update for 1.4.1.0
; rem.asm 1/23/2012 dwg - fix stack bug
; rem.asm 1/16/2012 dwg - a remark in a submit 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 <http://www.gnu.org/licenses/>.
;
0000 0E00 start: mvi c,0
0002 CD0500 call 5
0005 end start


BIN
Apps/crossdev/REM.REL

Binary file not shown.

117
Apps/crossdev/SECTORIO.ASM

@ -0,0 +1,117 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
PUBLIC rdsector_
rdsector_: lxi d,.2
call csave
LXI H,-6629
SHLD ireghl_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
LXI H,0
SHLD iregde_
CALL bioscall_
LXI H,-6626
SHLD ireghl_
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LXI H,-6623
SHLD ireghl_
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LXI H,-6620
SHLD ireghl_
LXI H,14-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LXI H,-6617
SHLD ireghl_
CALL bioscall_
LDA irega_
MOV L,A
MVI H,0
RET
.2 EQU 0
PUBLIC wrsector_
wrsector_: lxi d,.3
call csave
LXI H,-6629
SHLD ireghl_
LXI H,8-.3
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
LXI H,0
SHLD iregde_
CALL bioscall_
LXI H,-6626
SHLD ireghl_
LXI H,10-.3
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LXI H,-6623
SHLD ireghl_
LXI H,12-.3
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LXI H,-6620
SHLD ireghl_
LXI H,14-.3
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LXI H,-6614
SHLD ireghl_
LXI H,0
SHLD iregbc_
CALL bioscall_
LDA irega_
MOV L,A
MVI H,0
RET
.3 EQU 0
extrn bioscall_
extrn ireghl_
extrn iregde_
extrn iregbc_
extrn irega_
END


BIN
Apps/crossdev/SETLABEL.CPM

Binary file not shown.

152
Apps/crossdev/SETLABEL.PRN

@ -0,0 +1,152 @@
; setlabel.asm 2/22/2012 dwg - use new labelib macro library for labels
; 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 <http://www.gnu.org/licenses/>.
;
maclib portab
maclib globals
maclib stdlib ; SUCCESS & FAILURE
maclib cpmbios
maclib cpmbdos
maclib bioshdr
maclib applvers
maclib cpmappl
maclib banner
maclib identity
maclib labelib
maclib version
cseg
do$start ; begin application housekeeping
0000+C32200 START: JMP BEGIN
0003+3031323334HEXREF DB '0123456789ABCDEF'
0013+4944 ID$SIG DB 'ID'
0015+02 ID$RMJ DB A$RMJ
0016+05 ID$RMN DB A$RMN
0017+00 ID$RUP DB A$RUP
0018+01 ID$RTP DB A$RTP
0019+03 ID$MON DB A$MONTH
001A+1F ID$DAY DB A$DAY
001B+DD07 ID$YR DW A$YEAR
001D+3000 ID$ARGV DW ARGV
001F+E5 DB 0E5H
0020+ PRE$STK DS 2
0022+210000 BEGIN: LXI H,0
0025+39 DAD SP
0026+222000 SHLD PRE$STK
0029+312A03 LXI SP,STACK$TOP
002C+00 NOP
002D C3A000 jmp around$bandata
0030 3E004B005Dargv dw prog,dat,prod,orig,ser,myname,0
003E 5345544C41prog db 'SETLABEL.COM$'
date
004B+20332F3331DAT DB ' 3/31/2013$'
serial
0056+3635343332SER DB '654321$'
product
005D+43504D3830PROD DB 'CPM80$'
originator
0063+44574724 ORIG DB 'DWG$'
oriname
0067+20444F5547MYNAME DB ' DOUGLAS W GOODALL $'
007B 4133454544uuid db 'A3EEDB99-2CC0-483E-8176-A67118936E32$'
around$bandata:
sbanner argv
00A0+213000 LXI H,ARGV
00A3+CD0000 CALL X$SBANNER
; version warn$msg,error$msg
00A6 0E19 mvi c,RETCURR
00A8 CD0500 call BDOS
00AB 320000 sta drive$num
00AE 4F mov c,a
get$off
00AF+F5 PUSH PSW
00B0+C5 PUSH B
00B1+D5 PUSH D
00B2+CD1BE6 CALL BISELDSK
00B5+110A00 LXI D,DPB$OFS
00B8+19 DAD D
00B9+5E MOV E,M
00BA+23 INX H
00BB+56 MOV D,M
00BC+EB XCHG
00BD+110D00 LXI D,OFF$OFS
00C0+19 DAD D
00C1+5E MOV E,M
00C2+23 INX H
00C3+56 MOV D,M
00C4+EB XCHG
00C5+D1 POP D
00C6+C1 POP B
00C7+F1 POP PSW
00C8 7C mov a,h
00C9 B5 ora l
00CA C21901 jnz off$ok
printf 'Sorry, you can only label drives with reserved tracks'
00CD+F5 PUSH PSW
00CE+C5 PUSH B
00CF+D5 PUSH D
00D0+E5 PUSH H
00D1+0E09 MVI C,PRINTSTR
00D3+11E000 LXI D,??0002
00D6+CD0500 CALL BDOS
00D9+E1 POP H
00DA+D1 POP D
00DB+C1 POP B
00DC+F1 POP PSW
00DD+C31601 JMP ??0001
00E0+536F727279??0002 DB 'Sorry, you can only label drives with reserved tracks'
0115+24 DB '$'
0116 C32001 jmp main$exit
off$ok:
0119 3A0000 lda drive$num ; using the default drive number
011C 4F mov c,a ; (presented in the C register)
011D CD0000 call x$label ; call the actual code in labelib.asm
main$exit:
do$end ; finish up application housekeeping
0120+2A2000 LHLD PRE$STK
0123+F9 SPHL
0124+0E0D MVI C,13
0126+CD0500 CALL BDOS
0129+C9 RET
012A+ DS STACK$SIZE
dseg
0000 drive$num ds 1
; here are the two strings required for the version call
0001 5468652076warn$msg db 'The version number of this program '
0024 6973206E6F db 'is not exactly the same as the BIOS',CR,LF,'$'
004A 536F727279error$msg db 'Sorry, requires RomWBW or NuBios v2.0'
006F 0D0A24 crlf db CR,LF,'$'
0072 end start


BIN
Apps/crossdev/SETLABEL.REL

Binary file not shown.

982
Apps/crossdev/SYSGEN.ASM

@ -0,0 +1,982 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global pDPHMAP_,2
global pDPHVEC_,24
global pINFOLIS_,2
global pDPH_,2
global pDPB_,2
DSEG
public pSYSCFG_
pSYSCFG_:
DW -16384
CSEG
global filespec_,32
global pBUFFER_,2
global szDrive_,32
global szTemp_,128
PUBLIC rdimage_
rdimage_: lxi d,.2
call csave
LXI H,.1+0
PUSH H
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fopen_
POP D
POP D
XCHG
LXI H,0-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.2
DAD SP
mov a,m
inx h
ora m
JNZ .3
LXI H,0
RET
.3:
LXI H,0-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,1
PUSH H
LXI H,16-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fread_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fclose_
POP D
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
RET
.2 EQU -4
.1:
DB 114,0
PUBLIC strupr_
strupr_: lxi d,.5
call csave
LXI H,0
XCHG
LXI H,2-.5
DAD SP
MOV M,E
INX H
MOV M,D
JMP .7
.6:
LXI H,2-.5
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,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL strlen_
POP D
PUSH H
LXI H,4-.5
DAD SP
MOV E,M
INX H
MOV D,M
POP H
CALL .lt
JZ .8
LXI H,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
MVI D,0
LXI H,97
CALL .ge
JZ .9
LXI H,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
MVI D,0
LXI H,122
CALL .le
JZ .10
LXI H,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
MVI D,0
LXI H,223
CALL .an
PUSH H
LXI H,10-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,4-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
POP D
MOV M,E
.10:
.9:
JMP .6
.8:
RET
.5 EQU -2
PUBLIC sysgen_
sysgen_: lxi d,.11
call csave
.12:
LXI H,0
XCHG
LXI H,18-.11
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .13
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL wrsector_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.4+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
LXI H,13
PUSH H
LXI H,.4+43
PUSH H
CALL printf_
POP D
POP D
LXI H,128
XCHG
LXI H,14-.11
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,12-.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
LXI H,12-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16-.11
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .14
LXI H,10-.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
LXI H,0
XCHG
LXI H,12-.11
DAD SP
MOV M,E
INX H
MOV M,D
.14:
LXI H,18-.11
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
DCX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
JMP .12
.13:
LXI H,.4+46
PUSH H
CALL printf_
POP D
LXI H,13
PUSH H
LXI H,.4+87
PUSH H
CALL printf_
POP D
POP D
RET
.11 EQU 0
.4:
DB 100,114,105,118,101,61,37,99,58,44,32,116,114,107,61
DB 37,100,44,32,115,101,99,61,37,51,100,44,32,32,112
DB 116,114,61,48,120,48,37,52,120,32,32,32,0,37,99
DB 0,32,32,32,32,32,32,32,32,32,32,32,32,32,32
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
DB 32,32,32,32,32,32,32,32,32,32,32,0,37,99,0
PUBLIC main_
main_: lxi d,.16
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
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
PUSH H
LXI H,0
PUSH H
LXI H,5
PUSH H
LXI H,2
PUSH H
LXI H,2013
PUSH H
LXI H,31
PUSH H
LXI H,3
PUSH H
LXI H,.15+0
PUSH H
CALL printf_
XCHG
LXI H,16
DAD SP
SPHL
LXI H,.15+33
PUSH H
CALL printf_
POP D
LXI H,25
SHLD dregbc_
CALL bdoscall_
LDA drega_
MOV L,A
MVI H,0
XCHG
LXI H,-14-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-32768
SHLD pBUFFER_
LXI H,1
XCHG
LXI H,8-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .17
LXI H,0
XCHG
LXI H,-12-.16
DAD SP
MOV M,E
INX H
MOV M,D
JMP .19
.18:
LXI H,-12-.16
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,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,12
CALL .lt
JZ .20
LXI H,-6602
SHLD ireghl_
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LHLD iregbc_
LXI D,8
XCHG
CALL .ur
JNZ .21
JMP .20
.21:
JMP .18
.20:
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+77
PUSH H
LXI H,filespec_
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.16
DAD SP
mov a,m
inx h
ora m
JNZ .22
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+88
PUSH H
LXI H,filespec_
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.16
DAD SP
mov a,m
inx h
ora m
JNZ .23
LXI H,.15+100
PUSH H
CALL printf_
POP D
LXI H,1
PUSH H
CALL exit_
POP D
.23:
.22:
.17:
LXI H,2
XCHG
LXI H,8-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .24
LXI H,10-.16
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,filespec_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
.24:
LXI H,3
XCHG
LXI H,8-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .25
LXI H,10-.16
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,filespec_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,10-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,4
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,szDrive_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,szDrive_
PUSH H
CALL strupr_
POP D
LDA szDrive_
MOV L,A
MVI H,0
LXI D,-65
DAD D
XCHG
LXI H,-14-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
.25:
LXI H,-6629
SHLD ireghl_
LXI H,-14-.16
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
LXI H,0
SHLD iregde_
CALL bioscall_
LHLD ireghl_
SHLD pDPH_
LHLD pDPH_
LXI D,10
DAD D
MOV E,M
INX H
MOV D,M
XCHG
SHLD pDPB_
LHLD pDPB_
MOV E,M
INX H
MOV D,M
LXI H,-4-.16
DAD SP
MOV M,E
INX H
MOV M,D
LHLD pDPB_
LXI D,13
DAD D
MOV E,M
INX H
MOV D,M
LXI H,-16-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-6-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-8-.16
DAD SP
MOV M,E
INX H
MOV M,D
LHLD pBUFFER_
XCHG
LXI H,-146-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,128
CALL .dv
XCHG
LXI H,-10-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-16-.16
DAD SP
mov a,m
inx h
ora m
JNZ .26
LXI H,-14-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+142
PUSH H
CALL printf_
POP D
POP D
LXI H,1
PUSH H
CALL exit_
POP D
.26:
LXI H,.15+190
PUSH H
CALL printf_
POP D
LXI H,0-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,filespec_
PUSH H
LXI H,-10-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+242
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,.15+277
PUSH H
CALL printf_
POP D
LXI H,.15+302
PUSH H
CALL printf_
POP D
LXI H,1
SHLD dregbc_
CALL bdoscall_
LDA drega_
MOV L,A
MVI H,0
PUSH H
LXI H,89
POP D
CALL .ne
JZ .27
LXI H,.15+304
PUSH H
CALL printf_
POP D
LXI H,1
PUSH H
CALL exit_
POP D
.27:
LXI H,-10-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-2-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LHLD pBUFFER_
PUSH H
LXI H,-2-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,2-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-4-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL sysgen_
XCHG
LXI H,12
DAD SP
SPHL
LXI H,-14-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+350
PUSH H
CALL printf_
POP D
POP D
RET
.16 EQU -152
.15:
DB 83,89,83,71,69,78,46,67,79,77,32,37,100,47,37
DB 100,47,37,100,32,118,37,100,46,37,100,46,37,100,46
DB 37,100,0,32,100,119,103,32,45,32,87,114,105,116,101
DB 32,83,121,115,116,101,109,32,73,109,97,103,101,32,116
DB 111,32,83,116,111,114,97,103,101,32,77,101,100,105,97
DB 10,0,37,99,58,67,80,77,46,83,89,83,0,37,99
DB 58,90,83,89,83,46,83,89,83,0,83,111,114,114,121
DB 44,32,99,111,117,108,100,32,110,111,116,32,114,101,97
DB 100,32,100,101,102,97,117,108,116,32,115,121,115,116,101
DB 109,32,102,105,108,101,0,83,111,114,114,121,44,32,37
DB 99,58,32,68,114,105,118,101,32,100,111,101,115,32,110
DB 111,116,32,104,97,118,101,32,114,101,115,101,114,118,101
DB 100,32,116,114,97,99,107,115,10,0,80,114,101,112,97
DB 114,105,110,103,32,116,111,32,116,114,97,110,115,102,101
DB 114,32,116,104,101,32,67,80,47,77,32,115,121,115,116
DB 101,109,32,105,109,97,103,101,32,116,111,32,116,104,101
DB 32,0,37,99,58,32,100,114,105,118,101,32,102,114,111
DB 109,32,37,115,10,102,105,108,101,32,119,104,105,99,104
DB 32,105,115,32,37,100,0,32,98,121,116,101,115,32,108
DB 111,110,103,44,32,79,75,63,32,40,89,47,110,41,58
DB 32,0,10,0,83,121,115,103,101,110,32,111,112,101,114
DB 97,116,105,111,110,32,99,97,110,99,101,108,108,101,100
DB 32,112,101,114,32,121,111,117,114,32,114,101,113,117,101
DB 115,116,46,10,0,37,99,58,32,100,114,105,118,101,32
DB 115,104,111,117,108,100,32,98,101,32,98,111,111,116,97
DB 98,108,101,32,110,111,119,32,58,45,41,0
extrn strcpy_
extrn exit_
extrn sprintf_
extrn printf_
extrn strlen_
extrn fclose_
extrn fread_
extrn wrsector_
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn bdoscall_
extrn dregbc_
extrn drega_
extrn bioscall_
extrn ireghl_
extrn iregde_
extrn iregbc_
extrn fopen_
extrn .an
extrn .eq
extrn .ne
extrn .lt
extrn .le
extrn .ge
extrn .ur
extrn .dv
END


BIN
Apps/crossdev/SYSGEN.CPM

Binary file not shown.

BIN
Apps/crossdev/SYSGEN.O

Binary file not shown.

370
Apps/crossdev/TERMINAL.PRN

@ -0,0 +1,370 @@
; terminal.asm 2/17/2012 dwg - review for release 1.5.1.0
; terminal.asm 12/26/2011 dwg -
; 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 <http://www.gnu.org/licenses/>.
; The termbind lib is the home of the macros that are the
; ; front end for access to library routines that implement
; ; terminal specific functionality.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Table 4-11 VT52 Escape Sequences;
; ESC A; Cursor up.;; ESC B; Cursor down.;; ESC C; Cursor right.;
; ESC D; Cursor left.;; ESC F; Enter graphics mode.;; ESC G; Exit graphics mode.;; ESC H; Cursor to home
; ANSI
; CSI = <esc>[
; CSI n A CUU - CUrsor Up, n cells
; CSI n B CUD - CUrsor Down, n cells
; CSI n C CUF - CUrsor Forward
; CSI n D CUB - CUrsor Back
; CSI n E CNL - Cursor Next Line
; CSI n F CPL - Cursor Previous Line
; CSI n G CHA - Cursor Horizontal Absolute
; CSI n ; m H CUP - Cursor Position,n = row, m = col (1rel)
; CSI 0 J ED - clear from cursor to EOS
; CSI 1 J ED - clear from cursor to BOS
; CSI 2 J ED - clear screen
; CSI n K EL - 0-clr-2eol,1-clr-to-bol,2-clr-line
; CSI n S SU - Scroll Up
; CSI n T SD - Scroll Down
; CSI s SCP - Save Cursor Position
; CSI u RCP - Restore Cursor Position
; CSI n [;k] m SGR - Select Graphic Rendition
; CSI 0 m SGR - Reset / Normal
; CSI 1 m SGR - Bright or Bold
; CSI 3 m SGR - italic on
; CSI 4 m SGR - underline (single) on
; CSI 5 m SGR - blink slow
; CSI 6 m SGR - blink rapid
; CSI 7 m SGR - negative
; CSI 8 m SGR - Conceal
; CSI 9 m SGR - Crossed Out
; CSI 10 m SGR - Primary (default) Font
; CSI 21 m SGR - Bright Bold Off
; CSI 22 m SGR - Normal COlor or Intensity
; CSI 23 m SGR - Not Italic
; CSI 24 m SGR - Not underline
; CSI 25 m SGR - Not Blink
; CSI 27 m SGR - Image Positive
; CSI 28 m SGR - Reveal
; CSI 29 m SGR - Not Crossed Out
; CSI 30 m SGR - Black CSI 30 ; 1 m (light black)
; CSI 31 m SGR - Red CSI 31 ; 1 m (light red)
; CSI 32 m SGR - Green CSI 32 ; 1 m (light green)
; CSI 33 m SGR - Yellow CSI 33 ; 1 m (light yellow)
; CSI 34 m SGR - Blue CSI 34 ; 1 m (light blue)
; CSI 35 m SGR - Magenta CSI 35 ; 1 m (light magenta)
; CSI 36 m SGR - Cyan CSI 36 ; 1 m (light cyan)
; CSI 37 m SGR - White CSI 37 ; 1 m (light white)
; CSI 39 m SGR - Set Default Text Color
; CSI 40-47 m SGR - Set Background Color
; CSI 6 n DSR - Device Status Report
; VT100
; VT220
; WYSE
; WY50
; ESC = r c Set Cursor Position (see row codes)
; ESC * Clear screen to nulls
; ESC + Clear screen to spaces
maclib portab
maclib std
maclib cpmbios
maclib cpmbdos
maclib bioshdr
maclib hbios
maclib cnfgdata
; enter with the number in de
public xprdec
0000 216801 xprdec: lxi h,dr
0003 19 dad d
0004 19 dad d
0005 19 dad d
0006 19 dad d
0007 EB xchg
0008 0E09 mvi c,9
000A CD0500 call 5
000D C9 ret
public xcrtinit
xcrtinit:
000E CD0000 call xgetsc
0011 214480 lxi h,termtype
0014 7E mov a,m
0015 326203 sta ttyp
0018 C9 ret
public xcrtclr
xcrtclr:
0019 3A6203 lda ttyp
001C FE01 cpi TERM$ANSI
001E C24000 jnz xnotansi1
0021 0E021E1BCD mvi c,2 ! mvi e,27 ! call 5
0028 0E021E5BCD mvi c,2 ! mvi e,'[' ! call 5
002F 0E021E32CD mvi c,2 ! mvi e,'2' ! call 5
0036 0E021E4ACD mvi c,2 ! mvi e,'J' ! call 5
003D C3A700 jmp xdone1
xnotansi1:
0040 FE02 cpi TERM$WYSE
0042 C26600 jnz xnotwyse1
conout 27
0045+F5 PUSH PSW
0046+C5 PUSH B
0047+D5 PUSH D
0048+E5 PUSH H
0049+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
004B+1E1B MVI E,27 ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
004D+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0050+E1 POP H
0051+D1 POP D
0052+C1 POP B
0053+F1 POP PSW
conout '+'
0054+F5 PUSH PSW
0055+C5 PUSH B
0056+D5 PUSH D
0057+E5 PUSH H
0058+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
005A+1E2B MVI E,'+' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
005C+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
005F+E1 POP H
0060+D1 POP D
0061+C1 POP B
0062+F1 POP PSW
0063 C3A700 jmp xdone1
xnotwyse1:
0066 FE03 cpi TERM$VT52
0068 C23201 jnz xdone
conout 27
006B+F5 PUSH PSW
006C+C5 PUSH B
006D+D5 PUSH D
006E+E5 PUSH H
006F+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0071+1E1B MVI E,27 ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0073+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0076+E1 POP H
0077+D1 POP D
0078+C1 POP B
0079+F1 POP PSW
conout 'H' ; Cursor to Hoe
007A+F5 PUSH PSW
007B+C5 PUSH B
007C+D5 PUSH D
007D+E5 PUSH H
007E+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
0080+1E48 MVI E,'H' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0082+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0085+E1 POP H
0086+D1 POP D
0087+C1 POP B
0088+F1 POP PSW
conout 27
0089+F5 PUSH PSW
008A+C5 PUSH B
008B+D5 PUSH D
008C+E5 PUSH H
008D+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
008F+1E1B MVI E,27 ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
0091+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0094+E1 POP H
0095+D1 POP D
0096+C1 POP B
0097+F1 POP PSW
conout 'J' ; Erase to End of Screen
0098+F5 PUSH PSW
0099+C5 PUSH B
009A+D5 PUSH D
009B+E5 PUSH H
009C+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
009E+1E4A MVI E,'J' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00A0+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00A3+E1 POP H
00A4+D1 POP D
00A5+C1 POP B
00A6+F1 POP PSW
xdone1:
00A7 C9 ret
; h=line l=col
public xcrtlc
xcrtlc:
00A8 3A6203 lda ttyp
00AB FE01 cpi TERM$ANSI
00AD CA0601 jz xisansi
00B0 FE02 cpi TERM$WYSE
00B2 CABB00 jz xiswyse
00B5 FE03 cpi TERM$VT52
00B7 CA3301 jz xisvt52
00BA C9 ret
xiswyse:
00BB 7C mov a,h
00BC 326003 sta templine
00BF 7D mov a,l
00C0 326103 sta tempcol
conout 27
00C3+F5 PUSH PSW
00C4+C5 PUSH B
00C5+D5 PUSH D
00C6+E5 PUSH H
00C7+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00C9+1E1B MVI E,27 ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00CB+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00CE+E1 POP H
00CF+D1 POP D
00D0+C1 POP B
00D1+F1 POP PSW
conout '='
00D2+F5 PUSH PSW
00D3+C5 PUSH B
00D4+D5 PUSH D
00D5+E5 PUSH H
00D6+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
00D8+1E3D MVI E,'=' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
00DA+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
00DD+E1 POP H
00DE+D1 POP D
00DF+C1 POP B
00E0+F1 POP PSW
00E1 3A6003 lda templine
00E4 5F mov e,a
00E5 1600 mvi d,0
00E7 21F802 lxi h,wy50row
00EA 19 dad d
00EB 2B dcx h
00EC 5E mov e,m
00ED 0E02 mvi c,2
00EF CD0500 call BDOS
;
00F2 3A6103 lda tempcol
00F5 5F mov e,a
00F6 1600 mvi d,0
00F8 211003 lxi h,wy50col
00FB 19 dad d
00FC 2B dcx h
00FD 5E mov e,m
00FE 0E02 mvi c,2
0100 CD0500 call BDOS
0103 C33201 jmp xdone
;------->
xisansi:
0106 E5 push h
0107 E5 push h
0108 0E021E1BCD mvi c,2 ! mvi e,27 ! call 5
010F 0E021E5BCD mvi c,2 ! mvi e,'[' ! call 5
0116 E1 pop h
0117 5C mov e,h
0118 1600 mvi d,0
011A CD0000 call xprdec
011D 0E021E3BCD mvi c,2 ! mvi e,';' ! call 5
0124 E1 pop h
0125 5D mov e,l
0126 1600 mvi d,0
0128 CD0000 call xprdec
012B 0E021E66CD mvi c,2 ! mvi e,66h ! call 5
xdone:
0132 C9 ret
xisvt52:
0133 E5 push h
0134 E5 push h
conout 27
0135+F5 PUSH PSW
0136+C5 PUSH B
0137+D5 PUSH D
0138+E5 PUSH H
0139+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
013B+1E1B MVI E,27 ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
013D+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
0140+E1 POP H
0141+D1 POP D
0142+C1 POP B
0143+F1 POP PSW
conout 'Y'
0144+F5 PUSH PSW
0145+C5 PUSH B
0146+D5 PUSH D
0147+E5 PUSH H
0148+0E02 MVI C,CWRITE ; SET FOR CONSOLE OUTPUT BDOS CALL
014A+1E59 MVI E,'Y' ; PLACE OUTPUT CHARACTER IN E AS REQUIRED
014C+CD0500 CALL BDOS ; CALL BDOS FUNCTION ENTRY POINT
014F+E1 POP H
0150+D1 POP D
0151+C1 POP B
0152+F1 POP PSW
0153 E1 pop h
0154 7C mov a,h
0155 C620 adi 32
0157 5F mov e,a
0158 0E02 mvi c,CWRITE
015A CD0500 call BDOS
015D E1 pop h
015E 7D mov a,l
015F C620 adi 32
0161 5F mov e,a
0162 0E02 mvi c,CWRITE
0164 CD0500 call BDOS
0167 C9 ret
public dr
0168 3024202031dr db '0$ ','1$ ','2$ ','3$ ','4$ '
017C 3524202036 db '5$ ','6$ ','7$ ','8$ ','9$ '
0190 3130242031 db '10$ ','11$ ','12$ ','13$ ','14$ '
01A4 3135242031 db '15$ ','16$ ','17$ ','18$ ','19$ '
01B8 3230242032 db '20$ ','21$ ','22$ ','23$ ','24$ '
01CC 3235242032 db '25$ ','26$ ','27$ ','28$ ','29$ '
01E0 3330242033 db '30$ ','31$ ','32$ ','33$ ','34$ '
01F4 3335242033 db '35$ ','36$ ','37$ ','38$ ','39$ '
0208 3430242034 db '40$ ','41$ ','42$ ','43$ ','44$ '
021C 3435242034 db '45$ ','46$ ','47$ ','48$ ','49$ '
0230 3530242035 db '50$ ','51$ ','52$ ','53$ ','54$ '
0244 3535242035 db '55$ ','56$ ','57$ ','58$ ','59$ '
0258 3630242036 db '60$ ','61$ ','62$ ','63$ ','64$ '
026C 3635242036 db '65$ ','66$ ','67$ ','68$ ','69$ '
0280 3730242037 db '70$ ','71$ ','72$ ','73$ ','74$ '
0294 3735242037 db '75$ ','76$ ','77$ ','78$ ','79$ '
02A8 3830242038 db '80$ ','81$ ','82$ ','83$ ','84$ '
02BC 3835242038 db '85$ ','86$ ','87$ ','88$ ','89$ '
02D0 3930242039 db '90$ ','91$ ','92$ ','93$ ','94$ '
02E4 3935242039 db '95$ ','96$ ','97$ ','99$ ','100$'
0000 = SINGLEQUOTE equ 0
0000 = RIGHTQUOTE equ 0
0000 = LEFTQUOTE equ 0
02F8 2021222324wy50row db ' !"#$%&'
02FF 27 db 39
0300 28292A2B2C db '()*+,-./01234567'
0310 2021222324wy50col db ' !"#$%&'
0317 27 db 39
0318 28292A2B2C db '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
0350 60 db 96
0351 6162636465 db 'abcdefghijklmno'
0360 00 templine db 0
0361 00 tempcol db 0
0362 00 ttyp db 0
0363 end


BIN
Apps/crossdev/TERMINAL.REL

Binary file not shown.

448
Apps/crossdev/TERMTYPE.ASM

@ -0,0 +1,448 @@
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
DSEG
public bRun_
bRun_:
DB 1
CSEG
global c_,1
DSEG
public newtt_
newtt_:
DB 255
CSEG
global tt_,1
global i_,2
PUBLIC main_
main_: lxi d,.2
call csave
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,0
SHLD i_
JMP .4
.3:
LHLD i_
INX H
SHLD i_
.4:
LHLD i_
LXI D,25
XCHG
CALL .lt
JZ .5
LXI H,.1+0
PUSH H
CALL printf_
POP D
JMP .3
.5:
LXI H,1
PUSH H
LXI H,0
PUSH H
LXI H,5
PUSH H
LXI H,2
PUSH H
LXI H,2013
PUSH H
LXI H,31
PUSH H
LXI H,3
PUSH H
LXI H,.1+2
PUSH H
CALL printf_
XCHG
LXI H,16
DAD SP
SPHL
.6:
LDA bRun_
MOV L,A
MVI H,0
PUSH H
LXI H,1
POP D
CALL .eq
JZ .7
LXI H,.1+72
PUSH H
CALL printf_
POP D
LHLD pSYSCFG_
LXI D,68
DAD D
MOV E,M
XCHG
MOV A,L
STA tt_
LDA tt_
MOV L,A
MVI H,0
JMP .8
.10:
LXI H,.1+95
PUSH H
CALL printf_
POP D
JMP .9
.11:
LXI H,.1+143
PUSH H
CALL printf_
POP D
JMP .9
.12:
LXI H,.1+191
PUSH H
CALL printf_
POP D
JMP .9
.13:
LXI H,.1+239
PUSH H
CALL printf_
POP D
JMP .9
.14:
LXI H,.1+287
PUSH H
CALL printf_
POP D
LXI H,.1+306
PUSH H
CALL printf_
POP D
JMP .9
.8:
CALL .swt
DW 4
DW 0,.10
DW 1,.11
DW 2,.12
DW 3,.13
DW .14
.9:
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,1
PUSH H
LXI H,5
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
LDA xrega_
MOV L,A
MOV A,L
STA c_
LDA c_
MOV L,A
MVI H,0
PUSH H
LXI H,113
POP D
CALL .eq
JZ .15
LXI H,0
MOV A,L
STA bRun_
.15:
LDA c_
MOV L,A
MVI H,0
PUSH H
LXI H,120
POP D
CALL .eq
JZ .16
LXI H,0
MOV A,L
STA bRun_
.16:
LDA c_
MOV L,A
MVI H,0
PUSH H
LXI H,81
POP D
CALL .eq
JZ .17
LXI H,0
MOV A,L
STA bRun_
.17:
LDA c_
MOV L,A
MVI H,0
PUSH H
LXI H,88
POP D
CALL .eq
JZ .18
LXI H,0
MOV A,L
STA bRun_
.18:
LDA tt_
MOV L,A
MVI H,0
JMP .19
.21:
LDA c_
MOV L,A
MVI H,0
JMP .22
.24:
.25:
LXI H,1
MOV A,L
STA newtt_
JMP .23
.26:
.27:
LXI H,2
MOV A,L
STA newtt_
JMP .23
.28:
.29:
LXI H,3
MOV A,L
STA newtt_
JMP .23
.22:
CALL .swt
DW 6
DW 65,.25
DW 86,.29
DW 87,.27
DW 97,.24
DW 118,.28
DW 119,.26
DW .23
.23:
JMP .20
.30:
LDA c_
MOV L,A
MVI H,0
JMP .31
.33:
.34:
LXI H,0
MOV A,L
STA newtt_
JMP .32
.35:
.36:
LXI H,2
MOV A,L
STA newtt_
JMP .32
.37:
.38:
LXI H,3
MOV A,L
STA newtt_
JMP .32
.31:
CALL .swt
DW 6
DW 84,.34
DW 86,.38
DW 87,.36
DW 116,.33
DW 118,.37
DW 119,.35
DW .32
.32:
JMP .20
.39:
LDA c_
MOV L,A
MVI H,0
JMP .40
.42:
.43:
LXI H,0
MOV A,L
STA newtt_
JMP .41
.44:
.45:
LXI H,1
MOV A,L
STA newtt_
JMP .41
.46:
.47:
LXI H,3
MOV A,L
STA newtt_
JMP .41
.40:
CALL .swt
DW 6
DW 65,.45
DW 84,.43
DW 86,.47
DW 97,.44
DW 116,.42
DW 118,.46
DW .41
.41:
JMP .20
.48:
LDA c_
MOV L,A
MVI H,0
JMP .49
.51:
.52:
LXI H,0
MOV A,L
STA newtt_
JMP .50
.53:
.54:
LXI H,1
MOV A,L
STA newtt_
JMP .50
.55:
.56:
LXI H,2
MOV A,L
STA newtt_
JMP .50
.49:
CALL .swt
DW 6
DW 65,.54
DW 84,.52
DW 87,.56
DW 97,.53
DW 116,.51
DW 119,.55
DW .50
.50:
JMP .20
.57:
LXI H,7
PUSH H
LXI H,.1+347
PUSH H
CALL printf_
POP D
POP D
JMP .20
.19:
CALL .swt
DW 4
DW 0,.21
DW 1,.30
DW 2,.39
DW 3,.48
DW .57
.20:
LDA newtt_
MOV L,A
MVI H,0
PUSH H
LXI H,255
POP D
CALL .ne
JZ .58
LDA newtt_
MOV L,A
PUSH H
LHLD pSYSCFG_
LXI D,68
DAD D
POP D
MOV M,E
LXI H,-3840
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
.58:
JMP .6
.7:
RET
.2 EQU 0
.1:
DB 10,0,84,69,82,77,84,89,80,69,46,67,79,77,32
DB 37,100,47,37,100,47,37,100,32,37,100,46,37,100,46
DB 37,100,46,37,100,32,100,119,103,32,45,32,68,105,115
DB 112,108,97,121,47,67,104,97,110,103,101,32,84,101,114
DB 109,105,110,97,108,32,84,121,112,101,10,0,10,84,104
DB 101,32,84,101,114,109,105,110,97,108,32,84,121,112,101
DB 32,105,115,32,0,32,84,84,89,44,32,79,112,116,105
DB 111,110,115,58,32,97,40,110,115,105,41,44,32,119,40
DB 121,115,101,41,44,32,118,40,116,53,50,41,44,32,113
DB 40,117,105,116,41,32,63,0,65,78,83,73,44,32,79
DB 112,116,105,111,110,115,58,32,116,40,116,121,41,44,32
DB 32,119,40,121,115,101,41,44,32,118,40,116,53,50,41
DB 44,32,113,40,117,105,116,41,32,63,0,87,89,83,69
DB 44,32,79,112,116,105,111,110,115,58,32,116,40,116,121
DB 41,44,32,32,97,40,110,115,105,41,44,32,118,40,116
DB 53,50,41,44,32,113,40,117,105,116,41,32,63,0,86
DB 84,53,50,44,32,79,112,116,105,111,110,115,58,32,116
DB 40,116,121,41,44,32,32,97,40,110,115,105,41,44,32
DB 119,40,121,115,101,41,44,32,113,40,117,105,116,41,32
DB 63,0,85,110,107,110,111,119,110,44,32,79,112,116,105
DB 111,110,115,58,32,0,116,40,116,121,41,44,32,32,97
DB 40,110,115,105,41,44,32,119,40,121,115,101,41,44,32
DB 118,40,116,53,50,41,44,32,113,40,117,105,116,41,32
DB 63,0,37,99,0
extrn printf_
extrn asmif_
extrn xrega_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn .eq
extrn .ne
extrn .lt
END


BIN
Apps/crossdev/TERMTYPE.CPM

Binary file not shown.

BIN
Apps/crossdev/TERMTYPE.O

Binary file not shown.

1463
Apps/crossdev/TMS9918.ASM

File diff suppressed because it is too large

BIN
Apps/crossdev/TMS9918.O

Binary file not shown.

BIN
Apps/crossdev/TMSSTAT.CPM

Binary file not shown.

BIN
Apps/crossdev/TMSSTAT.O

Binary file not shown.

2233
Apps/crossdev/VIEW.ASM

File diff suppressed because it is too large

BIN
Apps/crossdev/VIEW.CPM

Binary file not shown.

BIN
Apps/crossdev/VIEW.O

Binary file not shown.

7
Apps/dougs-devo/readme.txt

@ -1,3 +1,10 @@
Note: This file is down-level. The best source is in
crossdev.
This file, "allfiles.lbr" is the complete contents of my A: drive, This file, "allfiles.lbr" is the complete contents of my A: drive,
on which I develop all my apps and utilities. Once you have your on which I develop all my apps and utilities. Once you have your
system running with storage (ppide,ide,sd,...), configure to use system running with storage (ppide,ide,sd,...), configure to use

Loading…
Cancel
Save