[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_2011 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'nter1E9C 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_2011 at nemesis.lonestar.org]