mirror of https://github.com/wwarthen/RomWBW.git
95 changed files with 19497 additions and 14 deletions
@ -0,0 +1 @@ |
|||||
|
The library in this folder is not current. The best of everything is in the crossdev folder. |
||||
@ -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 |
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
@ -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 |
||||
|
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue