00020146 Starting Address Assembler used: EASy68K Editor/Assembler v3.5 Jan-06-2006 Created On: 07/04/2006 11:04:06 00000000 1 * THIS VERSION MODIFIED FOR TEESSIDE X68K PC-2.2 CROSS ASSEMBLER 00000000 2 * ftp://nyquist.ee.ualberta.ca/pub/motorola/m68k/x68k.zip 00000000 3 00000000 4 * CHANGES FROM ORIGINAL MOTOROLA SOURCE: 00000000 5 * MANY "MOVE.L" CHANGED TO "MOVEQ" 00000000 6 * SIMILAR CHANGES ON A FEW OTHER COMMANDS WHERE 00000000 7 * X68K DOES NOT AUTOMATICALLY MOTOROLA-IZE. 00000000 8 * X68K HANDLES CHARACTER CONSTANTS DIFFERENTLY 00000000 9 * DC.W '1' --> $3100 (GOOD) 00000000 10 * DC.W '1'+0 --> $0031 (WHAT!) 00000000 11 * ONE DIFFERENCE REMAINS IN A "DON'T CARE" BYTE 00000000 12 * $008FE0 1A3C00FF MOVE.B #-1,D5 00000000 13 * ^^ $00 INSTEAD OF $FF 00000000 14 00000000 15 *=======================================================================* 00000000 16 * MOTOROLA EDUCATION COMPUTER BOARD ROM PROGRAM "TUTOR" REVISION # 1.3 * 00000000 17 *=======================================================================* 00000000 18 00000000 19 * MACROS 00000000 20 00000000 21 00000000 22 ADDR2MEM MACRO 00000000 23 PEA \1(PC) MOVE ADDRESS TO MEMORY; POSITION 00000000 24 MOVE.L (A7)+,\2 INDEPENDANT = TO "MOVE.L #\1,\2" 00000000 25 ENDM 00000000 26 00000000 27 00000000 28 SAVEREGS MACRO 00000000 29 MOVE.L A7,REGA7 SAVE STACK POINTER 00000000 30 LEA SV\@(PC),A7 A7 = RETURN ADDRESS (FOR CALL TO SAVE) 00000000 31 MOVE.L A7,TEMP TEMP = RETURN ADDRESS 00000000 32 BRA SAVE BSR WITHOUT USING STACK 00000000 33 SV\@ DS 0 00000000 34 ENDM 00000000 35 00000000 36 00000000 37 00000000 38 00000000 39 *------------------------------------------------------------------------- 00000000 40 00000000 41 * EQUATES (in alphabetical order) 00000000 42 00000000 =00000007 43 BELL EQU $07 00000000 =00000020 44 BLANK EQU $20 00000000 =00004AFB 45 BKPOINT EQU $4AFB 00000000 =00000080 46 BUFFSIZE EQU $80 00000000 =00000050 47 BUFSIZE EQU 80 00000000 =0000000D 48 CR EQU $0D 00000000 =00000004 49 CTLD EQU $04 00000000 =00000008 50 CTLH EQU $08 00000000 =00000017 51 CTLW EQU $17 00000000 =00000018 52 CTLX EQU $18 00000000 =0000007F 53 DEL EQU $7F 00000000 =00001000 54 DELAYC1 EQU $1000 00000000 =00000004 55 EOT EQU $04 00000000 =0000000A 56 LF EQU $0A 00000000 =00000010 57 LOCVARSZ EQU 16 00000000 =00000043 58 RESET EQU $43 MASTER RESET FOR ACIA 00000000 59 00000000 60 00000000 61 00000000 62 *------------------------------------------------------------------------- 00000000 63 * File ARAM DATA VARIABLES 05/10/82 00000000 64 00000000 65 **************************************************************** 00000000 66 * N O T E: Ram locations: starting at zero * 00000000 67 **************************************************************** 00000000 68 00000000 69 ORG $000000 00000000 70 00000000 71 * DEC HEX DESCRIPTION 00000000 72 DS.L 1 0 $00 AREA OVERLAID BY ROM SR 00000004 73 DS.L 1 1 $01 AND PC 00000008 74 00000008 75 00000008 76 AV2 DS.L 1 2 $02 BUS ERROR "BUS " 0000000C 77 AV3 DS.L 1 3 $03 ADDRESS ERROR "ADDR" 00000010 78 AV4 DS.L 1 4 $04 ILL INSTRUCTION "OPCO" 00000014 79 DS.L 1 5 $05 DIVIDE BY ZERO "DIV0" 00000018 80 DS.L 1 6 $06 CHECK TRAP "CHCK" 0000001C 81 DS.L 1 7 $07 TRAP V "TP V" 00000020 82 AV8 DS.L 1 8 $08 PRIVILEDGE VIOLATION "PRIV" 00000024 83 AV9 DS.L 1 9 $09 TRACE 00000028 84 DS.L 1 10 $0A 1010 LINE EMULATION "1010" 0000002C 85 AV11 DS.L 1 11 $0B 1111 LINE EMULATION "1111" 00000030 86 AV12 DS.L 1 12 $0C USED AS TEMPORARY STORAGE FOR VECTOR MSGS. 00000034 87 DS.L 1 13 $0D NOT USED 00000038 88 DS.L 1 14 $0E 0000003C 89 DS.L 1 15 $0F 00000040 90 DS.L 1 16 $10 00000044 91 DS.L 1 17 $11 00000048 92 DS.L 1 18 $12 0000004C 93 DS.L 1 19 $13 00000050 94 DS.L 1 20 $14 00000054 95 DS.L 1 21 $15 00000058 96 DS.L 1 22 $16 0000005C 97 DS.L 1 23 $17 00000060 98 AV24 DS.L 1 24 $18 0 AUTO VECTORS "SPUR" 00000064 99 DS.L 1 25 $19 1 "AV#1" 00000068 100 DS.L 1 26 $1A 2 "AV#2" TEST BUTTON 0000006C 101 DS.L 1 27 $1B 3 "AV#3" 00000070 102 DS.L 1 28 $1C 4 "AV#4" 00000074 103 DS.L 1 29 $1D 5 "AV#5" 00000078 104 DS.L 1 30 $1E 6 "AV#6" 0000007C 105 AV31 DS.L 1 31 $1F 7 "AV#7 [ABORT BUTTON] 00000080 106 DS.L 1 32 $20 TRAP 0 "UT 0" 00000084 107 DS.L 1 33 $21 TRAP 1 "UT 1" 00000088 108 DS.L 1 34 $22 TRAP 2 "UT 2" 0000008C 109 DS.L 1 35 $23 TRAP 3 "UT 3" 00000090 110 DS.L 1 36 $24 TRAP 4 "UT 4" 00000094 111 DS.L 1 37 $25 TRAP 5 "UT 5" 00000098 112 DS.L 1 38 $26 TRAP 6 "UT 6" 0000009C 113 DS.L 1 39 $27 TRAP 7 "UT 7" 000000A0 114 DS.L 1 40 $28 TRAP 8 "UT 8" 000000A4 115 DS.L 1 41 $29 TRAP 9 "UT 9" 000000A8 116 DS.L 1 42 $2A TRAP 10 "UT A" 000000AC 117 DS.L 1 43 $2B TRAP 11 "UT B" 000000B0 118 DS.L 1 44 $2C TRAP 12 "UT C" 000000B4 119 DS.L 1 45 $2D TRAP 13 "UT D" 000000B8 120 AV46 DS.L 1 46 $2E TRAP 14 "UT E" 000000BC 121 AV47 DS.L 1 47 $2F TRAP 15 "UT F" 000000C0 122 AV48 DS.L 1 48 $30 000000C4 123 DS.L 1 49 $31 000000C8 124 DS.L 1 50 $32 000000CC 125 DS.L 1 51 $33 000000D0 126 DS.L 1 52 $34 000000D4 127 DS.L 1 53 $35 000000D8 128 DS.L 1 54 $36 000000DC 129 DS.L 1 55 $37 000000E0 130 DS.L 1 56 $38 000000E4 131 DS.L 1 57 $39 000000E8 132 DS.L 1 58 $3A 000000EC 133 DS.L 1 59 $3B 000000F0 134 DS.L 1 60 $3C 000000F4 135 DS.L 1 61 $3D 000000F8 136 DS.L 1 62 $3E 000000FC 137 DS.L 1 63 $3F 00000100 138 DS.L 1 64 $40 00000104 139 DS.L 1 65 $41 00000108 140 DS.L 1 66 $42 0000010C 141 DS.L 1 67 $43 00000110 142 DS.L 1 68 $44 00000114 143 DS.L 1 69 $45 00000118 144 DS.L 1 70 $46 0000011C 145 DS.L 1 71 $47 00000120 146 DS.L 1 72 $48 00000124 147 DS.L 1 73 $49 00000128 148 DS.L 1 74 $4A 0000012C 149 DS.L 1 75 $4B 00000130 150 DS.L 1 76 $4C 00000134 151 DS.L 1 77 $4D 00000138 152 DS.L 1 78 $4E 0000013C 153 DS.L 1 79 $4F 00000140 154 DS.L 1 80 $50 00000144 155 DS.L 1 81 $51 00000148 156 DS.L 1 82 $52 0000014C 157 DS.L 1 83 $53 00000150 158 DS.L 1 84 $54 00000154 159 DS.L 1 85 $55 00000158 160 DS.L 1 86 $56 0000015C 161 DS.L 1 87 $57 00000160 162 DS.L 1 88 $58 00000164 163 DS.L 1 89 $59 00000168 164 DS.L 1 90 $5A 0000016C 165 DS.L 1 91 $5B 00000170 166 DS.L 1 92 $5C 00000174 167 DS.L 1 93 $5D 00000178 168 DS.L 1 94 $5E 0000017C 169 DS.L 1 95 $5F 00000180 170 DS.L 1 96 $60 00000184 171 DS.L 1 97 $61 00000188 172 DS.L 1 98 $62 0000018C 173 DS.L 1 99 $63 00000190 174 DS.L 1 100 $64 00000194 175 DS.L 1 101 $65 00000198 176 DS.L 1 102 $66 0000019C 177 DS.L 1 103 $67 000001A0 178 DS.L 1 104 $68 000001A4 179 DS.L 1 105 $69 000001A8 180 DS.L 1 106 $6A 000001AC 181 DS.L 1 107 $6B 000001B0 182 DS.L 1 108 $6C 000001B4 183 DS.L 1 109 $6D 000001B8 184 DS.L 1 110 $6E 000001BC 185 DS.L 1 111 $6F 000001C0 186 DS.L 1 112 $70 000001C4 187 DS.L 1 113 $71 000001C8 188 DS.L 1 114 $72 000001CC 189 DS.L 1 115 $73 000001D0 190 DS.L 1 116 $74 000001D4 191 DS.L 1 117 $75 000001D8 192 DS.L 1 118 $76 000001DC 193 DS.L 1 119 $77 000001E0 194 DS.L 1 120 $78 000001E4 195 DS.L 1 121 $79 000001E8 196 DS.L 1 122 $7A 000001EC 197 DS.L 1 123 $7B 000001F0 198 DS.L 1 124 $7C 000001F4 199 DS.L 1 125 $7D 000001F8 200 DS.L 1 126 $7E 000001FC 201 DS.L 1 127 $7F 00000200 202 DS.L 1 128 $80 00000204 203 DS.L 1 129 $81 00000208 204 DS.L 1 130 $82 0000020C 205 DS.L 1 131 $83 00000210 206 DS.L 1 132 $84 00000214 207 DS.L 1 133 $85 00000218 208 DS.L 1 134 $86 0000021C 209 DS.L 1 135 $87 00000220 210 DS.L 1 136 $88 00000224 211 DS.L 1 137 $89 00000228 212 DS.L 1 138 $8A 0000022C 213 DS.L 1 139 $8B 00000230 214 DS.L 1 140 $8C 00000234 215 DS.L 1 141 $8D 00000238 216 DS.L 1 142 $8E 0000023C 217 DS.L 1 143 $8F 00000240 218 DS.L 1 144 $90 00000244 219 DS.L 1 145 $91 00000248 220 DS.L 1 146 $92 0000024C 221 DS.L 1 147 $93 00000250 222 DS.L 1 148 $94 00000254 223 DS.L 1 149 $95 00000258 224 DS.L 1 150 $96 0000025C 225 DS.L 1 151 $97 00000260 226 DS.L 1 152 $98 00000264 227 DS.L 1 153 $99 00000268 228 DS.L 1 154 $9A 0000026C 229 DS.L 1 155 $9B 00000270 230 DS.L 1 156 $9C 00000274 231 DS.L 1 157 $9D 00000278 232 DS.L 1 158 $9E 0000027C 233 DS.L 1 159 $9F 00000280 234 DS.L 1 160 $A0 00000284 235 DS.L 1 161 $A1 00000288 236 DS.L 1 162 $A2 0000028C 237 DS.L 1 163 $A3 00000290 238 DS.L 1 164 $A4 00000294 239 DS.L 1 165 $A5 00000298 240 DS.L 1 166 $A6 0000029C 241 DS.L 1 167 $A7 000002A0 242 DS.L 1 168 $A8 000002A4 243 DS.L 1 169 $A9 000002A8 244 DS.L 1 170 $AA 000002AC 245 DS.L 1 171 $AB 000002B0 246 DS.L 1 172 $AC 000002B4 247 DS.L 1 173 $AD 000002B8 248 DS.L 1 174 $AE 000002BC 249 DS.L 1 175 $AF 000002C0 250 DS.L 1 176 $B0 000002C4 251 DS.L 1 177 $B1 000002C8 252 DS.L 1 178 $B2 000002CC 253 DS.L 1 179 $B3 000002D0 254 DS.L 1 180 $B4 000002D4 255 DS.L 1 181 $B5 000002D8 256 DS.L 1 182 $B6 000002DC 257 DS.L 1 183 $B7 000002E0 258 DS.L 1 184 $B8 000002E4 259 DS.L 1 185 $B9 000002E8 260 DS.L 1 186 $BA 000002EC 261 DS.L 1 187 $BB 000002F0 262 DS.L 1 188 $BC 000002F4 263 DS.L 1 189 $BD 000002F8 264 DS.L 1 190 $BE 000002FC 265 DS.L 1 191 $BF 00000300 266 DS.L 1 192 $C0 00000304 267 DS.L 1 193 $C1 00000308 268 DS.L 1 194 $C2 0000030C 269 DS.L 1 195 $C3 00000310 270 DS.L 1 196 $C4 00000314 271 DS.L 1 197 $C5 00000318 272 DS.L 1 198 $C6 0000031C 273 DS.L 1 199 $C7 00000320 274 DS.L 1 200 $C8 00000324 275 DS.L 1 201 $C9 00000328 276 DS.L 1 202 $CA 0000032C 277 DS.L 1 203 $CB 00000330 278 DS.L 1 204 $CC 00000334 279 DS.L 1 205 $CD 00000338 280 DS.L 1 206 $CE 0000033C 281 DS.L 1 207 $CF 00000340 282 DS.L 1 208 $D0 00000344 283 DS.L 1 209 $D1 00000348 284 DS.L 1 210 $D2 0000034C 285 DS.L 1 211 $D3 00000350 286 DS.L 1 212 $D4 00000354 287 DS.L 1 213 $D5 00000358 288 DS.L 1 214 $D6 0000035C 289 DS.L 1 215 $D7 00000360 290 DS.L 1 216 $D8 00000364 291 DS.L 1 217 $D9 00000368 292 DS.L 1 218 $DA 0000036C 293 DS.L 1 219 $DB 00000370 294 DS.L 1 220 $DC 00000374 295 DS.L 1 221 $DD 00000378 296 DS.L 1 222 $DE 0000037C 297 DS.L 1 223 $DF 00000380 298 DS.L 1 224 $E0 00000384 299 DS.L 1 225 $E1 00000388 300 DS.L 1 226 $E2 0000038C 301 DS.L 1 227 $E3 00000390 302 DS.L 1 228 $E4 00000394 303 DS.L 1 229 $E5 00000398 304 DS.L 1 230 $E6 0000039C 305 DS.L 1 231 $E7 000003A0 306 DS.L 1 232 $E8 000003A4 307 DS.L 1 233 $E9 000003A8 308 DS.L 1 234 $EA 000003AC 309 DS.L 1 235 $EB 000003B0 310 DS.L 1 236 $EC 000003B4 311 DS.L 1 237 $ED 000003B8 312 DS.L 1 238 $EE 000003BC 313 DS.L 1 239 $EF 000003C0 314 DS.L 1 240 $F0 000003C4 315 DS.L 1 241 $F1 000003C8 316 DS.L 1 242 $F2 000003CC 317 DS.L 1 243 $F3 000003D0 318 DS.L 1 244 $F4 000003D4 319 DS.L 1 245 $F5 000003D8 320 DS.L 1 246 $F6 000003DC 321 DS.L 1 247 $F7 000003E0 322 DS.L 1 248 $F8 000003E4 323 DS.L 1 249 $F9 000003E8 324 DS.L 1 250 $FA 000003EC 325 DS.L 1 251 $FB 000003F0 326 DS.L 1 252 $FC 000003F4 327 DS.L 1 253 $FD 3RD 000003F8 328 DS.L 1 254 $FE 2ND 000003FC 329 DS.L 1 255 $FF VECTOR FOR 1ST IPC DISK CONTROLLER 00000400 330 00000400 331 00000400 332 * PSEUDO REGISTERS 00000400 333 00000400 334 REGPC DS.L 1 USERS PROGRAM COUNTER 00000404 335 REGSR DS.L 1 USERS CONDITION CODES 00000408 336 REGS DS.L 8 D REGISTERS 00000428 337 DS.L 7 A0 THROUGH A6 REGISTERS 00000444 338 REGA7 DS.L 1 A7 REGISTER 00000448 339 REGUS DS.L 1 USER STACK 0000044C 340 0000044C 341 0000044C 342 0000044C 343 **************************************************************** 0000044C 344 * WORKING STORAGE * 0000044C 345 * NOTE: SUBROUTINE "INITHRAM" ZEROES RAM... * 0000044C 346 * FROM "BEGHRAM" THROUGH "ENDHRAM" WHEN IT IS EXECUTED * 0000044C 347 **************************************************************** 0000044C 348 0000044C 349 BEGHRAM DS 0 INITIALIZE STARTS HERE 0000044C 350 0000044C 351 OFFSET DS.L 8 ASSUMED OFFSETS (VIA "R@" FORMAT) 0000046C 352 MEMSIZE DS.L 1 MEMORY SIZE IN BYTES 00000470 353 BPADD DS.L 8 BREAKPOINT ADDRESSES 00000490 354 BPTILL DS.L 1 TEMPORARY BREAKPOINT 00000494 355 BPCNT DS.L 9 BREAKPOINT COUNTS 000004B8 356 BPDATA DS.W 9 HOLD USER WORDS REPLACED BY TRAP IN SET BP 000004CA 357 BERRD DS.L 2 SPECIAL DATA FOR BUS AND ADDR ERROR EXCEPTIONS 000004D2 358 SAVEAV4 DS.L 1 HOLDS USER'S AV4 VECTOR (WE USE FOR BP) 000004D6 359 TEMP DS.L 1 TEMP 000004DA 360 TRACECNT DS.L 1 TRACE COUNTER (-1=TRACE 1 & RUN) 000004DE 361 TRACEON DS.W 1 FLAG FOR TRACE ON 000004E0 362 BPSTATUS DS.W 1 1=PB ARE IN 0=ARE OUT OF MEMORY 000004E2 363 ECHOPT1 DS.L 1 ECHO FLAG TO PORT ONE 000004E6 364 000004E6 365 000004E6 366 000004E6 367 * THE FOLLOWING MUST REMAIN AS IS 000004E6 368 * User docomentation DEPENDS upon it! 000004E6 369 * 000004E6 370 OPTIONS DS.W 0 FORCE WORD BOUNDRY 000004E6 371 DS.B 1 X-ON CHARACTER 000004E7 372 DS.B 1 X-OFF CHARACTER 000004E8 373 DS.B 1 NO NO-AUTO LINEFEED 000004E9 374 DS.B 1 SHORT FORM REGISTER DISPLAY 000004EA 375 DS.B 1 TM trailing character 000004EB 376 DS.B 1 TM exit character 000004EC =000004E6 377 XONOFF EQU OPTIONS 000004EC =000004EA 378 TMCHARS EQU OPTIONS+4 000004EC 379 000004EC 380 * END of as is section 000004EC 381 000004EC 382 000004EC 383 000004EC 384 *************************** 000004EC 385 * TARGET SUPERVISOR STACK * 000004EC 386 *************************** 000004EC 387 000004EC 388 DS.L 20 0000053C 389 SSA7 DS.L 1 00000540 390 00000540 391 00000540 392 00000540 393 ************** 00000540 394 * I/O BUFFER * 00000540 395 ************** 00000540 396 00000540 397 BUFFER DS.B BUFFSIZE 000005C0 398 000005C0 399 DUMPTEMP DS.B 80 HEADER TEMP BUFFER 00000610 400 00000610 401 SCREEN1 DS.L 1 PRINT THIS BEFORE TRACE DISPLAY 00000614 402 SCREEN2 DS.L 1 PRINT THIS AFTER TRACE DISPLAY 00000618 403 00000618 404 NULLPADS DS.B 2 CHARACTER NULL PADS 0000061A 405 CRPADS DS.B 2 CARRIAGE RETURN NULL PADS 0000061C 406 0000061C 407 OUTTO DS.L 1 HOLDS ADDRESS OF OUTPUT ROUTINE 00000620 408 INFROM DS.L 1 HOLDS ADDRESS OF INPUT ROUTINE 00000624 409 ALTSER1 DS.L 1 ALTERNATE SERIAL PORT#1 00000628 410 ALTSER2 DS.L 1 ALTERNATE SERIAL PORT#2 0000062C 411 INPORT1 DS.L 1 INPUT ROUTINE ADDRESS 00000630 412 OUTPORT1 DS.L 1 ADDRESS FOR OUPUT ROUTINE 00000634 413 INPORT2 DS.L 1 ADDRESS FOR INPUT ROUTINE 00000638 414 OUTPORT2 DS.L 1 FOR OUTPURT ROUTINE 0000063C 415 INPORT3 DS.L 1 THIS MIGHT BE FOR TAPE 00000640 416 OUTPORT3 DS.L 1 THIS MIGHT BE FOR PRINTER 00000644 417 INPORT4 DS.L 1 CASSETTE 00000648 418 OUTPORT4 DS.L 1 CASSETTE 0000064C 419 MD1CON DS.W 1 ACIA PROFILE (PORT1/PORT2) 0000064E 420 PDIPORT DS.L 1 PDIPORT ADDRESS 00000652 421 CRTPNT DS.W 1 OUTPUT TO PRINTER AND CRT 00000654 422 TAPENULS DS.B 1 NULLS FOR CASSETTE 00000655 423 00000655 424 DS.B 1 PAD BYTE 00000656 425 00000656 426 CTLINK DS.L 1 POINTER TO FIRST TABLE 0000065A 427 0000065A 428 0000065A 429 0000065A 430 ENDHRAM DS.W 0 MUST START ON WORD BOUNDRY 0000065A 431 0000065A 432 0000065A 433 0000065A 434 ********************* 0000065A 435 * SYSTEM STACK AREA * 0000065A 436 ********************* 0000065A 437 0000065A 438 DS.W 0 FORCE ON WORD BOUNDRY 0000065A 439 DS.B 300 ROOM FOR STACK 00000786 440 SYSTACK DS.W 1 START OF STACK (ADDRESS DECREASES) 00000788 441 DS.B 4 STRETCHED STACK (USED BY 'SAVE') 0000078C 442 0000078C 443 DS.B 120 EXTENDED AREA USED IF DISASSEMBLER 00000804 444 00000804 445 DS.B 0 LAST LOW MEMORY LOCATION USED + 1 00000804 446 00000804 447 00000804 448 *------------------------------------------------------------------------- 00000804 449 00000804 450 *CODE68K 00000804 451 * OFFSET 0 00000804 =00000000 452 ESKB EQU $00000000 DS 0 00000804 =00000000 453 TDATA EQU $00000000 DS.B 10 00000804 =0000000A 454 TNB EQU $0000000A DS.B 1 00000804 =0000000B 455 TLSPEC EQU $0000000B DS.B 1 00000804 =0000000C 456 TLENGTH EQU $0000000C DS.W 1 00000804 =0000000E 457 PCOUNTER EQU $0000000E DS.L 1 00000804 =00000012 458 PTROP EQU $00000012 DS.L 1 POINTER TO OPERAND 00000804 =00000016 459 PENDOP EQU $00000016 DS.L 1 POINTER END OF OPERAND 00000804 =0000001A 460 PTRBUFE EQU $0000001A DS.L 1 POINTER TO END OF FORMATED SOURCE 00000804 =0000001E 461 LINK EQU $0000001E DS.L 1 SAVE FOR UNLINK 00000804 =00000022 462 ESKE EQU $00000022 DS.B 0 00000804 463 00000804 464 00000804 465 *DCODE68K 00000804 466 * OFFSET -LOCVARSZ 00000804 =FFFFFFF0 467 DDATA EQU $FFFFFFF0 DS.L 3 00000804 =FFFFFFFC 468 HISPC EQU $FFFFFFFC DS.L 1 00000804 469 00000804 470 00000804 471 *LOAD 00000804 472 * OFFSET -((BUFFSIZE/2)+4) 00000804 =FFFFFFBC 473 CC EQU $FFFFFFBC DS.L 1 CC (BYTE COUNT) 00000804 =FFFFFFC0 474 ADDRESS EQU $FFFFFFC0 DS.L 1 ADDRESS + OFFSET 00000804 =FFFFFFC4 475 LDATA EQU $FFFFFFC4 DS.B 1 00000804 476 00000804 477 00000804 478 00000804 479 00000804 480 *------------------------------------------------------------------------- 00000804 481 * File B Init Vectors+Ram 05/29/82 00000804 482 00020000 483 ORG $020000 00020000 484 00020000 00000444 485 FIRST DC.L REGA7 SUPERVISOR STACK 00020004 00020146 486 DC.L START PROGRAM COUNTER 00020008 6000 0CB0 487 V2 BRA.L TRACE 0002000C 488 0002000C 489 0002000C 490 ********************************** 0002000C 491 * INITIALIZE HIGH RAM SUBROUTINE * 0002000C 492 ********************************** 0002000C 493 0002000C 41F8 044C 494 INITHRAM LEA BEGHRAM,A0 START OF WORK RAM (PAST REGISTERS) 00020010 203C 0000020E 495 MOVE.L #(ENDHRAM-BEGHRAM),D0 BYTES TO ZERO 00020016 4281 496 CLR.L D1 00020018 10C1 497 INIT MOVE.B D1,(A0)+ ZERO MEMORY 0002001A 5380 498 SUBQ.L #1,D0 0002001C 66FA 499 BNE INIT 0002001E 500 0002001E 501 ADDR2MEM BERRMSG,AV2 POINT AT BUS TRAP ERROR MESSAGE ROUTINE 0002001E 487A 0010 501m PEA BERRMSG(PC) MOVE ADDRESS TO MEMORY; POSITION 00020022 21DF 0008 501m MOVE.L (A7)+,AV2 INDEPENDANT = TO "MOVE.L #BERRMSG,AV2" 00020026 501m ENDM 00020026 502 00020026 503 ADDR2MEM ADDRMSG,AV3 POINT AT ADDRESS TRAP ERROR MESSAGE ROUTINE 00020026 487A 0012 503m PEA ADDRMSG(PC) MOVE ADDRESS TO MEMORY; POSITION 0002002A 21DF 000C 503m MOVE.L (A7)+,AV3 INDEPENDANT = TO "MOVE.L #ADDRMSG,AV3" 0002002E 503m ENDM 0002002E 504 0002002E 4E75 505 RTS 00020030 506 00020030 507 00020030 508 **************************************************** 00020030 509 * SPECIAL HANDLING FOR BUS ERROR AND ADDRESS ERROR * 00020030 510 **************************************************** 00020030 511 00020030 21FC 42555320 0030 512 BERRMSG MOVE.L #'BUS ',$30 00020038 513 00020038 6008 514 BRA.S VECTBE 0002003A 515 0002003A 21FC 41444452 0030 516 ADDRMSG MOVE.L #'ADDR',$30 00020042 517 00020042 518 00020042 21DF 04CA 519 VECTBE MOVE.L (A7)+,BERRD 00020046 21DF 04CE 520 MOVE.L (A7)+,BERRD+4 0002004A 521 0002004A 522 SAVEREGS 0002004A 21CF 0444 522m MOVE.L A7,REGA7 SAVE STACK POINTER 0002004E 4FFA 000A 522m LEA SV_0(PC),A7 A7 = RETURN ADDRESS (FOR CALL TO SAVE) 00020052 21CF 04D6 522m MOVE.L A7,TEMP TEMP = RETURN ADDRESS 00020056 6000 0C34 522m BRA SAVE BSR WITHOUT USING STACK 0002005A 522m SV_0 DS 0 0002005A 522m ENDM 0002005A 6100 1C34 523 BSR FIXBUF 0002005E 3CFC 0D0A 524 MOVE.W #$D0A,(A6)+ 00020062 3038 04CA 525 MOVE.W BERRD,D0 00020066 6100 1942 526 BSR PNT4HX FORMAT FUNCTION CODE 0002006A 527 0002006A 1CFC 0020 528 MOVE.B #BLANK,(A6)+ SPACE 0002006E 2038 04CC 529 MOVE.L BERRD+2,D0 00020072 6100 1928 530 BSR PNT8HX FORMAT ACCESS ADDRESS 00020076 531 00020076 1CFC 0020 532 MOVE.B #BLANK,(A6)+ SPACE 0002007A 3038 04D0 533 MOVE.W BERRD+6,D0 0002007E 6100 192A 534 BSR PNT4HX FORMAT INSTRUCTION REGISTER 00020082 535 00020082 6100 1B80 536 BSR OUTPUT 00020086 6000 18F0 537 BRA EVECT2 GO DISPLAY REGISTERS & PROMPT 0002008A 538 0002008A 53 59 4E 54 41 58 20 539 MSG008 DC.B 'SYNTAX ' 00020091 540 00020091 45 52 52 4F 52 20 541 MSG008E DC.B 'ERROR ' 00020097 542 00020097 04 543 MSGEOT DC.B EOT 00020098 544 00020098 57 48 41 54 04 545 MSG021 DC.B 'WHAT',EOT 0002009D 546 0002009D 00 547 DC.B 0 PAD BYTE 0002009E 548 0002009E 549 0002009E 550 * PRINT WHAT 0002009E 551 0002009E 4BFA FFF8 552 WHAT LEA MSG021(PC),A5 PRINT 'WHAT' AND ENTER MACSBUG 000200A2 614E 553 WHAT93 BSR.S FIXDATA 000200A4 4278 04DE 554 CLR.W TRACEON 000200A8 6100 1B40 555 MSG BSR OUT1CR 000200AC 6000 0184 556 BRA MACSBUG 000200B0 557 000200B0 558 000200B0 559 * PRINT ERROR 000200B0 560 000200B0 4BFA FFDF 561 ERROR LEA MSG008E(PC),A5 000200B4 60EC 562 BRA WHAT93 000200B6 563 000200B6 4BFA FFD2 564 SYNTAX LEA MSG008(PC),A5 'SYNTAX ERROR' 000200BA 60E6 565 BRA WHAT93 000200BC 566 000200BC 567 * FORMAT PHYSICAL ADDRESS FROM (D0) 000200BC 4BFA 0022 568 PPHY LEA MSG019(PC),A5 000200C0 6130 569 BSR.S FIXDATA 000200C2 6012 570 BRA.S P2PHY2 000200C4 571 000200C4 572 * FORMAT TWO PHYSICAL ADDRESSES FROM (A0) & (A1) 000200C4 4BFA 001A 573 P2PHY LEA MSG019(PC),A5 'PHYSICAL ADDRESS=' 000200C8 6128 574 BSR.S FIXDATA 000200CA 2008 575 MOVE.L A0,D0 000200CC 6100 18CE 576 BSR PNT8HX FORMAT ADDR1 000200D0 1CFC 0020 577 MOVE.B #BLANK,(A6)+ SPACE FOR FORMATING 000200D4 2009 578 MOVE.L A1,D0 000200D6 6100 18C4 579 P2PHY2 BSR PNT8HX FORMAT ADDR2 000200DA 6100 1B0E 580 BSR OUT1CR DISPLAY IT 000200DE 4E75 581 RTS 000200E0 582 000200E0 50 48 59 53 49 43 41 583 MSG019 DC.B 'PHYSICAL ADDRESS=',EOT 4C 20 41 44 44 52 45 53 53 3D 04 000200F2 584 000200F2 585 000200F2 586 000200F2 587 000200F2 588 000200F2 589 ************************************************************* 000200F2 590 * -FIXDATA- SUBROUTINE... MOVES MESSAGE POINTED TO BY (A5) * 000200F2 591 * INTO "BUFFER". EOT, ($04), ENDS * 000200F2 592 * THE MOVE. AT COMPLETION (A5) IS * 000200F2 593 * POINTING AT THE BEGINNING, (A6) * 000200F2 594 * POINTS AT END. * 000200F2 595 ************************************************************* 000200F2 596 000200F2 4DF8 0540 597 FIXDATA LEA BUFFER,A6 000200F6 0C15 0004 598 FIXDADD CMPI.B #EOT,(A5) 000200FA 6704 599 BEQ.S FIXD2 000200FC 1CDD 600 MOVE.B (A5)+,(A6)+ 000200FE 60F6 601 BRA FIXDADD 00020100 4BF8 0540 602 FIXD2 LEA BUFFER,A5 00020104 4E75 603 RTS 00020106 604 00020106 605 00020106 606 ************************************************************ 00020106 607 * -FIXDCRLF- SUBROUTINE INSERTS A CARRIAGE RETURN AND LINE * 00020106 608 * FEED IN FRONT OF THE TEXT, THEN * 00020106 609 * USES THE REMAINING PORTION OF THE * 00020106 610 * FIXDATA. * 00020106 611 ************************************************************ 00020106 612 00020106 4DF8 0540 613 FIXDCRLF LEA BUFFER,A6 0002010A 3CFC 0D0A 614 MOVE.W #$0D0A,(A6)+ CR,LF 0002010E 60E6 615 BRA FIXDADD 00020110 616 00020110 617 00020110 618 00020110 619 00020110 620 *------------------------------------------------------------------------- 00020110 621 * File E VERSAbug entry point 01/08/81 00020110 622 00020110 623 ********************** 00020110 624 * INITIALIZE VECTORS * 00020110 625 ********************** 00020110 626 * Set most vectors to point at "????" routine 00020110 41F8 0008 627 INITVECT LEA 8,A0 Skip (Restart) STACK & ADDRESS vectors 00020114 43FA 1846 628 LEA ABORTE(PC),A1 A1 = "Default" TRAP ERROR routine address 00020118 629 00020118 20C9 630 INIT0 MOVE.L A1,(A0)+ INITIALIZE VECTOR 0002011A B1FC 00000400 631 CMPA.L #$400,A0 Done? 00020120 6BF6 632 BMI.S INIT0 * 00020122 4E75 633 RTS 00020124 634 00020124 635 00020124 636 * SPECIAL ENTRY THAT DOES NOT CHANGE VECTORS 00020124 637 00020124 48B8 0001 0406 638 START1S MOVEM.W D0,REGSR+2 Assure good parity. 0002012A 40F8 0406 639 MOVE.W SR,REGSR+2 SAVE TARGET'S STATUS REGISTER 0002012E 21CF 0444 640 MOVE.L A7,REGA7 SAVE TARGET'S STACK 00020132 21D7 0400 641 MOVE.L (A7),REGPC .PROGRAM COUNTER 00020136 4FF8 0444 642 LEA REGA7,A7 0002013A 48E7 FFFE 643 MOVEM.L D0-D7/A0-A6,-(A7) .REGISTERS 0002013E 4FF8 0786 644 LEA SYSTACK,A7 00020142 6000 0020 645 BRA START11 00020146 646 00020146 647 00020146 648 ************************ 00020146 649 * INITIALIZATION * 00020146 650 ************************ 00020146 651 00020146 652 * SAVE PROCESSOR REGISTERS (EXCEPT A7 & PC) 00020146 653 00020146 48B8 0001 0406 654 START MOVEM.W D0,REGSR+2 Assure good parity 0002014C 40F8 0406 655 MOVE.W SR,REGSR+2 SAVE STATUS REGISTER 00020150 48E7 FFFE 656 MOVEM.L D0-D7/A0-A6,-(A7) 00020154 657 00020154 4FF8 0786 658 LEA SYSTACK,A7 SET UP STACK 00020158 21CF 0444 659 MOVE.L A7,REGA7 0002015C 660 0002015C 4281 661 CLR.L D1 0002015E 21C1 0400 662 MOVE.L D1,REGPC PC = 000000 00020162 663 00020162 61AC 664 BSR INITVECT 00020164 665 00020164 666 00020164 46FC 2700 667 START11 MOVE.W #$2700,SR MASK OFF INTERRUPTS 00020168 668 00020168 4E68 669 MOVE.L USP,A0 0002016A 21C8 0448 670 MOVE.L A0,REGUS USER STACK 0002016E 671 0002016E 6100 FE9C 672 BSR INITHRAM ZERO (INITIALIZE) HIGH RAM 00020172 673 00020172 674 00020172 675 * VECTMSG.SA 00020172 6100 0206 676 BSR INITVMSG 00020176 677 00020176 678 00020176 679 * H.SA 00020176 680 ADDR2MEM CHKBP,AV4 ILLEGAL INSTRUCTION 00020176 487A 0C6C 680m PEA CHKBP(PC) MOVE ADDRESS TO MEMORY; POSITION 0002017A 21DF 0010 680m MOVE.L (A7)+,AV4 INDEPENDANT = TO "MOVE.L #CHKBP,AV4" 0002017E 680m ENDM 0002017E 681 0002017E 682 0002017E 683 * TM.SA 0002017E 31FC 1801 04EA 684 MOVE.W #$1801,TMCHARS CNTLX,CNTL/A 00020184 685 00020184 686 00020184 687 * W.SA 00020184 688 ADDR2MEM ABORTB,AV31 ABORT 00020184 487A 1792 688m PEA ABORTB(PC) MOVE ADDRESS TO MEMORY; POSITION 00020188 21DF 007C 688m MOVE.L (A7)+,AV31 INDEPENDANT = TO "MOVE.L #ABORTB,AV31" 0002018C 688m ENDM 0002018C 689 0002018C 690 0002018C 691 * Y.SA 0002018C 692 ADDR2MEM OUT1CR0,OUTPORT1 INITIALIZE I/O ROUTINES 0002018C 487A 1A76 692m PEA OUT1CR0(PC) MOVE ADDRESS TO MEMORY; POSITION 00020190 21DF 0630 692m MOVE.L (A7)+,OUTPORT1 INDEPENDANT = TO "MOVE.L #OUT1CR0,OUTPORT1" 00020194 692m ENDM 00020194 693 ADDR2MEM OUTPUT20,OUTPORT2 00020194 487A 1A8E 693m PEA OUTPUT20(PC) MOVE ADDRESS TO MEMORY; POSITION 00020198 21DF 0638 693m MOVE.L (A7)+,OUTPORT2 INDEPENDANT = TO "MOVE.L #OUTPUT20,OUTPORT2" 0002019C 693m ENDM 0002019C 694 ADDR2MEM PRCRLF,OUTPORT3 PRINTER DRIVER 0002019C 487A 1BC2 694m PEA PRCRLF(PC) MOVE ADDRESS TO MEMORY; POSITION 000201A0 21DF 0640 694m MOVE.L (A7)+,OUTPORT3 INDEPENDANT = TO "MOVE.L #PRCRLF,OUTPORT3" 000201A4 694m ENDM 000201A4 695 ADDR2MEM TAPEOUT,OUTPORT4 CASSETTE 000201A4 487A 1CF0 695m PEA TAPEOUT(PC) MOVE ADDRESS TO MEMORY; POSITION 000201A8 21DF 0648 695m MOVE.L (A7)+,OUTPORT4 INDEPENDANT = TO "MOVE.L #TAPEOUT,OUTPORT4" 000201AC 695m ENDM 000201AC 696 ADDR2MEM PORTIN10,INPORT1 000201AC 487A 1B0A 696m PEA PORTIN10(PC) MOVE ADDRESS TO MEMORY; POSITION 000201B0 21DF 062C 696m MOVE.L (A7)+,INPORT1 INDEPENDANT = TO "MOVE.L #PORTIN10,INPORT1" 000201B4 696m ENDM 000201B4 697 ADDR2MEM PORTIN20,INPORT2 000201B4 487A 1E18 697m PEA PORTIN20(PC) MOVE ADDRESS TO MEMORY; POSITION 000201B8 21DF 0634 697m MOVE.L (A7)+,INPORT2 INDEPENDANT = TO "MOVE.L #PORTIN20,INPORT2" 000201BC 697m ENDM 000201BC 698 ADDR2MEM PORTIN10,INPORT3 000201BC 487A 1AFA 698m PEA PORTIN10(PC) MOVE ADDRESS TO MEMORY; POSITION 000201C0 21DF 063C 698m MOVE.L (A7)+,INPORT3 INDEPENDANT = TO "MOVE.L #PORTIN10,INPORT3" 000201C4 698m ENDM 000201C4 699 ADDR2MEM TAPEIN,INPORT4 CASSETTE 000201C4 487A 1ED0 699m PEA TAPEIN(PC) MOVE ADDRESS TO MEMORY; POSITION 000201C8 21DF 0644 699m MOVE.L (A7)+,INPORT4 INDEPENDANT = TO "MOVE.L #TAPEIN,INPORT4" 000201CC 699m ENDM 000201CC 700 000201CC 11FC 0008 0654 701 MOVE.B #8,TAPENULS NULLS FOR CASSETTE 000201D2 21FC 00010000 064E 702 MOVE.L #PDI1,PDIPORT PRINTER 000201DA 703 000201DA 704 000201DA 705 * INITIALIZE MC68230 PI/T 000201DA 207C 00010000 706 MOVE.L #PDI1,A0 BASE ADDRESS OF PI/T 000201E0 203C 0000FF00 707 MOVE.L #$0000FF00,D0 000201E6 01C8 0001 708 MOVEP.L D0,1(A0) 000201EA 709 000201EA 710 * SELECT MODE 0 000201EA 711 * IRQ'S INACTIVATED 000201EA 712 * PORT A--ALL BITS OUTPUTS 000201EA 713 * PORT B--ALL BITS INPUTS 000201EA 714 000201EA 117C 0060 000D 715 MOVE.B #$60,13(A0) SUBMODE 01 FOR PORT A; INTERLOCKED HANDS 000201F0 117C 00A0 000F 716 MOVE.B #$A0,15(A0) SUBMODE 1X FOR PORT B 000201F6 117C 0030 0001 717 MOVE.B #$30,1(A0) ENABLE HANDSHAKE LINES 000201FC 117C 00A8 000F 718 MOVE.B #$A8,15(A0) RESET AND INIT PRINTER 00020202 21FC 00010010 064E 719 MOVE.L #PDI1+$10,PDIPORT 0002020A 720 0002020A 117C 00A0 000F 721 MOVE.B #$A0,15(A0) CLEAR INIT 00020210 722 00020210 723 * INITIALIZE THE PDI'S 00020210 724 00020210 31FC 1515 064C 725 MOVE.W #$1515,MD1CON 00020216 6100 1D5C 726 BSR INITSER RESET & PROGRAM PDI 0002021A 727 0002021A 728 * INITIALIZE XON/XOFF (READER ON / READER OFF) 0002021A 729 * AUTO-LINE FEED OVERRIDE 0002021A 730 0002021A 21FC 00000000 04E6 731 MOVE.L #$00000000,XONOFF 00020222 732 00020222 733 00020222 734 00020222 735 * TRAP14.SA 00020222 736 ADDR2MEM TRAP14,AV46 00020222 487A 3C46 736m PEA TRAP14(PC) MOVE ADDRESS TO MEMORY; POSITION 00020226 21DF 00B8 736m MOVE.L (A7)+,AV46 INDEPENDANT = TO "MOVE.L #TRAP14,AV46" 0002022A 736m ENDM 0002022A 21FC FE023F0E 0656 737 MOVE.L #(254<<24)+CT,CTLINK 00020232 738 00020232 739 00020232 740 00020232 741 00020232 742 00020232 743 ************************************************************************ 00020232 744 * V E R S I O N N U M B E R A N D P R O M P T * 00020232 745 ************************************************************************ 00020232 746 00020232 46FC 2700 747 MACSBUG MOVE.W #$2700,SR MASK OFF INTERRUPTS 00020236 4FF8 0786 748 LEA SYSTACK,A7 RESTORE SYSTEM STACK 0002023A 6100 0B60 749 BSR SWAPOUT GET BP OUT OF USER MEMORY 0002023E 750 0002023E 42B8 0490 751 CLR.L BPTILL GET RID OF 'TILL' BREAKPOINT 00020242 42B8 061C 752 CLR.L OUTTO INITIALIZE I/O TO DEFAULT 00020246 42B8 0620 753 CLR.L INFROM INITIALIZE I/O TO DEFAULT 0002024A 4238 04E2 754 CLR.B ECHOPT1 NO ECHO TO PORT1 0002024E 755 0002024E 4BFA 00AA 756 LEA MSG001(PC),A5 > (Prompt) 00020252 6100 FE9E 757 BSR FIXDATA 00020256 758 00020256 4A78 04DE 759 TST.W TRACEON SEE IF IN TRACE MODE 0002025A 6704 760 BEQ.S MACSBUG1 0002025C 1CFC 003A 761 MOVE.B #':',(A6)+ IN TRACE MODE 00020260 1CFC 003E 762 MACSBUG1 MOVE.B #'>',(A6)+ PROMPT 00020264 1CFC 0020 763 MOVE.B #BLANK,(A6)+ .. SPACE 00020268 6100 199A 764 BSR OUTPUT GO PRINT IT 0002026C 765 0002026C 766 * INPUT LINE 0002026C 6100 1A22 767 BSR FIXBUF GET READY FOR INPUT 00020270 6100 1A26 768 BSR PORTIN1 GET A COMMAND 00020274 1CBC 0020 769 DECODE6 MOVE.B #BLANK,(A6) BLANK OUT END+1 00020278 770 00020278 771 * DECODE A COMMAND 00020278 772 * 00020278 773 * DECODE SPECIAL CHARACTER USAGE: 00020278 774 * LEADING SPACES IGNORED 00020278 775 * LEADING NULLS IGNORED 00020278 776 * IF SECOND CHAR * CHAR CAN BE ANY CHAR 00020278 777 00020278 BBCE 778 CMP.L A6,A5 SEE IF ANYTHING ENTERED 0002027A 6B08 779 BMI.S DECODE1 0002027C 4A78 04DE 780 TST.W TRACEON SEE IF IN TRACE MODE 00020280 6600 031A 781 BNE TCMDHOT DIRECT TO TRACE 1 COMMAND 00020284 782 00020284 BBCE 783 DECODE1 CMP.L A6,A5 SEE IF AT END OF BUFFER 00020286 6200 FE16 784 BHI WHAT GO TO 'WHAT' IF CONFUSED 0002028A 1015 785 MOVE.B (A5),D0 GRAB FIRST CHARACTER 0002028C 0C00 002A 786 CMPI.B #'*',D0 SEND LINE COMMAND 00020290 6608 787 BNE.S DECODE10 00020292 528D 788 ADDQ.L #1,A5 GET PAST PHOENY PROMPT 00020294 6100 1978 789 BSR OUTPUT2 SEND LINE+CR (NO LF) TO PORT2 00020298 6098 790 BRA MACSBUG REENTER COMMAND MODE 0002029A 791 0002029A 0C00 0020 792 DECODE10 CMPI.B #$20,D0 IGNORE LEADING SPACES 0002029E 6604 793 BNE.S DECODE2 WHERE TO GO IF NOT A SPACE 000202A0 528D 794 ADDQ.L #1,A5 BUMP START OF BUFFER 000202A2 60E0 795 BRA.S DECODE1 TRY NEXT CHARACTER 000202A4 796 * 000202A4 1215 797 DECODE2 MOVE.B (A5),D1 GET 2 LETTERS OF COMMAND 000202A6 E149 798 LSL.W #8,D1 MAKE ROOM FOR SECOND CHAR 000202A8 122D 0001 799 MOVE.B 1(A5),D1 GET SECOND CHAR 000202AC 4283 800 CLR.L D3 D3 = CLEAR "NO" SWITCH 000202AE 801 000202AE 43FA 0058 802 DECODE21 LEA SOLIST(PC),A1 A1 = COMMAND LIST ADDRESS 000202B2 3419 803 DECODE4 MOVE.W (A1)+,D2 D2 = 2 CHAR COMMAND FROM LIST 000202B4 4280 804 CLR.L D0 CLEAR HIGH BITS 000202B6 3019 805 MOVE.W (A1)+,D0 D0 = OFFSET FROM START OF ROM 000202B8 806 000202B8 4A83 807 TST.L D3 000202BA 6704 808 BEQ.S DECODE41 NOT A "NO" 000202BC 4A02 809 TST.B D2 IS "NO" OPTION SUPPORTED THIS COMMAND? 000202BE 6AF2 810 BPL DECODE4 NO...THEN RUN OUT OF COMMANDS 000202C0 811 000202C0 0242 7F7F 812 DECODE41 ANDI.W #$7F7F,D2 CLEAR "INVISABLE" & "NO" BITS 000202C4 0C42 7F7F 813 CMPI.W #$7F7F,D2 END OF LIST? 000202C8 6700 FDD4 814 BEQ WHAT Command not found 000202CC 815 000202CC 0C02 002A 816 CMPI.B #'*',D2 SEE IF DON'T CARE CHARACTER 000202D0 6602 817 BNE.S DECODE3 000202D2 1401 818 MOVE.B D1,D2 DEFAULT 000202D4 819 000202D4 B441 820 DECODE3 CMP.W D1,D2 Command from table = the input? 000202D6 66DA 821 BNE DECODE4 COMMAND NOT FOUND 000202D8 822 000202D8 4278 04DE 823 CLR.W TRACEON TURN OFF TRACE MODE 000202DC 824 000202DC 548D 825 ADDQ.L #2,A5 POINT A5 PAST 2 DIGIT COMMAND 000202DE 826 000202DE 487A FD20 827 PEA FIRST(PC) BUILD GO TO ADDRESS 000202E2 D197 828 ADD.L D0,(A7) ON STACK. 000202E4 D797 829 ADD.L D3,(A7) 000202E6 830 000202E6 205F 831 MOVE.L (A7)+,A0 GO TO COMMAND 000202E8 4E90 832 JSR (A0) * SAVE MARK FOR RETURN 000202EA 6000 FF46 833 BRA MACSBUG * RETURN HERE 000202EE 834 000202EE 835 * 000202EE 836 * NO COMMAND 000202EE 837 * 000202EE 76FC 838 NOCMD MOVEQ #-4,D3 SET "NO" SWITCH 000202F0 1215 839 MOVE.B (A5),D1 MOVE CHAR #3 000202F2 E141 840 ASL.W #8,D1 MOVE OVER 1 CHAR 000202F4 122D 0001 841 MOVE.B 1(A5),D1 MOVE CHAR #4 000202F8 60B4 842 BRA DECODE21 WHICH "NO" COMMAND? 000202FA 843 000202FA 844 000202FA 845 *------------------------------------------------------------------------- 000202FA 846 * File COMMANDS Command list 06/20/82 000202FA 847 000202FA 848 000202FA 0D 0A 54 55 54 4F 52 849 MSG001 DC.B CR,LF,'TUTOR 1.3 ',EOT "PROMPT" 20 20 31 2E 33 20 04 00020308 850 00020308 851 00020308 852 00020308 853 00020308 854 ******************************************************* 00020308 855 * C O P Y R I G H T . 1 9 8 1 . B Y . M O T O R O L A * 00020308 856 ******************************************************* 00020308 857 00020308 858 * VERSAbug command generation macro 00020308 859 CMD MACRO 00020308 860 FLAG SET 0 * 00020308 861 IFC '\2','HELP=NO' 00020308 862 FLAG SET FLAG+$8000 * "Help" will not display this command 00020308 863 ENDC 00020308 864 IFC '\3','HELP=NO' 00020308 865 FLAG SET FLAG+$8000 * "Help" will not display this command 00020308 866 ENDC 00020308 867 IFC '\2','NORTN=YES' 00020308 868 FLAG SET FLAG+$80 * "NO\1".Command 00020308 869 ENDC 00020308 870 IFC '\3','NORTN=YES' 00020308 871 FLAG SET FLAG+$80 * "NO\1".Command 00020308 872 ENDC 00020308 873 IFC '\1','PER' Check for the "PER" command 00020308 874 DC.W '.*'+FLAG * Reg commands (.A2 .D6 .PC .R0 etc.) 00020308 875 DC.W \1CMD-FIRST ************************************* 00020308 876 ENDC 00020308 877 IFNC '\1','PER' If not PERCMD... 00020308 878 IFEQ '\1'&($FF00) If 1 digit code, 2nd will be a blank. 00020308 879 DC.W '\1 '+FLAG * "\1"....Command - - (Single Digit) 00020308 880 ENDC 00020308 881 IFNE '\1'&($FF00) If 2 digit code, leave as is. 00020308 882 DC.W '\1'+FLAG * "\1"...Command 00020308 883 ENDC 00020308 884 DC.W \1CMD-FIRST ************************************* 00020308 885 ENDC 00020308 886 ENDM 00020308 887 00020308 888 00020308 889 SOLIST DS 0 Start Of LIST 00020308 890 00020308 891 CMD PER,HELP=NO,X,X 00020308 =00000000 891m FLAG SET 0 * 00020308 TRUE 891m IFC 'HELP=NO','HELP=NO' 00020308 =00008000 891m FLAG SET FLAG+$8000 * "HELP" WILL NOT DISPLAY THIS COMMAND 00020308 891m ENDC 00020308 FALSE 891m IFC 'X','HELP=NO' 00020308 891m ENDC 00020308 FALSE 891m IFC 'HELP=NO','NORTN=YES' 00020308 891m ENDC 00020308 FALSE 891m IFC 'X','NORTN=YES' 00020308 891m ENDC 00020308 TRUE 891m IFC 'PER','PER' CHECK FOR THE "PER" COMMAND 00020308 AE2A 891m DC.W '.*'+FLAG * REG COMMANDS (.A2 .D6 .PC .R0 ETC.) 0002030A 158A 891m DC.W PERCMD-FIRST ************************************* 0002030C 891m ENDC 0002030C FALSE 891m IFNC 'PER','PER' IF NOT PERCMD... 0002030C 891m ENDC 0002030C 891m ENDM 0002030C 892 0002030C 893 CMD NO,HELP=NO,X,X 0002030C =00000000 893m FLAG SET 0 * 0002030C TRUE 893m IFC 'HELP=NO','HELP=NO' 0002030C =00008000 893m FLAG SET FLAG+$8000 * "HELP" WILL NOT DISPLAY THIS COMMAND 0002030C 893m ENDC 0002030C FALSE 893m IFC 'X','HELP=NO' 0002030C 893m ENDC 0002030C FALSE 893m IFC 'HELP=NO','NORTN=YES' 0002030C 893m ENDC 0002030C FALSE 893m IFC 'X','NORTN=YES' 0002030C 893m ENDC 0002030C FALSE 893m IFC 'NO','PER' CHECK FOR THE "PER" COMMAND 0002030C 893m ENDC 0002030C TRUE 893m IFNC 'NO','PER' IF NOT PERCMD... 0002030C FALSE 893m IFEQ 'NO'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002030C 893m ENDC 0002030C TRUE 893m IFNE 'NO'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002030C CE4F 893m DC.W 'NO'+FLAG * "NO"...COMMAND 0002030E 893m ENDC 0002030E 02EE 893m DC.W NOCMD-FIRST ************************************* 00020310 893m ENDC 00020310 893m ENDM 00020310 894 00020310 895 CMD BF,X,X 00020310 =00000000 895m FLAG SET 0 * 00020310 FALSE 895m IFC 'X','HELP=NO' 00020310 895m ENDC 00020310 FALSE 895m IFC 'X','HELP=NO' 00020310 895m ENDC 00020310 FALSE 895m IFC 'X','NORTN=YES' 00020310 895m ENDC 00020310 FALSE 895m IFC 'X','NORTN=YES' 00020310 895m ENDC 00020310 FALSE 895m IFC 'BF','PER' CHECK FOR THE "PER" COMMAND 00020310 895m ENDC 00020310 TRUE 895m IFNC 'BF','PER' IF NOT PERCMD... 00020310 FALSE 895m IFEQ 'BF'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020310 895m ENDC 00020310 TRUE 895m IFNE 'BF'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020310 4246 895m DC.W 'BF'+FLAG * "BF"...COMMAND 00020312 895m ENDC 00020312 04E4 895m DC.W BFCMD-FIRST ************************************* 00020314 895m ENDC 00020314 895m ENDM 00020314 896 00020314 897 CMD BM,X,X 00020314 =00000000 897m FLAG SET 0 * 00020314 FALSE 897m IFC 'X','HELP=NO' 00020314 897m ENDC 00020314 FALSE 897m IFC 'X','HELP=NO' 00020314 897m ENDC 00020314 FALSE 897m IFC 'X','NORTN=YES' 00020314 897m ENDC 00020314 FALSE 897m IFC 'X','NORTN=YES' 00020314 897m ENDC 00020314 FALSE 897m IFC 'BM','PER' CHECK FOR THE "PER" COMMAND 00020314 897m ENDC 00020314 TRUE 897m IFNC 'BM','PER' IF NOT PERCMD... 00020314 FALSE 897m IFEQ 'BM'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020314 897m ENDC 00020314 TRUE 897m IFNE 'BM'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020314 424D 897m DC.W 'BM'+FLAG * "BM"...COMMAND 00020316 897m ENDC 00020316 0536 897m DC.W BMCMD-FIRST ************************************* 00020318 897m ENDC 00020318 897m ENDM 00020318 898 00020318 899 00020318 900 00020318 901 CMD BR,NORTN=YES,X,X 00020318 =00000000 901m FLAG SET 0 * 00020318 FALSE 901m IFC 'NORTN=YES','HELP=NO' 00020318 901m ENDC 00020318 FALSE 901m IFC 'X','HELP=NO' 00020318 901m ENDC 00020318 TRUE 901m IFC 'NORTN=YES','NORTN=YES' 00020318 =00000080 901m FLAG SET FLAG+$80 * "NOBR".COMMAND 00020318 901m ENDC 00020318 FALSE 901m IFC 'X','NORTN=YES' 00020318 901m ENDC 00020318 FALSE 901m IFC 'BR','PER' CHECK FOR THE "PER" COMMAND 00020318 901m ENDC 00020318 TRUE 901m IFNC 'BR','PER' IF NOT PERCMD... 00020318 FALSE 901m IFEQ 'BR'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020318 901m ENDC 00020318 TRUE 901m IFNE 'BR'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020318 42D2 901m DC.W 'BR'+FLAG * "BR"...COMMAND 0002031A 901m ENDC 0002031A 0652 901m DC.W BRCMD-FIRST ************************************* 0002031C 901m ENDC 0002031C 901m ENDM 0002031C 902 0002031C 903 CMD BS,X,X 0002031C =00000000 903m FLAG SET 0 * 0002031C FALSE 903m IFC 'X','HELP=NO' 0002031C 903m ENDC 0002031C FALSE 903m IFC 'X','HELP=NO' 0002031C 903m ENDC 0002031C FALSE 903m IFC 'X','NORTN=YES' 0002031C 903m ENDC 0002031C FALSE 903m IFC 'X','NORTN=YES' 0002031C 903m ENDC 0002031C FALSE 903m IFC 'BS','PER' CHECK FOR THE "PER" COMMAND 0002031C 903m ENDC 0002031C TRUE 903m IFNC 'BS','PER' IF NOT PERCMD... 0002031C FALSE 903m IFEQ 'BS'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002031C 903m ENDC 0002031C TRUE 903m IFNE 'BS'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002031C 4253 903m DC.W 'BS'+FLAG * "BS"...COMMAND 0002031E 903m ENDC 0002031E 0718 903m DC.W BSCMD-FIRST ************************************* 00020320 903m ENDC 00020320 903m ENDM 00020320 904 00020320 905 CMD BT,X,X 00020320 =00000000 905m FLAG SET 0 * 00020320 FALSE 905m IFC 'X','HELP=NO' 00020320 905m ENDC 00020320 FALSE 905m IFC 'X','HELP=NO' 00020320 905m ENDC 00020320 FALSE 905m IFC 'X','NORTN=YES' 00020320 905m ENDC 00020320 FALSE 905m IFC 'X','NORTN=YES' 00020320 905m ENDC 00020320 FALSE 905m IFC 'BT','PER' CHECK FOR THE "PER" COMMAND 00020320 905m ENDC 00020320 TRUE 905m IFNC 'BT','PER' IF NOT PERCMD... 00020320 FALSE 905m IFEQ 'BT'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020320 905m ENDC 00020320 TRUE 905m IFNE 'BT'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020320 4254 905m DC.W 'BT'+FLAG * "BT"...COMMAND 00020322 905m ENDC 00020322 0852 905m DC.W BTCMD-FIRST ************************************* 00020324 905m ENDC 00020324 905m ENDM 00020324 906 00020324 907 CMD DC,X,X 00020324 =00000000 907m FLAG SET 0 * 00020324 FALSE 907m IFC 'X','HELP=NO' 00020324 907m ENDC 00020324 FALSE 907m IFC 'X','HELP=NO' 00020324 907m ENDC 00020324 FALSE 907m IFC 'X','NORTN=YES' 00020324 907m ENDC 00020324 FALSE 907m IFC 'X','NORTN=YES' 00020324 907m ENDC 00020324 FALSE 907m IFC 'DC','PER' CHECK FOR THE "PER" COMMAND 00020324 907m ENDC 00020324 TRUE 907m IFNC 'DC','PER' IF NOT PERCMD... 00020324 FALSE 907m IFEQ 'DC'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020324 907m ENDC 00020324 TRUE 907m IFNE 'DC'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020324 4443 907m DC.W 'DC'+FLAG * "DC"...COMMAND 00020326 907m ENDC 00020326 08A4 907m DC.W DCCMD-FIRST ************************************* 00020328 907m ENDC 00020328 907m ENDM 00020328 908 00020328 909 CMD DF,X,X 00020328 =00000000 909m FLAG SET 0 * 00020328 FALSE 909m IFC 'X','HELP=NO' 00020328 909m ENDC 00020328 FALSE 909m IFC 'X','HELP=NO' 00020328 909m ENDC 00020328 FALSE 909m IFC 'X','NORTN=YES' 00020328 909m ENDC 00020328 FALSE 909m IFC 'X','NORTN=YES' 00020328 909m ENDC 00020328 FALSE 909m IFC 'DF','PER' CHECK FOR THE "PER" COMMAND 00020328 909m ENDC 00020328 TRUE 909m IFNC 'DF','PER' IF NOT PERCMD... 00020328 FALSE 909m IFEQ 'DF'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020328 909m ENDC 00020328 TRUE 909m IFNE 'DF'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020328 4446 909m DC.W 'DF'+FLAG * "DF"...COMMAND 0002032A 909m ENDC 0002032A 0902 909m DC.W DFCMD-FIRST ************************************* 0002032C 909m ENDC 0002032C 909m ENDM 0002032C 910 0002032C 911 CMD DU,X,X 0002032C =00000000 911m FLAG SET 0 * 0002032C FALSE 911m IFC 'X','HELP=NO' 0002032C 911m ENDC 0002032C FALSE 911m IFC 'X','HELP=NO' 0002032C 911m ENDC 0002032C FALSE 911m IFC 'X','NORTN=YES' 0002032C 911m ENDC 0002032C FALSE 911m IFC 'X','NORTN=YES' 0002032C 911m ENDC 0002032C FALSE 911m IFC 'DU','PER' CHECK FOR THE "PER" COMMAND 0002032C 911m ENDC 0002032C TRUE 911m IFNC 'DU','PER' IF NOT PERCMD... 0002032C FALSE 911m IFEQ 'DU'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002032C 911m ENDC 0002032C TRUE 911m IFNE 'DU'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002032C 4455 911m DC.W 'DU'+FLAG * "DU"...COMMAND 0002032E 911m ENDC 0002032E 0A20 911m DC.W DUCMD-FIRST ************************************* 00020330 911m ENDC 00020330 911m ENDM 00020330 912 00020330 913 00020330 914 00020330 915 CMD G,X,X 00020330 =00000000 915m FLAG SET 0 * 00020330 FALSE 915m IFC 'X','HELP=NO' 00020330 915m ENDC 00020330 FALSE 915m IFC 'X','HELP=NO' 00020330 915m ENDC 00020330 FALSE 915m IFC 'X','NORTN=YES' 00020330 915m ENDC 00020330 FALSE 915m IFC 'X','NORTN=YES' 00020330 915m ENDC 00020330 FALSE 915m IFC 'G','PER' CHECK FOR THE "PER" COMMAND 00020330 915m ENDC 00020330 TRUE 915m IFNC 'G','PER' IF NOT PERCMD... 00020330 TRUE 915m IFEQ 'G'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020330 4720 915m DC.W 'G '+FLAG * "G"....COMMAND - - (SINGLE DIGIT) 00020332 915m ENDC 00020332 FALSE 915m IFNE 'G'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020332 915m ENDC 00020332 0624 915m DC.W GCMD-FIRST ************************************* 00020334 915m ENDC 00020334 915m ENDM 00020334 916 00020334 917 CMD GD,X,X 00020334 =00000000 917m FLAG SET 0 * 00020334 FALSE 917m IFC 'X','HELP=NO' 00020334 917m ENDC 00020334 FALSE 917m IFC 'X','HELP=NO' 00020334 917m ENDC 00020334 FALSE 917m IFC 'X','NORTN=YES' 00020334 917m ENDC 00020334 FALSE 917m IFC 'X','NORTN=YES' 00020334 917m ENDC 00020334 FALSE 917m IFC 'GD','PER' CHECK FOR THE "PER" COMMAND 00020334 917m ENDC 00020334 TRUE 917m IFNC 'GD','PER' IF NOT PERCMD... 00020334 FALSE 917m IFEQ 'GD'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020334 917m ENDC 00020334 TRUE 917m IFNE 'GD'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020334 4744 917m DC.W 'GD'+FLAG * "GD"...COMMAND 00020336 917m ENDC 00020336 0632 917m DC.W GDCMD-FIRST ************************************* 00020338 917m ENDC 00020338 917m ENDM 00020338 918 00020338 919 CMD GO,X,X 00020338 =00000000 919m FLAG SET 0 * 00020338 FALSE 919m IFC 'X','HELP=NO' 00020338 919m ENDC 00020338 FALSE 919m IFC 'X','HELP=NO' 00020338 919m ENDC 00020338 FALSE 919m IFC 'X','NORTN=YES' 00020338 919m ENDC 00020338 FALSE 919m IFC 'X','NORTN=YES' 00020338 919m ENDC 00020338 FALSE 919m IFC 'GO','PER' CHECK FOR THE "PER" COMMAND 00020338 919m ENDC 00020338 TRUE 919m IFNC 'GO','PER' IF NOT PERCMD... 00020338 FALSE 919m IFEQ 'GO'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020338 919m ENDC 00020338 TRUE 919m IFNE 'GO'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020338 474F 919m DC.W 'GO'+FLAG * "GO"...COMMAND 0002033A 919m ENDC 0002033A 0624 919m DC.W GOCMD-FIRST ************************************* 0002033C 919m ENDC 0002033C 919m ENDM 0002033C 920 0002033C 921 CMD GT,X,X 0002033C =00000000 921m FLAG SET 0 * 0002033C FALSE 921m IFC 'X','HELP=NO' 0002033C 921m ENDC 0002033C FALSE 921m IFC 'X','HELP=NO' 0002033C 921m ENDC 0002033C FALSE 921m IFC 'X','NORTN=YES' 0002033C 921m ENDC 0002033C FALSE 921m IFC 'X','NORTN=YES' 0002033C 921m ENDC 0002033C FALSE 921m IFC 'GT','PER' CHECK FOR THE "PER" COMMAND 0002033C 921m ENDC 0002033C TRUE 921m IFNC 'GT','PER' IF NOT PERCMD... 0002033C FALSE 921m IFEQ 'GT'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002033C 921m ENDC 0002033C TRUE 921m IFNE 'GT'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002033C 4754 921m DC.W 'GT'+FLAG * "GT"...COMMAND 0002033E 921m ENDC 0002033E 05D8 921m DC.W GTCMD-FIRST ************************************* 00020340 921m ENDC 00020340 921m ENDM 00020340 922 00020340 923 CMD HE,X,X 00020340 =00000000 923m FLAG SET 0 * 00020340 FALSE 923m IFC 'X','HELP=NO' 00020340 923m ENDC 00020340 FALSE 923m IFC 'X','HELP=NO' 00020340 923m ENDC 00020340 FALSE 923m IFC 'X','NORTN=YES' 00020340 923m ENDC 00020340 FALSE 923m IFC 'X','NORTN=YES' 00020340 923m ENDC 00020340 FALSE 923m IFC 'HE','PER' CHECK FOR THE "PER" COMMAND 00020340 923m ENDC 00020340 TRUE 923m IFNC 'HE','PER' IF NOT PERCMD... 00020340 FALSE 923m IFEQ 'HE'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020340 923m ENDC 00020340 TRUE 923m IFNE 'HE'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020340 4845 923m DC.W 'HE'+FLAG * "HE"...COMMAND 00020342 923m ENDC 00020342 0E82 923m DC.W HECMD-FIRST ************************************* 00020344 923m ENDC 00020344 923m ENDM 00020344 924 00020344 925 CMD LO,X,X 00020344 =00000000 925m FLAG SET 0 * 00020344 FALSE 925m IFC 'X','HELP=NO' 00020344 925m ENDC 00020344 FALSE 925m IFC 'X','HELP=NO' 00020344 925m ENDC 00020344 FALSE 925m IFC 'X','NORTN=YES' 00020344 925m ENDC 00020344 FALSE 925m IFC 'X','NORTN=YES' 00020344 925m ENDC 00020344 FALSE 925m IFC 'LO','PER' CHECK FOR THE "PER" COMMAND 00020344 925m ENDC 00020344 TRUE 925m IFNC 'LO','PER' IF NOT PERCMD... 00020344 FALSE 925m IFEQ 'LO'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020344 925m ENDC 00020344 TRUE 925m IFNE 'LO'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020344 4C4F 925m DC.W 'LO'+FLAG * "LO"...COMMAND 00020346 925m ENDC 00020346 0FC6 925m DC.W LOCMD-FIRST ************************************* 00020348 925m ENDC 00020348 925m ENDM 00020348 926 00020348 927 CMD M,X,X 00020348 =00000000 927m FLAG SET 0 * 00020348 FALSE 927m IFC 'X','HELP=NO' 00020348 927m ENDC 00020348 FALSE 927m IFC 'X','HELP=NO' 00020348 927m ENDC 00020348 FALSE 927m IFC 'X','NORTN=YES' 00020348 927m ENDC 00020348 FALSE 927m IFC 'X','NORTN=YES' 00020348 927m ENDC 00020348 FALSE 927m IFC 'M','PER' CHECK FOR THE "PER" COMMAND 00020348 927m ENDC 00020348 TRUE 927m IFNC 'M','PER' IF NOT PERCMD... 00020348 TRUE 927m IFEQ 'M'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020348 4D20 927m DC.W 'M '+FLAG * "M"....COMMAND - - (SINGLE DIGIT) 0002034A 927m ENDC 0002034A FALSE 927m IFNE 'M'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002034A 927m ENDC 0002034A 1312 927m DC.W MCMD-FIRST ************************************* 0002034C 927m ENDC 0002034C 927m ENDM 0002034C 928 0002034C 929 0002034C 930 0002034C 931 CMD MD,X,X 0002034C =00000000 931m FLAG SET 0 * 0002034C FALSE 931m IFC 'X','HELP=NO' 0002034C 931m ENDC 0002034C FALSE 931m IFC 'X','HELP=NO' 0002034C 931m ENDC 0002034C FALSE 931m IFC 'X','NORTN=YES' 0002034C 931m ENDC 0002034C FALSE 931m IFC 'X','NORTN=YES' 0002034C 931m ENDC 0002034C FALSE 931m IFC 'MD','PER' CHECK FOR THE "PER" COMMAND 0002034C 931m ENDC 0002034C TRUE 931m IFNC 'MD','PER' IF NOT PERCMD... 0002034C FALSE 931m IFEQ 'MD'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002034C 931m ENDC 0002034C TRUE 931m IFNE 'MD'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002034C 4D44 931m DC.W 'MD'+FLAG * "MD"...COMMAND 0002034E 931m ENDC 0002034E 1164 931m DC.W MDCMD-FIRST ************************************* 00020350 931m ENDC 00020350 931m ENDM 00020350 932 00020350 933 CMD MM,X,X 00020350 =00000000 933m FLAG SET 0 * 00020350 FALSE 933m IFC 'X','HELP=NO' 00020350 933m ENDC 00020350 FALSE 933m IFC 'X','HELP=NO' 00020350 933m ENDC 00020350 FALSE 933m IFC 'X','NORTN=YES' 00020350 933m ENDC 00020350 FALSE 933m IFC 'X','NORTN=YES' 00020350 933m ENDC 00020350 FALSE 933m IFC 'MM','PER' CHECK FOR THE "PER" COMMAND 00020350 933m ENDC 00020350 TRUE 933m IFNC 'MM','PER' IF NOT PERCMD... 00020350 FALSE 933m IFEQ 'MM'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020350 933m ENDC 00020350 TRUE 933m IFNE 'MM'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020350 4D4D 933m DC.W 'MM'+FLAG * "MM"...COMMAND 00020352 933m ENDC 00020352 1312 933m DC.W MMCMD-FIRST ************************************* 00020354 933m ENDC 00020354 933m ENDM 00020354 934 00020354 935 CMD MS,X,X 00020354 =00000000 935m FLAG SET 0 * 00020354 FALSE 935m IFC 'X','HELP=NO' 00020354 935m ENDC 00020354 FALSE 935m IFC 'X','HELP=NO' 00020354 935m ENDC 00020354 FALSE 935m IFC 'X','NORTN=YES' 00020354 935m ENDC 00020354 FALSE 935m IFC 'X','NORTN=YES' 00020354 935m ENDC 00020354 FALSE 935m IFC 'MS','PER' CHECK FOR THE "PER" COMMAND 00020354 935m ENDC 00020354 TRUE 935m IFNC 'MS','PER' IF NOT PERCMD... 00020354 FALSE 935m IFEQ 'MS'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020354 935m ENDC 00020354 TRUE 935m IFNE 'MS'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020354 4D53 935m DC.W 'MS'+FLAG * "MS"...COMMAND 00020356 935m ENDC 00020356 1496 935m DC.W MSCMD-FIRST ************************************* 00020358 935m ENDC 00020358 935m ENDM 00020358 936 00020358 937 CMD OF,X,X 00020358 =00000000 937m FLAG SET 0 * 00020358 FALSE 937m IFC 'X','HELP=NO' 00020358 937m ENDC 00020358 FALSE 937m IFC 'X','HELP=NO' 00020358 937m ENDC 00020358 FALSE 937m IFC 'X','NORTN=YES' 00020358 937m ENDC 00020358 FALSE 937m IFC 'X','NORTN=YES' 00020358 937m ENDC 00020358 FALSE 937m IFC 'OF','PER' CHECK FOR THE "PER" COMMAND 00020358 937m ENDC 00020358 TRUE 937m IFNC 'OF','PER' IF NOT PERCMD... 00020358 FALSE 937m IFEQ 'OF'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020358 937m ENDC 00020358 TRUE 937m IFNE 'OF'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020358 4F46 937m DC.W 'OF'+FLAG * "OF"...COMMAND 0002035A 937m ENDC 0002035A 16BA 937m DC.W OFCMD-FIRST ************************************* 0002035C 937m ENDC 0002035C 937m ENDM 0002035C 938 0002035C 939 CMD PA,NORTN=YES,X,X 0002035C =00000000 939m FLAG SET 0 * 0002035C FALSE 939m IFC 'NORTN=YES','HELP=NO' 0002035C 939m ENDC 0002035C FALSE 939m IFC 'X','HELP=NO' 0002035C 939m ENDC 0002035C TRUE 939m IFC 'NORTN=YES','NORTN=YES' 0002035C =00000080 939m FLAG SET FLAG+$80 * "NOPA".COMMAND 0002035C 939m ENDC 0002035C FALSE 939m IFC 'X','NORTN=YES' 0002035C 939m ENDC 0002035C FALSE 939m IFC 'PA','PER' CHECK FOR THE "PER" COMMAND 0002035C 939m ENDC 0002035C TRUE 939m IFNC 'PA','PER' IF NOT PERCMD... 0002035C FALSE 939m IFEQ 'PA'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002035C 939m ENDC 0002035C TRUE 939m IFNE 'PA'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002035C 50C1 939m DC.W 'PA'+FLAG * "PA"...COMMAND 0002035E 939m ENDC 0002035E 21B6 939m DC.W PACMD-FIRST ************************************* 00020360 939m ENDC 00020360 939m ENDM 00020360 940 00020360 941 CMD PF,X,X 00020360 =00000000 941m FLAG SET 0 * 00020360 FALSE 941m IFC 'X','HELP=NO' 00020360 941m ENDC 00020360 FALSE 941m IFC 'X','HELP=NO' 00020360 941m ENDC 00020360 FALSE 941m IFC 'X','NORTN=YES' 00020360 941m ENDC 00020360 FALSE 941m IFC 'X','NORTN=YES' 00020360 941m ENDC 00020360 FALSE 941m IFC 'PF','PER' CHECK FOR THE "PER" COMMAND 00020360 941m ENDC 00020360 TRUE 941m IFNC 'PF','PER' IF NOT PERCMD... 00020360 FALSE 941m IFEQ 'PF'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020360 941m ENDC 00020360 TRUE 941m IFNE 'PF'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020360 5046 941m DC.W 'PF'+FLAG * "PF"...COMMAND 00020362 941m ENDC 00020362 1738 941m DC.W PFCMD-FIRST ************************************* 00020364 941m ENDC 00020364 941m ENDM 00020364 942 00020364 943 00020364 944 00020364 945 CMD T,X,X 00020364 =00000000 945m FLAG SET 0 * 00020364 FALSE 945m IFC 'X','HELP=NO' 00020364 945m ENDC 00020364 FALSE 945m IFC 'X','HELP=NO' 00020364 945m ENDC 00020364 FALSE 945m IFC 'X','NORTN=YES' 00020364 945m ENDC 00020364 FALSE 945m IFC 'X','NORTN=YES' 00020364 945m ENDC 00020364 FALSE 945m IFC 'T','PER' CHECK FOR THE "PER" COMMAND 00020364 945m ENDC 00020364 TRUE 945m IFNC 'T','PER' IF NOT PERCMD... 00020364 TRUE 945m IFEQ 'T'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020364 5420 945m DC.W 'T '+FLAG * "T"....COMMAND - - (SINGLE DIGIT) 00020366 945m ENDC 00020366 FALSE 945m IFNE 'T'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020366 945m ENDC 00020366 0588 945m DC.W TCMD-FIRST ************************************* 00020368 945m ENDC 00020368 945m ENDM 00020368 946 00020368 947 CMD TM,X,X 00020368 =00000000 947m FLAG SET 0 * 00020368 FALSE 947m IFC 'X','HELP=NO' 00020368 947m ENDC 00020368 FALSE 947m IFC 'X','HELP=NO' 00020368 947m ENDC 00020368 FALSE 947m IFC 'X','NORTN=YES' 00020368 947m ENDC 00020368 FALSE 947m IFC 'X','NORTN=YES' 00020368 947m ENDC 00020368 FALSE 947m IFC 'TM','PER' CHECK FOR THE "PER" COMMAND 00020368 947m ENDC 00020368 TRUE 947m IFNC 'TM','PER' IF NOT PERCMD... 00020368 FALSE 947m IFEQ 'TM'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020368 947m ENDC 00020368 TRUE 947m IFNE 'TM'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020368 544D 947m DC.W 'TM'+FLAG * "TM"...COMMAND 0002036A 947m ENDC 0002036A 186E 947m DC.W TMCMD-FIRST ************************************* 0002036C 947m ENDC 0002036C 947m ENDM 0002036C 948 0002036C 949 CMD TR,X,X 0002036C =00000000 949m FLAG SET 0 * 0002036C FALSE 949m IFC 'X','HELP=NO' 0002036C 949m ENDC 0002036C FALSE 949m IFC 'X','HELP=NO' 0002036C 949m ENDC 0002036C FALSE 949m IFC 'X','NORTN=YES' 0002036C 949m ENDC 0002036C FALSE 949m IFC 'X','NORTN=YES' 0002036C 949m ENDC 0002036C FALSE 949m IFC 'TR','PER' CHECK FOR THE "PER" COMMAND 0002036C 949m ENDC 0002036C TRUE 949m IFNC 'TR','PER' IF NOT PERCMD... 0002036C FALSE 949m IFEQ 'TR'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 0002036C 949m ENDC 0002036C TRUE 949m IFNE 'TR'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 0002036C 5452 949m DC.W 'TR'+FLAG * "TR"...COMMAND 0002036E 949m ENDC 0002036E 0588 949m DC.W TRCMD-FIRST ************************************* 00020370 949m ENDC 00020370 949m ENDM 00020370 950 00020370 951 CMD TT,X,X 00020370 =00000000 951m FLAG SET 0 * 00020370 FALSE 951m IFC 'X','HELP=NO' 00020370 951m ENDC 00020370 FALSE 951m IFC 'X','HELP=NO' 00020370 951m ENDC 00020370 FALSE 951m IFC 'X','NORTN=YES' 00020370 951m ENDC 00020370 FALSE 951m IFC 'X','NORTN=YES' 00020370 951m ENDC 00020370 FALSE 951m IFC 'TT','PER' CHECK FOR THE "PER" COMMAND 00020370 951m ENDC 00020370 TRUE 951m IFNC 'TT','PER' IF NOT PERCMD... 00020370 FALSE 951m IFEQ 'TT'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020370 951m ENDC 00020370 TRUE 951m IFNE 'TT'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020370 5454 951m DC.W 'TT'+FLAG * "TT"...COMMAND 00020372 951m ENDC 00020372 05A4 951m DC.W TTCMD-FIRST ************************************* 00020374 951m ENDC 00020374 951m ENDM 00020374 952 00020374 953 CMD VE,X,X 00020374 =00000000 953m FLAG SET 0 * 00020374 FALSE 953m IFC 'X','HELP=NO' 00020374 953m ENDC 00020374 FALSE 953m IFC 'X','HELP=NO' 00020374 953m ENDC 00020374 FALSE 953m IFC 'X','NORTN=YES' 00020374 953m ENDC 00020374 FALSE 953m IFC 'X','NORTN=YES' 00020374 953m ENDC 00020374 FALSE 953m IFC 'VE','PER' CHECK FOR THE "PER" COMMAND 00020374 953m ENDC 00020374 TRUE 953m IFNC 'VE','PER' IF NOT PERCMD... 00020374 FALSE 953m IFEQ 'VE'&($FF00) IF 1 DIGIT CODE, 2ND WILL BE A BLANK. 00020374 953m ENDC 00020374 TRUE 953m IFNE 'VE'&($FF00) IF 2 DIGIT CODE, LEAVE AS IS. 00020374 5645 953m DC.W 'VE'+FLAG * "VE"...COMMAND 00020376 953m ENDC 00020376 0FC0 953m DC.W VECMD-FIRST ************************************* 00020378 953m ENDC 00020378 953m ENDM 00020378 954 00020378 FFFF 955 DC.W $FFFF End of list indicator 0002037A 956 0002037A 957 0002037A 958 0002037A 959 0002037A 960 *------------------------------------------------------------------------- 0002037A 961 * File VECTMSG Messages for vectors 05/29/82 0002037A 962 0002037A 963 ************************************************************ 0002037A 964 *Reprogram some VECTORS to specific ERROR handler routines * 0002037A 965 ************************************************************ 0002037A 966 0002037A 41FA 0026 967 INITVMSG LEA VECT(PC),A0 A0 = START OF VECTOR TABLE 0002037E 43F8 0010 968 LEA AV4,A1 A1 = FIRST VECTOR TO INITIALIZE 00020382 700A 969 MOVEQ #10,D0 D0 = COUNT 00020384 22C8 970 VECTI MOVE.L A0,(A1)+ MOVE ADDRESS TO VECTOR 00020386 D1C0 971 ADD.L D0,A0 BUMP ADDRESS 00020388 B3FC 00000030 972 CMPA.L #AV11+4,A1 0002038E 66F4 973 BNE VECTI 00020390 974 00020390 43F8 0060 975 LEA AV24,A1 A1 = NEXT VECTOR TO INITIALIZE 00020394 22C8 976 VECTI2 MOVE.L A0,(A1)+ MOVE ADDRESS TO VECTOR 00020396 D1C0 977 ADD.L D0,A0 BUMP ADDRESS 00020398 B3FC 000000C0 978 CMPA.L #AV48,A1 0002039E 66F4 979 BNE VECTI2 000203A0 4E75 980 RTS 000203A2 981 000203A2 982 000203A2 983 ************************************************************************* 000203A2 984 * STANDARD VECTOR "MESSAGE" HANDLING ROUTINE ($30 IS TEMP STORAGE AREA) * 000203A2 985 ************************************************************************* 000203A2 986 000203A2 21FC 4F50434F 0030 987 VECT MOVE.L #'OPCO',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203AA 988 000203AA 604E 989 BRA.S EVECT5 000203AC 21FC 44495630 0030 990 MOVE.L #'DIV0',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203B4 991 000203B4 6044 992 BRA.S EVECT5 000203B6 21FC 4348434B 0030 993 MOVE.L #'CHCK',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203BE 994 000203BE 603A 995 BRA.S EVECT5 000203C0 21FC 54502056 0030 996 MOVE.L #'TP V',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203C8 997 000203C8 6030 998 BRA.S EVECT5 000203CA 21FC 50524956 0030 999 MOVE.L #'PRIV',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203D2 1000 000203D2 6026 1001 BRA.S EVECT5 000203D4 21FC 54524143 0030 1002 MOVE.L #'TRAC',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203DC 1003 000203DC 601C 1004 BRA.S EVECT5 000203DE 21FC 31303130 0030 1005 MOVE.L #'1010',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203E6 1006 000203E6 6012 1007 BRA.S EVECT5 000203E8 21FC 31313131 0030 1008 MOVE.L #'1111',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203F0 1009 000203F0 6008 1010 BRA.S EVECT5 000203F2 21FC 53505552 0030 1011 MOVE.L #'SPUR',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000203FA 1012 000203FA 6044 1013 EVECT5 BRA.S EVECT6 000203FC 21FC 41562331 0030 1014 MOVE.L #'AV#1',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020404 1015 00020404 603A 1016 BRA.S EVECT6 00020406 21FC 41562332 0030 1017 MOVE.L #'AV#2',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 0002040E 1018 0002040E 6030 1019 BRA.S EVECT6 00020410 21FC 41562333 0030 1020 MOVE.L #'AV#3',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020418 1021 00020418 6026 1022 BRA.S EVECT6 0002041A 21FC 41562334 0030 1023 MOVE.L #'AV#4',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020422 1024 00020422 601C 1025 BRA.S EVECT6 00020424 21FC 41562335 0030 1026 MOVE.L #'AV#5',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 0002042C 1027 0002042C 6012 1028 BRA.S EVECT6 0002042E 21FC 41562336 0030 1029 MOVE.L #'AV#6',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020436 1030 00020436 6008 1031 BRA.S EVECT6 00020438 21FC 41562337 0030 1032 MOVE.L #'AV#7',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020440 1033 00020440 604E 1034 EVECT6 BRA.S EVECT7 00020442 21FC 55542030 0030 1035 MOVE.L #'UT 0',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 0002044A 1036 0002044A 6044 1037 BRA.S EVECT7 0002044C 21FC 55542031 0030 1038 MOVE.L #'UT 1',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020454 1039 00020454 603A 1040 BRA.S EVECT7 00020456 21FC 55542032 0030 1041 MOVE.L #'UT 2',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 0002045E 1042 0002045E 6030 1043 BRA.S EVECT7 00020460 21FC 55542033 0030 1044 MOVE.L #'UT 3',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020468 1045 00020468 6026 1046 BRA.S EVECT7 0002046A 21FC 55542034 0030 1047 MOVE.L #'UT 4',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020472 1048 00020472 601C 1049 BRA.S EVECT7 00020474 21FC 55542035 0030 1050 MOVE.L #'UT 5',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 0002047C 1051 0002047C 6012 1052 BRA.S EVECT7 0002047E 21FC 55542036 0030 1053 MOVE.L #'UT 6',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020486 1054 00020486 6008 1055 BRA.S EVECT7 00020488 21FC 55542037 0030 1056 MOVE.L #'UT 7',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 00020490 1057 00020490 604E 1058 EVECT7 BRA.S EVECT 00020492 21FC 55542038 0030 1059 MOVE.L #'UT 8',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 0002049A 1060 0002049A 6044 1061 BRA.S EVECT 0002049C 21FC 55542039 0030 1062 MOVE.L #'UT 9',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204A4 1063 000204A4 603A 1064 BRA.S EVECT 000204A6 21FC 55542041 0030 1065 MOVE.L #'UT A',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204AE 1066 000204AE 6030 1067 BRA.S EVECT 000204B0 21FC 55542042 0030 1068 MOVE.L #'UT B',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204B8 1069 000204B8 6026 1070 BRA.S EVECT 000204BA 21FC 55542043 0030 1071 MOVE.L #'UT C',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204C2 1072 000204C2 601C 1073 BRA.S EVECT 000204C4 21FC 55542044 0030 1074 MOVE.L #'UT D',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204CC 1075 000204CC 6012 1076 BRA.S EVECT 000204CE 21FC 55542045 0030 1077 MOVE.L #'UT E',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204D6 1078 000204D6 6108 1079 BSR.S EVECT 000204D8 21FC 55542046 0030 1080 MOVE.L #'UT F',$30 MOVE TO $30, USE SHORT BRANCHES AND PRINT IT 000204E0 1081 000204E0 1082 000204E0 1083 * 000204E0 1084 * SAVE REGISTERS AND PRINT VECTOR MSG 000204E0 1085 * 000204E0 6000 1482 1086 EVECT BRA EVECTL 000204E4 1087 000204E4 1088 000204E4 1089 000204E4 1090 000204E4 1091 *------------------------------------------------------------------------- 000204E4 1092 * File BF Block Fill command 06/16/82 000204E4 1093 000204E4 1094 * BLOCK FILL ADDRESS1 ADDRESS2 WORD-DATA 000204E4 1095 000204E4 41FA FBD0 1096 BFCMD LEA SYNTAX(PC),A0 000204E8 6100 1584 1097 BSR FNEXTF 000204EC 6100 064C 1098 BSR GETA 000204F0 6100 159A 1099 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 000204F4 2C00 1100 MOVE.L D0,D6 D6 = FROM BEGIN ADDRESS 000204F6 1101 000204F6 6100 1576 1102 BSR FNEXTF 000204FA 6100 063E 1103 BSR GETA 000204FE 6100 158C 1104 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 00020502 2240 1105 MOVE.L D0,A1 A1 = FROM END ADDRESS 00020504 1106 00020504 6100 1568 1107 BSR FNEXTF FIND NEXT FIELD 00020508 6100 15E6 1108 BSR GETNUMA D0 = VALUE 0002050C 2E00 1109 MOVE.L D0,D7 0002050E 1110 0002050E 2046 1111 MOVE.L D6,A0 A0 = FROM BEGIN ADDRESS 00020510 6100 FBB2 1112 BSR P2PHY DISPLAY ADDRESSES 00020514 B3C8 1113 CMP.L A0,A1 00020516 6500 FB9E 1114 BCS SYNTAX END ADDR TOO SMALL 0002051A 1115 0002051A 0C87 00010000 1116 CMPI.L #$10000,D7 00020520 6400 FB94 1117 BCC SYNTAX WORD OVERFLOW 00020524 1118 00020524 1119 BFCMD11 00020524 3087 1120 MOVE.W D7,(A0) STORE DATA 00020526 3218 1121 MOVE.W (A0)+,D1 00020528 B247 1122 CMP.W D7,D1 VERIFY DATA 0002052A 6600 0F58 1123 BNE MM90 'DATA DID NOT STORE' 0002052E 1124 0002052E B3C8 1125 CMP.L A0,A1 00020530 64F2 1126 BCC BFCMD11 00020532 6000 FCFE 1127 BRA MACSBUG 00020536 1128 00020536 1129 00020536 1130 00020536 1131 00020536 1132 *------------------------------------------------------------------------- 00020536 1133 * File BM BM (Block Move) Command 11/27/81 00020536 1134 00020536 1135 * BLOCK MOVE 00020536 1136 00020536 41FA FB7E 1137 BMCMD LEA SYNTAX(PC),A0 0002053A 6100 1532 1138 BSR FNEXTF 0002053E 6100 05FA 1139 BSR GETA 00020542 2640 1140 MOVE.L D0,A3 A3 = FROM BEGIN ADDRESS 00020544 1141 00020544 6100 1528 1142 BSR FNEXTF 00020548 6100 05F0 1143 BSR GETA 0002054C 2240 1144 MOVE.L D0,A1 A1 = FROM END ADDRESS 0002054E 1145 0002054E 6100 151E 1146 BSR FNEXTF 00020552 6100 05E6 1147 BSR GETA 00020556 2440 1148 MOVE.L D0,A2 A2 = TO BEGIN ADDRESS 00020558 1149 00020558 204B 1150 MOVE.L A3,A0 0002055A 6100 FB68 1151 BSR P2PHY PRINT ADDRESSES (A0) & (A1) 0002055E 200A 1152 MOVE.L A2,D0 00020560 6100 FB5A 1153 BSR PPHY PRINT TO ADDRESS 00020564 1154 00020564 2209 1155 MOVE.L A1,D1 00020566 928B 1156 SUB.L A3,D1 D1 = SIZE - 1 00020568 6500 FB4C 1157 BCS SYNTAX END LESS THAN BEGIN 0002056C 5281 1158 ADDQ.L #1,D1 D1 = COUNT (SIZE) 0002056E 1159 0002056E B5CB 1160 CMP.L A3,A2 00020570 6408 1161 BCC.S BM122 MOVING LOW TO HIGH 00020572 1162 00020572 14DB 1163 BM112 MOVE.B (A3)+,(A2)+ MOVING HIGH TO LOW 00020574 5381 1164 SUBQ.L #1,D1 COUNT 00020576 66FA 1165 BNE BM112 00020578 600A 1166 BRA.S BM142 0002057A 1167 0002057A D7C1 1168 BM122 ADD.L D1,A3 MOVING LOW TO HIGH 0002057C D5C1 1169 ADD.L D1,A2 0002057E 1523 1170 BM132 MOVE.B -(A3),-(A2) 00020580 5381 1171 SUBQ.L #1,D1 00020582 66FA 1172 BNE BM132 00020584 6000 FCAC 1173 BM142 BRA MACSBUG 00020588 1174 00020588 1175 00020588 1176 00020588 1177 00020588 1178 *------------------------------------------------------------------------- 00020588 1179 * File BR BR, GD, GT, TR, TT, PER Commands 12/04/81 00020588 1180 00020588 1181 * ***T*** TRACE COMMAND 00020588 1182 00020588 1183 TCMD DS 0 "T" Alias for "TR" command 00020588 41FA 0012 1184 TRCMD LEA TCMDHOT(PC),A0 IF NO PARAMTERS 0002058C 6100 14E0 1185 BSR FNEXTF FIND NEXT FIELD 00020590 6100 155E 1186 BSR GETNUMA FIND NUMBER OF INST TO TRACE 00020594 6100 14FC 1187 BSR CKADDR INSURE 24 BITS OR LESS 00020598 4A80 1188 TST.L D0 0002059A 6602 1189 BNE.S TCMD15 0002059C 1190 0002059C 1191 TCMDHOT DS 0 SPECIAL ENTRY FROM DECODE 0002059C 7001 1192 MOVEQ #1,D0 ZERO; MAKE TRACE ONE 0002059E 21C0 04DA 1193 TCMD15 MOVE.L D0,TRACECNT 000205A2 6022 1194 BRA.S TRACE2 000205A4 1195 000205A4 1196 000205A4 1197 * 000205A4 1198 ** TT ** "TRACE TILL" COMMAND 000205A4 1199 * 000205A4 1200 000205A4 41FA FB10 1201 TTCMD LEA SYNTAX(PC),A0 000205A8 6100 14C4 1202 BSR FNEXTF FIND NEXT FIELD 000205AC 6100 058C 1203 BSR GETA GET ADDRESS 000205B0 6100 14DA 1204 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 000205B4 1205 000205B4 2C00 1206 MOVE.L D0,D6 000205B6 6100 FB04 1207 BSR PPHY DISPLAY TILL ADDRESS 000205BA 1208 000205BA 21C6 0490 1209 MOVE.L D6,BPTILL 9TH BP 000205BE 21FC 0000FFFF 04DA 1210 MOVE.L #$FFFF,TRACECNT SET FOR A VERY LONG TIME 000205C6 1211 000205C6 1212 000205C6 31FC FFFF 04DE 1213 TRACE2 MOVE.W #-1,TRACEON FOR DECODE OF NEXT COMMAND 000205CC 1214 000205CC 2038 0400 1215 MOVE.L REGPC,D0 000205D0 6100 FAEA 1216 BSR PPHY DISPLAY START (PC) ADDRESS 000205D4 6000 0778 1217 BRA UNTRACE 000205D8 1218 000205D8 1219 000205D8 1220 * 000205D8 1221 * ***GT*** RUN PROGRAM TO TEMP BREAKPOINT 000205D8 1222 * 000205D8 1223 000205D8 41FA FADC 1224 GTCMD LEA SYNTAX(PC),A0 GET NUMBER ELSE PRINT "WHAT" 000205DC 6100 1490 1225 BSR FNEXTF FIND NEXT FIELD 000205E0 6100 0558 1226 BSR GETA GET ADDRESS 000205E4 6100 14A6 1227 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 000205E8 2C00 1228 MOVE.L D0,D6 D6 = UNTIL ADDRESS 000205EA 6100 FAD0 1229 BSR PPHY PRINT PHYSICAL ADDRESS 000205EE 1230 000205EE 1231 * IF TILL ADDRESS IN BREAKPOINT TABLE; DISPLAY WHAT 000205EE 1232 000205EE 41F8 0470 1233 LEA BPADD,A0 A0 = POINTER TO BP ADDRESSES 000205F2 7E08 1234 MOVEQ #8,D7 D7 = # OF ADDRESS ALLOWED 000205F4 BC98 1235 GT21 CMP.L (A0)+,D6 000205F6 6700 00A0 1236 BEQ BCMD55 ALREADY IN TABLE -SHOW TABLE- 000205FA 5387 1237 SUBQ.L #1,D7 000205FC 66F6 1238 BNE GT21 000205FE 1239 000205FE 21C6 0490 1240 MOVE.L D6,BPTILL 9TH BREAKPOINT 00020602 6116 1241 BSR.S GOCMD1A NORMAL STARTUP 00020604 6020 1242 BRA.S GOCMD1 00020606 1243 00020606 41FA 0012 1244 GOSET1 LEA GOCMD1A(PC),A0 WHERE TO GO IF NO PARAMERS 0002060A 6100 1462 1245 BSR FNEXTF FIND NEXT FIELD 0002060E 6100 052A 1246 BSR GETA GET ADDRESS 00020612 6100 1478 1247 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 00020616 21C0 0400 1248 MOVE.L D0,REGPC 0002061A 1249 0002061A 2038 0400 1250 GOCMD1A MOVE.L REGPC,D0 (ALSO SUBROUTINE ENTRY) 0002061E 6100 FA9C 1251 BSR PPHY PRINT ".PC" PHYSICAL ADDRESS 00020622 4E75 1252 RTS 00020624 1253 00020624 1254 GCMD DS 0 "G" ALIAS FOR "GO" 00020624 61E0 1255 GOCMD BSR GOSET1 "GO" (AFTER TRACING ONE INST) 00020626 21FC FFFFFFFF 04DA 1256 GOCMD1 MOVE.L #-1,TRACECNT "FLAG" COUNTER AS SPECIAL 0002062E 1257 0002062E 6000 071E 1258 BRA UNTRACE 00020632 1259 00020632 61D2 1260 GDCMD BSR GOSET1 "GO DIRECT" Command 00020634 6000 0726 1261 BRA UNSTACK 00020638 1262 00020638 1263 00020638 1264 * ***BR*** SET AND PRINT BREAKPOINTS 00020638 1265 00020638 1266 * DELETE ALL BREAKPOINTS 00020638 1267 00020638 6108 1268 NOBRCMD BSR.S FIXBP GET POINTERS 0002063A 4298 1269 BCMD01 CLR.L (A0)+ CLEAR THE ADDRESS TABLE 0002063C 5387 1270 SUBQ.L #1,D7 DO IT 8 TIMES 0002063E 66FA 1271 BNE BCMD01 00020640 6060 1272 BRA.S BCMD7 DISPLAY EMPTY TABLE 00020642 1273 00020642 41F8 0470 1274 FIXBP LEA BPADD,A0 SET UP ADDRESS & COUNTER 00020646 7E08 1275 MOVEQ #8,D7 COUNTER 00020648 45F8 0494 1276 LEA BPCNT,A2 COUNTS 0002064C 4E75 1277 RTS 0002064E 1278 0002064E 1279 ************************************************************ 0002064E 1280 * THIS COMMAND SUPPORTS THE "NO" OPTION. COMMANDS THAT ALLOW 0002064E 1281 * THE "NO" OPTION PROVIDE A HARD BRANCH 4 BYTES BEFORE THE 0002064E 1282 * REGULAR COMMAND. 0002064E 1283 ************************************************************ 0002064E 1284 0002064E 6000 009A 1285 BRA.L NOBR0 ENTRY FOR "NOBR" (IT LOOKS FOR PARMS OR NOT) 00020652 41FA 004E 1286 BRCMD LEA BCMD7(PC),A0 WHERE TO GO IF NO PARMS 00020656 6100 1416 1287 BCMD0 BSR FNEXTF FIND NEXT FIELD 0002065A 6100 04DE 1288 BSR GETA GET ADDRESS 0002065E 6100 142C 1289 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 00020662 1290 00020662 61DE 1291 BSR FIXBP SET UP COUNTER & ADDRESS 00020664 B090 1292 BCMD00 CMP.L (A0),D0 SEE IF ALREADY IN TABLE 00020666 6710 1293 BEQ.S BCMD33 GO CHECK FOR COUNT 00020668 588A 1294 ADDQ.L #4,A2 BUMP OTHER POINTER 0002066A 5888 1295 ADDQ.L #4,A0 BUMP MAIN POINTER 0002066C 5387 1296 SUBQ.L #1,D7 0002066E 66F4 1297 BNE BCMD00 00020670 1298 00020670 61D0 1299 BSR FIXBP GET ADDRESS & POINTERS 00020672 4A90 1300 BCMD3 TST.L (A0) FIND AN EMPTY STOP 00020674 661A 1301 BNE.S BCMD5 00020676 2080 1302 MOVE.L D0,(A0) PUT NEW ADDRESS IN TABLE 00020678 4292 1303 BCMD33 CLR.L (A2) CLEAR CURRENT COUNT 0002067A 1215 1304 MOVE.B (A5),D1 CHECK INPUT FOR COUNT 0002067C 0C01 003B 1305 CMPI.B #';',D1 00020680 6608 1306 BNE.S BCMD6 NO COUNT 00020682 528D 1307 ADDQ.L #1,A5 BUMP THE BUFFER SCANNER 00020684 6100 146A 1308 BSR GETNUMA GO GET THE COUNT 00020688 2480 1309 MOVE.L D0,(A2) MOVE TO TABLE 0002068A 1310 0002068A 41FA 0016 1311 BCMD6 LEA BCMD7(PC),A0 WHERE TO GO IF NO MORE PARAMETERS 0002068E 60C6 1312 BRA BCMD0 00020690 1313 00020690 5888 1314 BCMD5 ADDQ.L #4,A0 BUMP TABLE POINTER 00020692 588A 1315 ADDQ.L #4,A2 BUMP POINTER TO COUNTS 00020694 5387 1316 SUBQ.L #1,D7 LOOP AROUND 00020696 66DA 1317 BNE BCMD3 00020698 1318 00020698 4BFA F9F7 1319 BCMD55 LEA MSG008E(PC),A5 TABLE FULL; ERROR MESSAGE 0002069C 6100 FA54 1320 BSR FIXDATA 000206A0 6008 1321 BRA.S BCMD77 000206A2 1322 000206A2 4BFA 003A 1323 BCMD7 LEA MSGBR(PC),A5 "BREAKPOINTS" 000206A6 6100 FA5E 1324 BSR FIXDCRLF 000206AA 6100 153E 1325 BCMD77 BSR OUT1CR 000206AE 1326 000206AE 6192 1327 BSR FIXBP SET ADDRESS & COUNTER 000206B0 2C1A 1328 BCMD8 MOVE.L (A2)+,D6 D6 = COUNT 000206B2 2010 1329 MOVE.L (A0),D0 D0 = ADDRESS 000206B4 671E 1330 BEQ.S BCMD9 ZERO ADDRESS 000206B6 6100 1316 1331 BSR FRELADDR FORMAT RELATIVE ADDRESS 000206BA 1CFC 0020 1332 MOVE.B #BLANK,(A6)+ 000206BE 1333 000206BE 2010 1334 MOVE.L (A0),D0 FORMAT ABSOLUTE ADDRESS 000206C0 6100 12E2 1335 BSR PNT6HX 000206C4 2006 1336 MOVE.L D6,D0 000206C6 6708 1337 BEQ.S BCMD81 DON'T PRINT ZERO COUNT 000206C8 1CFC 003B 1338 MOVE.B #';',(A6)+ 000206CC 6100 135A 1339 BSR PNTZHX PRINT WITH ZERO SURPRESS 000206D0 1340 000206D0 6100 1518 1341 BCMD81 BSR OUT1CR 000206D4 5888 1342 BCMD9 ADDQ.L #4,A0 000206D6 5387 1343 SUBQ.L #1,D7 LOOP AROUND 000206D8 66D6 1344 BNE BCMD8 000206DA 6000 FB56 1345 BRA MACSBUG 000206DE 1346 000206DE 42 52 45 41 4B 50 4F 1347 MSGBR DC.B 'BREAKPOINTS',EOT 49 4E 54 53 04 000206EA 1348 000206EA 1349 000206EA 1350 000206EA 1351 * NOBR COMMAND 000206EA 1352 000206EA 41FA FF4C 1353 NOBR0 LEA NOBRCMD(PC),A0 WHERE TO GO IF NO PARAMETERS 000206EE 6100 137E 1354 NOBR1 BSR FNEXTF FIND NEXT FIELD 000206F2 6100 0446 1355 BSR GETA GO DECODE NUMBER/ADDRESS 000206F6 4A80 1356 TST.L D0 000206F8 679E 1357 BEQ BCMD55 ZERO NOT VALID BREAKPOINT 000206FA 6100 1390 1358 BSR CKWADR CHECK WORD BOUNDRY ADDRESS 000206FE 1359 000206FE 41F8 0470 1360 LEA BPADD,A0 SET UP TABLE POINTER 00020702 7E08 1361 MOVEQ #8,D7 COUNTER 00020704 2210 1362 NOBR3 MOVE.L (A0),D1 GET BREAKPOINT IN TABLE 00020706 B081 1363 CMP.L D1,D0 SEE IF SAME 00020708 6706 1364 BEQ.S NOBR4 0002070A 5888 1365 ADDQ.L #4,A0 0002070C 5387 1366 SUBQ.L #1,D7 0002070E 66F4 1367 BNE NOBR3 00020710 4290 1368 NOBR4 CLR.L (A0) CLEAR THIS BREAKPOINT 00020712 41FA FF8E 1369 LEA BCMD7(PC),A0 WHERE TO GO IF NO PARAMETER 00020716 60D6 1370 BRA NOBR1 00020718 1371 00020718 1372 00020718 1373 00020718 1374 00020718 1375 *------------------------------------------------------------------------- 00020718 1376 * File BS BS (Block Search) Command 11/27/81 00020718 1377 00020718 1378 * 00020718 1379 * BLOCK SEARCH BS 'LITERAL STRING' 00020718 1380 * BS [] [;