LS-DOS 6.3.1 - SYS9 Assembly Listing (HTML format version)

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

Valid HTML 4.01!