You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

587 lines
18 KiB

; 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