[Copyright 1999,2002 Frank Durda IV, All Rights Reserved. Mirroring of any material on this page in any form is expressly prohibited. The official web site for this material is: http://nemesis.lonestar.org Contact this address for use clearances: clearance at nemesis.lonestar.org Comments and queries to this address: web_software at nemesis.lonestar.org]
MISOSYS EDAS-4.3 04/11/99 21:38:33 SYS9 - LS-DOS 6.2 Page 00001
00001 ;SYS9/ASM - LS-DOS 6.2
00003 ;
00004 ;;*LIST OFF ;Get SYS5/EQU
0000 00005 *GET SYS5/EQU:2 ;Xref from sys5
1E32 00006 $?1 EQU 1E32H
1F1D 00007 $?10 EQU 1F1DH
1F2E 00008 $?11 EQU 1F2EH
1F38 00009 $?12 EQU 1F38H
1F8F 00010 $?13 EQU 1F8FH
1F9B 00011 $?14 EQU 1F9BH
1F9F 00012 $?15 EQU 1F9FH
1FA4 00013 $?16 EQU 1FA4H
1FC5 00014 $?17 EQU 1FC5H
1FDF 00015 $?18 EQU 1FDFH
200F 00016 $?19 EQU 200FH
1E37 00017 $?2 EQU 1E37H
2057 00018 $?20 EQU 2057H
205C 00019 $?21 EQU 205CH
2061 00020 $?22 EQU 2061H
2062 00021 $?23 EQU 2062H
2066 00022 $?24 EQU 2066H
20A6 00023 $?25 EQU 20A6H
20A9 00024 $?26 EQU 20A9H
20AA 00025 $?27 EQU 20AAH
20B7 00026 $?28 EQU 20B7H
20F1 00027 $?28A EQU 20F1H
20F6 00028 $?29 EQU 20F6H
1E49 00029 $?3 EQU 1E49H
20F9 00030 $?30 EQU 20F9H
20FC 00031 $?31 EQU 20FCH
2102 00032 $?32 EQU 2102H
210B 00033 $?33 EQU 210BH
2117 00034 $?34 EQU 2117H
211A 00035 $?35 EQU 211AH
2180 00036 $?36 EQU 2180H
218E 00037 $?37 EQU 218EH
219A 00038 $?38 EQU 219AH
219C 00039 $?39 EQU 219CH
1EB4 00040 $?4 EQU 1EB4H
21BF 00041 $?40 EQU 21BFH
21C3 00042 $?41 EQU 21C3H
21C7 00043 $?42 EQU 21C7H
21CA 00044 $?43 EQU 21CAH
21E1 00045 $?44 EQU 21E1H
21EB 00046 $?45 EQU 21EBH
2223 00047 $?46 EQU 2223H
222B 00048 $?47 EQU 222BH
223B 00049 $?48 EQU 223BH
1EC4 00050 $?5 EQU 1EC4H
1EC5 00051 $?6 EQU 1EC5H
1EEE 00052 $?8 EQU 1EEEH
1F16 00053 $?9 EQU 1F16H
08F0 00054 @$SYS EQU 08F0H
0000 00055 @@1 DEFL 0000H
0000 00056 @@1 DEFL 0000H
0000 00057 @@1 DEFL 0000H
0000 00058 @@2 DEFL 0000H
0000 00059 @@2 DEFL 0000H
0000 00060 @@2 DEFL 0000H
0000 00061 @@3 DEFL 0000H
0000 00062 @@3 DEFL 0000H
0000 00063 @@3 DEFL 0000H
0000 00064 @@4 DEFL 0000H
0000 00065 @@4 DEFL 0000H
0000 00066 @@4 DEFL 0000H
1B08 00067 @ABORT EQU 1B08H
1CDA 00068 @ADTSK EQU 1CDAH
0877 00069 @BANK EQU 0877H
14AD 00070 @BKSP EQU 14ADH
FFFF 00071 @BLD631 EQU 0FFFFH
FFFF 00072 @BLD631 EQU 0FFFFH
FFFF 00073 @BLD631C EQU 0FFFFH
FFFF 00074 @BLD631C EQU 0FFFFH
FFFF 00075 @BLD631D EQU 0FFFFH
FFFF 00076 @BLD631D EQU 0FFFFH
FFFF 00077 @BLD631E EQU 0FFFFH
FFFF 00078 @BLD631E EQU 0FFFFH
FFFF 00079 @BLD631F EQU 0FFFFH
FFFF 00080 @BLD631F EQU 0FFFFH
FFFF 00081 @BLD631G EQU 0FFFFH
FFFF 00082 @BLD631G EQU 0FFFFH
FFFF 00083 @BLD631H EQU 0FFFFH
FFFF 00084 @BLD631H EQU 0FFFFH
196F 00085 @BREAK EQU 196FH
1300 00086 @BYTEIO EQU 1300H
0689 00087 @CHNIO EQU 0689H
0553 00088 @CKBRKC EQU 0553H
1993 00089 @CKDRV EQU 1993H
158F 00090 @CKEOF EQU 158FH
1CF5 00091 @CKTSK EQU 1CF5H
1999 00092 @CLOSE EQU 1999H
0545 00093 @CLS EQU 0545H
197E 00094 @CMNDI EQU 197EH
197B 00095 @CMNDR EQU 197BH
0623 00096 @CTL EQU 0623H
1420 00097 @DATE EQU 1420H
199F 00098 @DBGHK EQU 199FH
19C0 00099 @DCINIT EQU 19C0H
19C4 00100 @DCRES EQU 19C4H
19B5 00101 @DCSTAT EQU 19B5H
1A2B 00102 @DCTBYT EQU 1A2BH
19A0 00103 @DEBUG EQU 19A0H
03E1 00104 @DECHEX EQU 03E1H
18F7 00105 @DIRCYL EQU 18F7H
18BB 00106 @DIRRD EQU 18BBH
1803 00107 @DIRWR EQU 1803H
06E3 00108 @DIV16 EQU 06E3H
1927 00109 @DIV8 EQU 1927H
19AF 00110 @DODIR EQU 19AFH
19A9 00111 @DOKEY EQU 19A9H
0642 00112 @DSP EQU 0642H
052D 00113 @DSPLY EQU 052DH
1B0F 00114 @ERROR EQU 1B0FH
1B0B 00115 @EXIT EQU 1B0BH
1984 00116 @FEXT EQU 1984H
196A 00117 @FLAGS EQU 196AH
199C 00118 @FNAME EQU 199CH
0000 00119 @FRENCH EQU 0000H
1981 00120 @FSPEC EQU 1981H
1874 00121 @GATRD EQU 1874H
1875 00122 @GATWR EQU 1875H
0000 00123 @GERMAN EQU 0000H
0638 00124 @GET EQU 0638H
1990 00125 @GTDCB EQU 1990H
1A1E 00126 @GTDCT EQU 1A1EH
19B2 00127 @GTMOD EQU 19B2H
19E4 00128 @HDFMT EQU 19E4H
07BD 00129 @HEX16 EQU 07BDH
07C2 00130 @HEX8 EQU 07C2H
06F8 00131 @HEXD EQU 06F8H
06F6 00132 @HEXDEC EQU 06F6H
1948 00133 @HIGH$ EQU 1948H
1897 00134 @HITRD EQU 1897H
1898 00135 @HITWR EQU 1898H
0000 00136 @HZ50 EQU 0000H
0086 00137 @ICNFG EQU 0086H
198D 00138 @INIT EQU 198DH
0000 00139 @INTL EQU 0000H
1BF2 00140 @IPL EQU 1BF2H
0630 00141 @JCL EQU 0630H
0635 00142 @KBD EQU 0635H
0628 00143 @KEY EQU 0628H
0585 00144 @KEYIN EQU 0585H
0089 00145 @KITSK EQU 0089H
0089 00146 @KITSK EQU 0089H
1CD0 00147 @KLTSK EQU 1CD0H
1B38 00148 @LOAD EQU 1B38H
14DA 00149 @LOC EQU 14DAH
1505 00150 @LOF EQU 1505H
0503 00151 @LOGER EQU 0503H
0500 00152 @LOGOT EQU 0500H
0000 00153 @MOD2 EQU 0000H
FFFF 00154 @MOD4 EQU 0FFFFH
0530 00155 @MSG EQU 0530H
06C9 00156 @MUL16 EQU 06C9H
190A 00157 @MUL8 EQU 190AH
0066 00158 @NMI EQU 0066H
198A 00159 @OPEN EQU 198AH
0084 00160 @OPREG EQU 0084H
1987 00161 @PARAM EQU 1987H
0382 00162 @PAUSE EQU 0382H
14C9 00163 @PEOF EQU 14C9H
145B 00164 @POSN EQU 145BH
0528 00165 @PRINT EQU 0528H
063D 00166 @PRT EQU 063DH
0E29 00167 @PRTIMO EQU 0E29H
0645 00168 @PUT EQU 0645H
19AC 00169 @RAMDIR EQU 19ACH
19D8 00170 @RDHDR EQU 19D8H
19F4 00171 @RDSEC EQU 19F4H
18D8 00172 @RDSSC EQU 18D8H
19E0 00173 @RDTRK EQU 19E0H
1513 00174 @READ EQU 1513H
19A6 00175 @REMOVE EQU 19A6H
1996 00176 @RENAME EQU 1996H
14C2 00177 @REW EQU 14C2H
1CD7 00178 @RMTSK EQU 1CD7H
1CEB 00179 @RPTSK EQU 1CEBH
149A 00180 @RREAD EQU 149AH
19D4 00181 @RSLCT EQU 19D4H
0000 00182 @RST00 EQU 0000H
0008 00183 @RST08 EQU 0008H
0010 00184 @RST10 EQU 0010H
0018 00185 @RST18 EQU 0018H
0020 00186 @RST20 EQU 0020H
0028 00187 @RST28 EQU 0028H
0030 00188 @RST30 EQU 0030H
0038 00189 @RST38 EQU 0038H
0FE9 00190 @RSTNMI EQU 0FE9H
19C8 00191 @RSTOR EQU 19C8H
0680 00192 @RSTREG EQU 0680H
1B1D 00193 @RUN EQU 1B1DH
13AD 00194 @RWRIT EQU 13ADH
181F 00195 @SCNHIT EQU 181FH
19D0 00196 @SEEK EQU 19D0H
13A0 00197 @SEEKSC EQU 13A0H
1457 00198 @SKIP EQU 1457H
19BC 00199 @SLCT EQU 19BCH
0392 00200 @SOUND EQU 0392H
19CC 00201 @STEPI EQU 19CCH
078D 00202 @TIME EQU 078DH
FFFF 00203 @USA EQU 0FFFFH
0B99 00204 @VDCTL EQU 0B99H
0D38 00205 @VDCTL3 EQU 0D38H
0935 00206 @VDPRT EQU 0935H
1560 00207 @VER EQU 1560H
19DC 00208 @VRSEC EQU 19DCH
1430 00209 @WEOF EQU 1430H
1979 00210 @WHERE EQU 1979H
1531 00211 @WRITE EQU 1531H
19E8 00212 @WRSEC EQU 19E8H
19EC 00213 @WRSSC EQU 19ECH
19F0 00214 @WRTRK EQU 19F0H
0D42 00215 @_VDCTL EQU 0D42H
0DF1 00216 ADDR_2_ROWCOL EQU 0DF1H
006A 00217 AFLAG$ EQU 006AH
2019 00218 AUTO? EQU 2019H
0201 00219 BAR$ EQU 0201H
439D 00220 BOOTST$ EQU 439DH
1C60 00221 BREAK? EQU 1C60H
1C88 00222 BRKVEC$ EQU 1C88H
0200 00223 BUR$ EQU 0200H
0A7B 00224 CASHK$ EQU 0A7BH
00E0 00225 CFCB$ EQU 00E0H
00E0 00226 CFGFCB$ EQU 00E0H
006C 00227 CFLAG$ EQU 006CH
006C 00228 CFLAG$ EQU 006CH
1A7F 00229 CKMOD@ EQU 1A7FH
1568 00230 CKOPEN@ EQU 1568H
1FD6 00231 CMD_AH EQU 1FD6H
1E81 00232 CMD_C EQU 1E81H
208B 00233 CMD_CI EQU 208BH
1EAB 00234 CMD_D EQU 1EABH
1EC9 00235 CMD_DEC EQU 1EC9H
1F82 00236 CMD_G EQU 1F82H
1EB1 00237 CMD_INC EQU 1EB1H
1ECE 00238 CMD_O EQU 1ECEH
203F 00239 CMD_R EQU 203FH
1E9D 00240 CMD_S EQU 1E9DH
1EA1 00241 CMD_U EQU 1EA1H
1E9C 00242 CMD_X EQU 1E9CH
2067 00243 CONFIG$ EQU 2067H
1948 00244 CORE$ DEFL 1948H
1948 00245 CORE$ DEFL 1948H
0300 00246 CORE$ DEFL 0300H
1CFF 00247 CORE$ DEFL 1CFFH
1BFF 00248 CORE$ DEFL 1BFFH
F800 00249 CRTBGN$ EQU 0F800H
221A 00250 CV2HEX@ EQU 221AH
16AE 00251 CYL_GRN EQU 16AEH
1A26 00252 D@FBYT8 EQU 1A26H
0033 00253 DATE$ EQU 0033H
0033 00254 DATE$ EQU 0033H
07A8 00255 DATELO$ EQU 07A8H
04C7 00256 DAYTBL$ EQU 04C7H
00A0 00257 DBGSV$ EQU 00A0H
0031 00258 DCBKL$ EQU 0031H
0470 00259 DCT$ EQU 0470H
1A29 00260 DCTBYT8@ EQU 1A29H
1A34 00261 DCTFLD@ EQU 1A34H
006D 00262 DFLAG$ EQU 006DH
006D 00263 DFLAG$ EQU 006DH
2300 00264 DIRBUF$ EQU 2300H
0846 00265 DIS_DO_RAM EQU 0846H
0B94 00266 DODATA$ EQU 0B94H
0210 00267 DODCB$ EQU 0210H
0C44 00268 DO_CONTROL EQU 0C44H
0CB8 00269 DO_DSPCHAR EQU 0CB8H
0C8C 00270 DO_INVERT_DIS EQU 0C8CH
0C89 00271 DO_INVERT_ENA EQU 0C89H
0C9B 00272 DO_INVERT_OFF EQU 0C9BH
0000 00273 DO_MASK EQU 0000H
0BCB 00274 DO_RET EQU 0BCBH
0BCC 00275 DO_RET1 EQU 0BCCH
0CCE 00276 DO_SCROLL EQU 0CCEH
0BEA 00277 DO_TABS EQU 0BEAH
04C0 00278 DSKTYP$ EQU 04C0H
201B 00279 DSPASC@ EQU 201BH
04C2 00280 DTPMT$ EQU 04C2H
0FF4 00281 DVREND$ EQU 0FF4H
0206 00282 DVRHI$ EQU 0206H
2150 00283 ED_TAB EQU 2150H
006E 00284 EFLAG$ EQU 006EH
0817 00285 ENADIS_DO_RAM EQU 0817H
19A4 00286 EXTDBG$ EQU 19A4H
000E 00287 FDDINT$ EQU 000EH
000E 00288 FDDINT$ EQU 000EH
006F 00289 FEMSK$ EQU 006FH
006A 00290 FLGTAB$ EQU 006AH
006A 00291 FLGTAB$ EQU 006AH
2031 00292 GETASC@ EQU 2031H
0DAE 00293 GET_@_ROWCOL EQU 0DAEH
0750 00294 HERTZ$ EQU 0750H
21E4 00295 HEXIN@ EQU 21E4H
040E 00296 HIGH$ EQU 040EH
1A6C 00297 HKRES$ EQU 1A6CH
0072 00298 IFLAG$ EQU 0072H
0072 00299 IFLAG$ EQU 0072H
0420 00300 INBUF$ EQU 0420H
21D5 00301 INPUC@ EQU 21D5H
21C9 00302 INPUT@ EQU 21C9H
003C 00303 INTIM$ EQU 003CH
003D 00304 INTMSK$ EQU 003DH
003E 00305 INTVC$ EQU 003EH
003E 00306 INTVC$ EQU 003EH
0203 00307 JCLCB$ EQU 0203H
0024 00308 JDCB$ EQU 0024H
00C0 00309 JFCB$ EQU 00C0H
0230 00310 JLDCB$ EQU 0230H
0026 00311 JRET$ EQU 0026H
07D6 00312 KCK@ EQU 07D6H
0074 00313 KFLAG$ EQU 0074H
0074 00314 KFLAG$ EQU 0074H
08FC 00315 KIDATA$ EQU 08FCH
0208 00316 KIDCB$ EQU 0208H
0202 00317 LBANK$ EQU 0202H
0023 00318 LDRV$ EQU 0023H
0075 00319 LFLAG$ EQU 0075H
1566 00320 LNKFCB@ EQU 1566H
001E 00321 LOW$ EQU 001EH
000D 00322 LSVC$ EQU 000DH
2400 00323 MAXCOR$ EQU 2400H
0401 00324 MAXDAY$ EQU 0401H
3000 00325 MINCOR$ EQU 3000H
0076 00326 MODOUT$ EQU 0076H
0076 00327 MODOUT$ EQU 0076H
04DC 00328 MONTBL$ EQU 04DCH
0077 00329 NFLAG$ EQU 0077H
0078 00330 OPREG$ EQU 0078H
0078 00331 OPREG$ EQU 0078H
086E 00332 OPREG_SV_AREA EQU 086EH
0835 00333 OPREG_SV_PTR EQU 0835H
211F 00334 OP_TAB EQU 211FH
1503 00335 ORARET@ EQU 1503H
003B 00336 OSRLS$ EQU 003BH
0085 00337 OSVER$ EQU 0085H
0069 00338 OVRLY$ EQU 0069H
0410 00339 PAKNAM$ EQU 0410H
0382 00340 PAUSE@ EQU 0382H
07AF 00341 PCSAVE$ EQU 07AFH
001B 00342 PDRV$ EQU 001BH
001B 00343 PDRV$ EQU 001BH
001C 00344 PHIGH$ EQU 001CH
0218 00345 PRDCB$ EQU 0218H
0DCD 00346 PUTA@DE EQU 0DCDH
0DCA 00347 PUT_@ EQU 0DCAH
0DC6 00348 PUT_@_ROWCOL EQU 0DC6H
007B 00349 RFLAG$ EQU 007BH
007B 00350 RFLAG$ EQU 007BH
0DD0 00351 ROWCOL_2_ADDR EQU 0DD0H
1BFF 00352 RST38@ EQU 1BFFH
04C4 00353 RSTOR$ EQU 04C4H
13A2 00354 RWRIT@ EQU 13A2H
0238 00355 S1DCB$ EQU 0238H
1D00 00356 SBUFF$ EQU 1D00H
2185 00357 SERIAL$ EQU 2185H
1A79 00358 SET@EXEC EQU 1A79H
0CF3 00359 SET_SCROLL EQU 0CF3H
008C 00360 SFCB$ EQU 008CH
007C 00361 SFLAG$ EQU 007CH
007C 00362 SFLAG$ EQU 007CH
0220 00363 SIDCB$ EQU 0220H
0228 00364 SODCB$ EQU 0228H
2180 00365 SPACE4$ EQU 2180H
0380 00366 STACK$ EQU 0380H
0000 00367 START$ EQU 0000H
0000 00368 START$ EQU 0000H
000B 00369 SVCRET$ EQU 000BH
0100 00370 SVCTAB$ EQU 0100H
1B13 00371 SYSERR$ EQU 1B13H
004E 00372 TCB$ EQU 004EH
007D 00373 TFLAG$ EQU 007DH
002D 00374 TIME$ EQU 002DH
002D 00375 TIME$ EQU 002DH
002C 00376 TIMER$ EQU 002CH
002C 00377 TIMER$ EQU 002CH
002B 00378 TIMSL$ EQU 002BH
002B 00379 TIMSL$ EQU 002BH
0713 00380 TIMTSK$ EQU 0713H
04C3 00381 TMPMT$ EQU 04C3H
07B1 00382 TRACE_INT EQU 07B1H
0A8F 00383 TYPHK$ EQU 0A8FH
0B26 00384 TYPTSK$ EQU 0B26H
0013 00385 USTOR$ EQU 0013H
007F 00386 VFLAG$ EQU 007FH
007F 00387 VFLAG$ EQU 007FH
2211 00388 WR1HEX@ EQU 2211H
2215 00389 WR2HEX@ EQU 2215H
0080 00390 WRINT$ EQU 0080H
2231 00391 WRSPA@ EQU 2231H
2157 00392 XY_TAB EQU 2157H
0082 00393 YFLAG$ EQU 0082H
0401 00394 ZERO$ EQU 0401H
13A0 00395 ZEROA@ EQU 13A0H
00396 ;;*LIST ON
0000 00397 *GET COPYCOM:3 ;Copyright message
00398 ; COPYCOM - File for Copyright COMment block
00399 ;
0000 00400 *GET BUILDVER/ASM:3
00401 ;
00402 ; Buildver/asm is a bit of a kludge since not all utilities can load
00403 ; equates from LDOS60 and still compile. LOWCORE and everybody else
00404 ; relies on this setting, and it eventually ends up in LDOS60/EQU
00405 ; for programs that can use that.
00406 ;
FFFF 00407 @BLD631 EQU -1 ;<631>Build 631 distribution (LEVEL 1B)
00408 ; These switches activate patches made since the 1B release.
00409 ; It is important that all earlier patches be enabled when a higher
00410 ; patch is enabled.
00411 ; Patches C thru F were published in TMQ IV.iv, page 32 (NOTE: the
00412 ; patch addresses listed for SPOOL in SPOOL1/FIX are 19H high.)
FFFF 00413 @BLD631C EQU -1 ;<631>Apply 1C patches (SETKI)
FFFF 00414 @BLD631D EQU -1 ;<631>Apply 1D patches (DIR)
FFFF 00415 @BLD631E EQU -1 ;<631>Apply 1E patches (DIR & MEMDISK/DCT)
FFFF 00416 @BLD631F EQU -1 ;<631>Apply 1F patches (SPOOL)
00417 ; Patches G and H were published in TMQ V.i, pages 10 and 18/19.
FFFF 00418 @BLD631G EQU -1 ;<631>Apply 1G patches (//KEYIN,DIR,DO *)
FFFF 00419 @BLD631H EQU -1 ;<631>Apply 1H patches (MEMORY)
00420 ;
00421 ;End of BUILDVER/ASM
00422 IF @BLD631
00424 ELSE
00425 COM '<*(C) 1982,3,4,6 by LSI*>'
00426 ENDIF
00A0 00427 ORG 0A0H
00428 ;
00A0 00429 SAVONE DS 1
00A1 00430 SAVTWO DS 1
00A2 00431 DS 1 ;Space for saved byte (1)
00A3 00432 NXTADR DS 2
00A5 00433 NXTBYT DS 1
00A6 00434 DSPADR DS 2
00A8 00435 AFREG DS 6 ;AF, BC, DE
00AE 00436 HLREG DS 2 ;HL
00B0 00437 DS 8 ;AF', BC', DE', HL'
00B8 00438 IXREG DS 2 ;IX
00BA 00439 IYREG DS 2 ;IY
00BC 00440 SPREG DS 1 ;SP
00BD 00441 REGSAV DS 1
00BE 00442 PCREG DS 2 ;PC
00443 ;
1E00 00444 ORG 1E00H
00445 ;
1E00 E670 00446 SYS9 AND 70H
1E02 C8 00447 RET Z ;Back on zero entry
1E03 2AA419 00448 LD HL,(EXTDBG$) ;P/u hook address
1E06 AF 00449 XOR A ;See if already resident
1E07 11FDEA 00450 LD DE,-ORARET@
1E0A ED5A 00451 ADC HL,DE ;ADD does not effect Z
1E0C C0 00452 RET NZ ;Ret if resident already
1E0D 2A0E04 00453 LD HL,(HIGH$) ;Change high$ to provide
1E10 226C1E 00454 LD (DEBUGE+2),HL ;Stuff last byte used
1E13 015902 00455 LD BC,LAST-DEBUGE ;Room for relocating
1E16 AF 00456 XOR A ; this module to high
1E17 ED42 00457 SBC HL,BC
1E19 220E04 00458 LD (HIGH$),HL
1E1C 23 00459 INC HL ;Pt to new entry point
1E1D E5 00460 PUSH HL ;Save it for later
00461 IF @BLD631
1E1E 115302 00462 LD DE,@PRTBYT-DEBUGE ;<631>Offset of @PRTDRV
1E21 19 00463 ADD HL,DE ;<631>Add in starting address
1E22 EB 00464 EX DE,HL ;<631>Store current location of @PRTBYT
1E23 DD21461E 00465 LD IX,PATPRT ;<631>Table of pointers to opcode
1E27 DD6E00 00466 SELFMOD LD L,(IX+0) ;<631>operands to patch with local address
1E2A DD23 00467 INC IX ;<631>
1E2C DD6600 00468 LD H,(IX+0) ;<631>
1E2F DD23 00469 INC IX ;<631>
1E31 7C 00470 LD A,H ;<631>
1E32 B5 00471 OR L ;<631>
1E33 2805 00472 JR Z,SELFMD2 ;<631>End of table, exit
1E35 73 00473 LD (HL),E ;<631>Patch in new address of @PRTBYT routine
1E36 23 00474 INC HL ;<631>
1E37 72 00475 LD (HL),D ;<631>
1E38 18ED 00476 JR SELFMOD ;<631>Do next
1E3A D1 00477 SELFMD2 POP DE ;<631>
1E3B D5 00478 PUSH DE ;<631>
00479 ELSE
00480 EX DE,HL ;Move extended debug
00481 ENDIF
1E3C 216A1E 00482 LD HL,DEBUGE ; up to top of core
1E3F EDB0 00483 LDIR
1E41 E1 00484 POP HL ;Rcvr pointer to ept
1E42 22A419 00485 LD (EXTDBG$),HL ; & reset sysres vector
1E45 C9 00486 RET
00487 IF @BLD631
1E46 9A20 00488 PATPRT DW MODAD1,MODAD2,MODAD3,MODAD4 ;<631>
0E20 1120 2220
1E4E 2E20 00489 DW MODAD5,MODAD6,MODAD7,MODAD8 ;<631>
3E20 4A20 4F20
1E56 5220 00490 DW MODAD9,MODAD10,MODAD11,MODAD12 ;<631>
6620 7220 7720
1E5E 8420 00491 DW MODAD13,MODAD14,MODAD15,MODAD16 ;<631>
8B20 A520 B820
1E66 BB20 00492 DW MODAD17,0 ;<631>
0000
00493 ENDIF
00494 ;
00495 ; Start of extended debug utility
00496 ;
1E6A 180D 00497 DEBUGE JR NEXT
1E6C 0000 00498 DW $-$
1E6E 06 00499 DB 6,'EXTDBG'
45 58 54 44 42 47
1E75 0000 00500 DW 0,0
0000
00501 ;
00502 ; 'n'ext aaaa - position to next relative block
00503 ; used in stepping through a program file
00504 ; dumped to core in load module format
00505 ;
1E79 FE3E 00506 NEXT CP 'n'-'0'
1E7B 201D 00507 JR NZ,ENTER
1E7D 2AA300 00508 LD HL,(NXTADR) ;Init if no further input
1E80 CDE421 00509 CALL HEXIN@ ;Arg aaaa entered?
1E83 23 00510 INC HL ;Bump from type to length
1E84 1600 00511 LD D,0
1E86 5E 00512 LD E,(HL) ;P/u block length
1E87 7B 00513 LD A,E
1E88 FE03 00514 CP 3 ;Len= 0,1,2?
1E8A 3001 00515 JR NC,NEX1 ;If len=0,1,2 (256-8),
1E8C 14 00516 INC D ; next block is +257-259
1E8D 13 00517 NEX1 INC DE ;Bump by one for len byte
1E8E 19 00518 ADD HL,DE ;Add length to index
1E8F 22A300 00519 LD (NXTADR),HL ;Next block
1E92 7D 00520 LD A,L ;Now set up the display
1E93 E6C0 00521 AND 0C0H ;Address
1E95 6F 00522 LD L,A
1E96 22A600 00523 LD (DSPADR),HL
1E99 C9 00524 RET
00525 ;
00526 ; Enter hex data into memory
00527 ;
1E9A FE35 00528 ENTER CP 'e'-'0' ;'e'nter
1E9C 202F 00529 JR NZ,LOCATE
1E9E 2AA300 00530 LD HL,(NXTADR) ;Pt to current address
1EA1 CDE421 00531 CALL HEXIN@ ;Get new address to enter
1EA4 22A300 00532 LD (NXTADR),HL
1EA7 D8 00533 RET C ;Back on
1EA8 2006 00534 JR NZ,ENT1 ;Go if new addr
1EAA CD1522 00535 CALL WR2HEX@ ; else dsply default
1EAD CD3122 00536 CALL WRSPA@
1EB0 3E1E 00537 ENT1 LD A,1EH ;Clear the line
1EB2 CD4206 00538 CALL @DSP
1EB5 CD1122 00539 ENT2 CALL WR1HEX@ ;Set up the display
1EB8 2B 00540 DEC HL
1EB9 3E2D 00541 LD A,'-'
1EBB CD4206 00542 CALL @DSP
1EBE EB 00543 EX DE,HL
1EBF CDE421 00544 CALL HEXIN@ ;Get the modify info
1EC2 EB 00545 EX DE,HL
1EC3 2801 00546 JR Z,ENT3 ;No change if no new data
1EC5 73 00547 LD (HL),E ; else update byte
1EC6 D8 00548 ENT3 RET C ;Back if pressed
1EC7 23 00549 INC HL
1EC8 22A300 00550 LD (NXTADR),HL ;Index to next address
1ECB 18E8 00551 JR ENT2
00552 ;
00553 ; 'l'ocate aaaa,dd
00554 ;
1ECD FE3C 00555 LOCATE CP 'l'-'0'
1ECF 2043 00556 JR NZ,TYPE
1ED1 2AA300 00557 LD HL,(NXTADR) ;Default current address
1ED4 23 00558 INC HL
1ED5 CDE421 00559 CALL HEXIN@ ;Prompt new address
1ED8 22A300 00560 LD (NXTADR),HL
1EDB 200E 00561 JR NZ,LOC1 ;Go if new addr
1EDD F5 00562 PUSH AF ;Save flags
1EDE CD1522 00563 CALL WR2HEX@ ;Display default
1EE1 3E2C 00564 LD A,','
1EE3 CD4206 00565 CALL @DSP
1EE6 F1 00566 POP AF
1EE7 3AA500 00567 LD A,(NXTBYT) ;P/u default byte
1EEA 6F 00568 LD L,A
1EEB 380B 00569 LOC1 JR C,LOC2 ;Go if used
1EED CDE421 00570 CALL HEXIN@ ; else get new byte
1EF0 2806 00571 JR Z,LOC2 ;Go if none entered
1EF2 7D 00572 LD A,L
1EF3 32A500 00573 LD (NXTBYT),A ; else set byte to find
1EF6 1804 00574 JR LOC3
1EF8 7D 00575 LOC2 LD A,L ;Display byte info
1EF9 CD1A22 00576 CALL CV2HEX@
1EFC 2AA300 00577 LOC3 LD HL,(NXTADR) ;Set up for search
1EFF 3AA500 00578 LD A,(NXTBYT)
1F02 010000 00579 LD BC,0 ;Set loop to 64K
1F05 EDB1 00580 CPIR ;Find a match
1F07 C0 00581 RET NZ ;Back if none
1F08 2B 00582 DEC HL
1F09 22A300 00583 LD (NXTADR),HL ;Store new mod addr
1F0C 7D 00584 LD A,L
1F0D E6C0 00585 AND 0C0H
1F0F 6F 00586 LD L,A
1F10 22A600 00587 LD (DSPADR),HL
1F13 C9 00588 RET
00589 ;
00590 ; 't'ype aaaa - type ascii into memory
00591 ;
1F14 FE44 00592 TYPE CP 't'-'0'
1F16 2030 00593 JR NZ,VERIFY
1F18 2AA300 00594 LD HL,(NXTADR) ;Default current address
1F1B CDE421 00595 CALL HEXIN@ ;Prompt for new address
1F1E 22A300 00596 LD (NXTADR),HL
1F21 D8 00597 RET C ;Back on
1F22 2003 00598 JR NZ,TYP1 ;Go if new addr
1F24 CD1522 00599 CALL WR2HEX@ ; else dsply default
1F27 3E1E 00600 TYP1 LD A,1EH ;Clear to end of line
1F29 CD4206 00601 CALL @DSP
1F2C CD3122 00602 TYP2 CALL WRSPA@
1F2F CD1B20 00603 CALL DSPASC@ ;Display current contents
1F32 3E2D 00604 LD A,'-'
1F34 CD4206 00605 CALL @DSP
1F37 E5 00606 PUSH HL ;Provide lower/upper
1F38 CD3120 00607 CALL GETASC@ ; case entry
1F3B E1 00608 POP HL ; conversion
1F3C D8 00609 RET C
1F3D FE20 00610 CP 20H ;Advance on space
1F3F 2801 00611 JR Z,TYP5
1F41 77 00612 LD (HL),A ;Store new info
1F42 23 00613 TYP5 INC HL
1F43 22A300 00614 LD (NXTADR),HL ;Advance the location
1F46 18E4 00615 JR TYP2
00616 ;
00617 ; 'v'erify aaaa,bbbb,lth - verify block
00618 ;
1F48 FE46 00619 VERIFY CP 'v'-'0'
1F4A 2057 00620 JR NZ,WORD
1F4C 2AA600 00621 LD HL,(DSPADR) ;1st default start of dsp
1F4F CDE421 00622 CALL HEXIN@ ;Prompt new start
1F52 22A600 00623 LD (DSPADR),HL
1F55 200A 00624 JR NZ,VER1 ;Go if address entered
1F57 F5 00625 PUSH AF
1F58 CD1522 00626 CALL WR2HEX@ ; else dsply default
1F5B 3E2C 00627 LD A,','
1F5D CD4206 00628 CALL @DSP
1F60 F1 00629 POP AF
1F61 3815 00630 VER1 JR C,VER2 ;Jump if used prev.
1F63 2AA300 00631 LD HL,(NXTADR) ;2nd default current mod addr
1F66 CDE421 00632 CALL HEXIN@ ;Prompt new 2nd start
1F69 22A300 00633 LD (NXTADR),HL
1F6C 200A 00634 JR NZ,VER2 ;Go if entered
1F6E F5 00635 PUSH AF
1F6F CD1522 00636 CALL WR2HEX@ ; else dsply default
1F72 3E2C 00637 LD A,','
1F74 CD4206 00638 CALL @DSP
1F77 F1 00639 POP AF
1F78 210000 00640 VER2 LD HL,0 ;Default length to verify
1F7B 380A 00641 JR C,VER3 ;Go if sued prev
1F7D CDE421 00642 CALL HEXIN@ ;Get new length
1F80 2005 00643 JR NZ,VER3 ;Go if new len entered
1F82 E5 00644 PUSH HL
1F83 CD1522 00645 CALL WR2HEX@ ;Dsply default len
1F86 E1 00646 POP HL
1F87 44 00647 VER3 LD B,H ;Xfer length to BC
1F88 4D 00648 LD C,L
1F89 2AA600 00649 LD HL,(DSPADR) ;Set up for compare
1F8C ED5BA300 00650 LD DE,(NXTADR)
1F90 1A 00651 VER4 LD A,(DE)
1F91 BE 00652 CP (HL) ;Compare the two locations
1F92 2007 00653 JR NZ,VER5 ;Go on non-match
1F94 13 00654 INC DE ; else inc pointers
1F95 23 00655 INC HL ; and loop for length
1F96 0B 00656 DEC BC
1F97 78 00657 LD A,B
1F98 B1 00658 OR C
1F99 20F5 00659 JR NZ,VER4
1F9B ED53A300 00660 VER5 LD (NXTADR),DE ;Store non-match or end of
1F9F 22A600 00661 LD (DSPADR),HL ; block
1FA2 C9 00662 RET
00663 ;
00664 ; 'w'ord aaaa,dddd - search for word dddd
00665 ;
1FA3 FE47 00666 WORD CP 'w'-'0'
1FA5 2052 00667 JR NZ,PRINT
1FA7 2AA300 00668 LD HL,(NXTADR) ;Default current address
1FAA 23 00669 INC HL ; but bypass next word
1FAB 23 00670 INC HL
1FAC CDE421 00671 CALL HEXIN@ ;Get new start
1FAF 22A300 00672 LD (NXTADR),HL
1FB2 2012 00673 JR NZ,WOR1 ;Go if value entered
1FB4 F5 00674 PUSH AF ; else display default
1FB5 CD1522 00675 CALL WR2HEX@
1FB8 3E2C 00676 LD A,','
1FBA CD4206 00677 CALL @DSP
1FBD F1 00678 POP AF
1FBE 3AA500 00679 LD A,(NXTBYT) ;Get next default
1FC1 6F 00680 LD L,A
1FC2 3AA200 00681 LD A,(SAVTWO+1)
1FC5 67 00682 LD H,A
1FC6 380F 00683 WOR1 JR C,WOR2 ;Go if
1FC8 CDE421 00684 CALL HEXIN@ ;Get next value
1FCB 280A 00685 JR Z,WOR2 ;Go if default
1FCD 7D 00686 LD A,L ;Store new value
1FCE 32A500 00687 LD (NXTBYT),A
1FD1 7C 00688 LD A,H
1FD2 32A200 00689 LD (SAVTWO+1),A
1FD5 1803 00690 JR WOR3
1FD7 CD1522 00691 WOR2 CALL WR2HEX@ ;Display value
1FDA 2AA300 00692 WOR3 LD HL,(NXTADR) ;Start looking here
1FDD 010000 00693 LD BC,0 ;Init count to 64K
1FE0 3AA500 00694 WOR4 LD A,(NXTBYT)
1FE3 EDB1 00695 CPIR ;Find first match
1FE5 E0 00696 RET PO ;Return if none
1FE6 3AA200 00697 LD A,(SAVTWO+1) ;Get 2nd half of word
1FE9 BE 00698 CP (HL) ;Is a match?
1FEA 20F4 00699 JR NZ,WOR4 ;Continue if not
1FEC 2B 00700 DEC HL
1FED 2B 00701 DEC HL ;Pt 1 byte before
1FEE 22A300 00702 LD (NXTADR),HL ; and save that address
1FF1 7D 00703 LD A,L
1FF2 E6C0 00704 AND 0C0H
1FF4 6F 00705 LD L,A
1FF5 22A600 00706 LD (DSPADR),HL ;New display start
1FF8 C9 00707 RET
00708 ;
00709 ; 'p'rint aaaa,bbbb - print memory
00710 ;
1FF9 FE40 00711 PRINT CP 'p'-30H ;If command is not 'P',
1FFB C0 00712 PRI1 RET NZ ; back to SYS5
1FFC CDE421 00713 CALL HEXIN@ ;Get start
1FFF C8 00714 RET Z ;Back if no start addr
2000 E5 00715 PUSH HL
2001 CDE421 00716 CALL HEXIN@ ;Get end
2004 E3 00717 EX (SP),HL
2005 C1 00718 POP BC ;Start in HL, end in BC
2006 C8 00719 RET Z ;Back if no end addr
2007 7D 00720 LD A,L ;Round to multiple of 16
2008 E6F0 00721 AND 0F0H
200A 6F 00722 LD L,A
200B 3E0D 00723 LD A,0DH ;Send 2 blank lines to
00724 IF @BLD631
200E 00725 MODAD2 EQU $+1 ;<631>
00726 ENDIF
200D CDBD20 00727 CALL @PRTBYT ; the printer
00728 IF @BLD631
2011 00729 MODAD3 EQU $+1 ;<631>
00730 ENDIF
2010 CDBD20 00731 CALL @PRTBYT
2013 E5 00732 PRI2 PUSH HL ;Routine to write HL
2014 7C 00733 LD A,H ; as 4 hex digits
2015 1F 00734 RRA
2016 1F 00735 RRA
2017 1F 00736 RRA
2018 1F 00737 RRA
2019 E60F 00738 AND 0FH
201B C690 00739 ADD A,90H
201D 27 00740 DAA
201E CE40 00741 ADC A,40H
2020 27 00742 DAA
00743 IF @BLD631
2022 00744 MODAD4 EQU $+1 ;<631>
00745 ENDIF
2021 CDBD20 00746 CALL @PRTBYT ;1st one done
2024 7C 00747 LD A,H
2025 E60F 00748 AND 0FH
2027 C690 00749 ADD A,90H
2029 27 00750 DAA
202A CE40 00751 ADC A,40H
202C 27 00752 DAA
00753 IF @BLD631
202E 00754 MODAD5 EQU $+1 ;<631>
00755 ENDIF
202D CDBD20 00756 CALL @PRTBYT ;2nd one done
2030 7D 00757 LD A,L
2031 1F 00758 RRA
2032 1F 00759 RRA
2033 1F 00760 RRA
2034 1F 00761 RRA
2035 E60F 00762 AND 0FH
2037 C690 00763 ADD A,90H
2039 27 00764 DAA
203A CE40 00765 ADC A,40H
203C 27 00766 DAA
00767 IF @BLD631
203E 00768 MODAD6 EQU $+1 ;<631>
00769 ENDIF
203D CDBD20 00770 CALL @PRTBYT ;3rd one done
2040 7D 00771 LD A,L
2041 E60F 00772 AND 0FH
2043 C690 00773 ADD A,90H
2045 27 00774 DAA
2046 CE40 00775 ADC A,40H
2048 27 00776 DAA
00777 IF @BLD631
204A 00778 MODAD7 EQU $+1 ;<631>
00779 ENDIF
2049 CDBD20 00780 CALL @PRTBYT ;4th one done
204C 3E20 00781 LD A,20H ; & 2 spaces
00782 IF @BLD631
204F 00783 MODAD8 EQU $+1 ;<631>
00784 ENDIF
204E CDBD20 00785 CALL @PRTBYT
00786 IF @BLD631
2052 00787 MODAD9 EQU $+1 ;<631>
00788 ENDIF
2051 CDBD20 00789 CALL @PRTBYT
2054 1802 00790 JR PRI4
2056 18BB 00791 PRI3 JR PRI2
00792 ;
00793 ; Write a byte in hex
00794 ;
2058 7E 00795 PRI4 LD A,(HL)
2059 1F 00796 RRA
205A 1F 00797 RRA
205B 1F 00798 RRA
205C 1F 00799 RRA
205D E60F 00800 AND 0FH
205F C690 00801 ADD A,90H
2061 27 00802 DAA
2062 CE40 00803 ADC A,40H
2064 27 00804 DAA
00805 IF @BLD631
2066 00806 MODAD10 EQU $+1 ;<631>
00807 ENDIF
2065 CDBD20 00808 CALL @PRTBYT ;Output it
2068 7E 00809 LD A,(HL)
2069 E60F 00810 AND 0FH
206B C690 00811 ADD A,90H
206D 27 00812 DAA
206E CE40 00813 ADC A,40H
2070 27 00814 DAA
00815 IF @BLD631
2072 00816 MODAD11 EQU $+1 ;<631>
00817 ENDIF
2071 CDBD20 00818 CALL @PRTBYT ;Output it
2074 3E20 00819 LD A,20H
00820 IF @BLD631
2077 00821 MODAD12 EQU $+1 ;<631>
00822 ENDIF
2076 CDBD20 00823 CALL @PRTBYT ; & a space
2079 23 00824 INC HL ;Pt to next byte
207A 7D 00825 LD A,L ;Test multiple of 16
207B E60F 00826 AND 0FH
207D 2809 00827 JR Z,PRI5
207F E603 00828 AND 3 ;Space on multiple of 4
2081 3E20 00829 LD A,20H
00830 IF @BLD631
2084 00831 MODAD13 EQU $+1 ;<631>
00832 ENDIF
2083 CCBD20 00833 CALL Z,@PRTBYT
2086 18D0 00834 JR PRI4
2088 3E20 00835 PRI5 LD A,20H ;Space at end of 16
00836 IF @BLD631
208B 00837 MODAD14 EQU $+1 ;<631>
00838 ENDIF
208A CDBD20 00839 CALL @PRTBYT
208D E1 00840 POP HL
208E 7E 00841 PRI6 LD A,(HL) ;Print in ASCII if
208F FE20 00842 CP 20H ; printable; else
2091 3804 00843 JR C,PRI7 ; convert to '.'
2093 FE80 00844 CP 80H
2095 3802 00845 JR C,PRI8
2097 3E2E 00846 PRI7 LD A,'.'
00847 IF @BLD631
209A 00848 MODAD1 EQU $+1 ;<631>
00849 ENDIF
2099 CDBD20 00850 PRI8 CALL @PRTBYT
209C 23 00851 INC HL ;Loop until 16 chars
209D 7D 00852 LD A,L
209E E60F 00853 AND 0FH
20A0 20EC 00854 JR NZ,PRI6
20A2 3E0D 00855 LD A,0DH ; then a new line
00856 IF @BLD631
20A5 00857 MODAD15 EQU $+1 ;<631>
00858 ENDIF
20A4 CDBD20 00859 CALL @PRTBYT
20A7 E5 00860 PUSH HL
20A8 7D 00861 LD A,L ;Check if HL is 0000
20A9 B4 00862 OR H
20AA 2003 00863 JR NZ,PRI9 ; is OK > continue
20AC E1 00864 POP HL
20AD 1806 00865 JR PRI10 ;Get OUT now
20AF AF 00866 PRI9 XOR A ;Ck on finished
20B0 ED42 00867 SBC HL,BC
20B2 E1 00868 POP HL
20B3 38A1 00869 JR C,PRI3
20B5 3E0D 00870 PRI10 LD A,0DH ;3 new lines if done
00871 IF @BLD631
20B8 00872 MODAD16 EQU $+1 ;<631>
00873 ENDIF
20B7 CDBD20 00874 CALL @PRTBYT
00875 IF @BLD631
20BB 00876 MODAD17 EQU $+1 ;<631>
00877 ENDIF
20BA CDBD20 00878 CALL @PRTBYT
00879 IF @BLD631
20BD F5 00880 @PRTBYT PUSH AF ;<631>
20BE CD3D06 00881 CALL 063DH ;<631>
20C1 F1 00882 POP AF ;<631>
20C2 C9 00883 RET ;<631>
00884 ELSE
00885 JP @PRTBYT
00886 ENDIF
00887 ;
20C3 00888 LAST EQU $
00889 IFGT $,DIRBUF$
00890 ERR 'Module too big'
00891 ENDIF
23FE 00892 ORG MAXCOR$-2
23FE C302 00893 DW LAST-SYS9 ;Overlay size
00894 ;
1E00 00895 END SYS9
1E00 is the transfer address
00000 Total errors
[Copyright 1999,2002 Frank Durda IV, All Rights Reserved. Mirroring of any material on this page in any form is expressly prohibited. The official web site for this material is: http://nemesis.lonestar.org Contact this address for use clearances: clearance at nemesis.lonestar.org Comments and queries to this address: web_software at nemesis.lonestar.org]