10 *= 16384 12 .D ML.65 14 JMP L100 20 FILE1 .BYTE "CO.CHAR" 21 FILE2 .BYTE "SC.CHAR" 22 CMD .BYTE "ENTER COMMAND ":.BYTE 0 23 SET .BYTE 0 24 MODE .BYTE 0 25 FILE3 .BYTE "CH.RESR" 26 GETMOD .BYTE "ENTER DISPLAY MODE (H/M/E) ":.BYTE 0 27 GETSET .BYTE "ENTER CHARACTER SET (1-7) ":.BYTE 0 28 CCS .BYTE 0 29 C11 .BYTE 0 30 S00 .BYTE "SET 00 COLOR (+/-)":.BYTE 0 31 S01 .BYTE "SET 01 COLOR (+/-)":.BYTE 0 32 S10 .BYTE "SET 10 COLOR (+/-)":.BYTE 0 33 S11 .BYTE "SET 11 COLOR (+/-)":.BYTE 0 34 SEX .BYTE "SET EXTENDED COLOR (+/-)":.BYTE 0 35 SCS .BYTE "SET CURSOR COLOR (+/-)":.BYTE 0 36 MODE0 .BYTE "HI-RES COLOR ":.BYTE 0 37 MODE1 .BYTE "MULTI COLOR ":.BYTE 0 38 MODE2 .BYTE "EXTENDED COLOR":.BYTE 0 40 CHAR .BYTE 0 41 ASCII .BYTE 64 65 66 67 68 69 70 71 72 73 42 .BYTE 74 75 76 77 78 79 80 81 82 83 43 .BYTE 84 85 86 87 88 89 90 91 92 93 44 .BYTE 94 95 32 33 34 35 36 37 38 39 45 .BYTE 40 41 42 43 44 45 46 47 48 49 46 .BYTE 50 51 52 53 54 55 56 57 58 59 47 .BYTE 60 61 62 63 192 193 194 195 196 197 48 .BYTE 198 199 200 201 202 203 204 205 206 207 49 .BYTE 208 209 210 211 212 213 214 215 216 217 50 .BYTE 218 219 220 221 255 223 160 161 162 163 51 .BYTE 164 165 166 167 168 169 170 171 172 173 52 .BYTE 174 175 176 177 178 179 180 181 182 183 53 .BYTE 184 185 186 187 188 189 190 191 54 SCADL .BYTE 0 55 SCADH .BYTE 0 56 ADDRL .BYTE 0 57 ADDRH .BYTE 0 58 BASE .BYTE 0 59 OTHERS .BYTE 19 21 23 25 27 29 31 60 ERASE .BYTE " ":.BYTE 0 61 ERASE2 .BYTE " ":.BYTE 0 62 ERASE3 .BYTE " ":.BYTE 0 63 BASES .BYTE 8 16 24 32 40 48 56 64 64 FILE4 .BYTE "ML.WORK" 65 SCX .BYTE 0 66 SCY .BYTE 0 67 REVERSE .BYTE 0 68 TEMP .BYTE 0 0 0 0 0 0 0 0 69 WADL .BYTE 0 70 WADH .BYTE 0 71 WX .BYTE 0 72 WY .BYTE 0 73 BSCROLL .BYTE "SCROLL WORK (U/D/L/R) ":.BYTE 0 74 ERASE4 .BYTE " --- WORK MODE --- ":.BYTE 0 77 BCOPY .BYTE "COPY CHARACTERS (*-*) TO (*-*) ":.BYTE 0 78 COPYMODE .BYTE 0 79 COPY2 .BYTE 0 0 80 CTEMP .BYTE 0 0 0 0 0 0 81 MESSAGE .BYTE "CHARACTER EDITOR BY >> ROGER MILNE << ":.BYTE 0 82 ERASE5 .BYTE " ":.BYTE 0 100 L100 LDX #FILE1:JSR LOAD 101 LDX #FILE2:JSR LOAD:JSR RECSCREEN 102 LDX #FILE3:JSR LOAD 103 LDX #FILE4:JSR LOAD 104 LDA #0:STA 53280:STA 53281 106 LDA #11:STA C11:JSR FILL 108 LDA #1:STA 53282 110 LDA #12:STA 53283 112 LDA #15:STA 53284 114 LDA #3:STA CCS 116 LDA #0:STA MODE:LDA #200:STA 53270:LDA #27:STA 53265:LDA #0:STA ADDRL 118 STA ADDRH:LDA #1:STA SET:LDA #19:STA 53272:LDA #8:STA BASE:LDA #0:STA CHAR 120 LDA #216:STA SCADH:LDA #82:STA SCADL 122 RESET JSR P00:JSR P01:JSR P10:JSR P11:JSR PEX:JSR PCS:JSR PMODE:JSR PSET 124 JSR PTECH 126 JSR CURSOR:JSR REFRENCE 132 LDA #254:STA 1620:STA 1621:STA 1660:STA 1661:STA 1700:STA 1701:STA 1740 134 STA 1741:STA 1780:STA 1781:STA 1820:STA 1821:STA 1860:STA 1861:STA 1900 136 STA 1901:LDA #255:STA 650:JSR CURSOR 198 JSR BKGND 200 L200 LDY #0:LDX #12:CLC:JSR $FFF0:LDA CCS:STA 646 202 LDA SCADL:STA 2:LDA SCADH:STA 3:LDA CCS:LDX #0:STA (2),X 204 LDA COPYMODE:CMP #0:BNE L206:LDA #CMD:JSR $AB1E 206 L206 JSR $FFE4:CMP #0:BEQ L206:STA 2 208 CMP #78:BNE L210:JMP NEXTSET 210 L210 CMP #77:BNE L212:JMP GETMODE 212 L212 CMP #67:BNE L214:JMP COPY 214 L214 CMP #17:BNE L216:JMP CSRDOWN 216 L216 CMP #29:BNE L218:JMP CSRRIGHT 218 L218 CMP #145:BNE L220:JMP CSRUP 220 L220 CMP #157:BNE L222:JMP CSRLEFT 222 L222 CMP #18:BNE L224:JMP CREV 224 L224 CMP #146:BNE L226:JMP COFF 226 L226 CMP #83:BNE L228:JMP SAVESET 228 L228 CMP #76:BNE L230:JMP LOADSET 230 L230 CMP #84:BNE L232:JSR TOGGLE:JMP L200 232 L232 CMP #48:BNE L234:JMP A00 234 L234 CMP #49:BNE L236:JMP A01 236 L236 CMP #50:BNE L238:JMP A10 238 L238 CMP #51:BNE L240:JMP A11 240 L240 CMP #52:BNE L241:JMP AEX 241 L241 CMP #53:BNE L242:JMP ACS 242 L242 CMP #87:BNE L243:JMP WORKMODE 243 L243 CMP #13:BNE L244:JSR REFCUR:JMP L200 244 L244 CMP #42:BNE L245:JSR CURREF:JMP L200 245 L245 CMP #133:BNE L246:JMP MERGE 246 L246 CMP #134:BNE L247:JMP DUPLICATE 247 L247 CMP #135:BNE L248:JMP DIFERENCE 248 L248 CMP #136:BNE L249:JMP MASK 249 L249 CMP #3:BNE L250:LDA #0:STA COPYMODE:JMP L200 250 L250 CMP #6:BNE L251:JMP SECRET 251 L251 JMP L200 300 P00 LDY #23:LDX #16:CLC:JSR $FFF0:LDA #ERASE:JSR $AB1E 302 LDA CCS:STA 646:LDA 53280:AND #15:TAX:LDA #0:JSR $BDCD:RTS 304 P01 LDY #23:LDX #17:CLC:JSR $FFF0:LDA #ERASE:JSR $AB1E 306 LDA CCS:STA 646:LDA 53282:AND #15:TAX:LDA #0:JSR $BDCD:RTS 308 P10 LDY #23:LDX #18:CLC:JSR $FFF0:LDA #ERASE:JSR $AB1E 310 LDA CCS:STA 646:LDA 53283:AND #15:TAX:LDA #0:JSR $BDCD:RTS 312 P11 LDY #23:LDX #19:CLC:JSR $FFF0:LDA #ERASE:JSR $AB1E 314 LDA CCS:STA 646:LDA C11:AND #15:TAX:LDA #0:JSR $BDCD:RTS 316 PEX LDY #23:LDX #20:CLC:JSR $FFF0:LDA #ERASE:JSR $AB1E 318 LDA CCS:STA 646:LDA 53284:AND #15:TAX:LDA #0:JSR $BDCD:RTS 320 PCS LDY #23:LDX #21:CLC:JSR $FFF0:LDA #ERASE:JSR $AB1E 322 LDA CCS:STA 646:LDA CCS:AND #15:LDA #0:JSR $BDCD:RTS 324 PTECH LDY #31:LDX #16:CLC:JSR $FFF0:LDA #ERASE2:JSR $AB1E 326 LDA CCS:STA 646:LDA CHAR:AND #127:TAX:LDA ASCII,X:TAX:LDA #0:JSR $BDCD 328 LDY #31:LDX #17:CLC:JSR $FFF0:LDA #ERASE2:JSR $AB1E 330 LDX CHAR:LDA #0:JSR $BDCD 332 LDY #28:LDX #21:CLC:JSR $FFF0:LDA #ERASE3:JSR $AB1E 334 LDA ADDRH:CLC:ADC BASE:LDX ADDRL:JSR $BDCD:RTS 336 PMODE LDA CCS:STA 646:LDY #24:LDX #23:CLC:JSR $FFF0:LDA MODE:CMP #0:BEQ L342 338 CMP #1:BEQ L344 340 LDA #MODE2:JSR $AB1E:RTS 342 L342 LDA #MODE0:JSR $AB1E:RTS 344 L344 LDA #MODE1:JSR $AB1E:RTS 346 FILL LDX #0:LDY #0:LDA #82:STA FILL1+1:LDA #216:STA FILL1+2 348 L348 LDA C11 350 FILL1 STA 49152,X 352 INX:CPX #16:BNE FILL1 354 LDX #0:LDA FILL1+1:CLC:ADC #40:STA FILL1+1:LDA FILL1+2:ADC #0:STA FILL1+2 356 INY:CPY #8:BNE L348 358 LDX #0:LDY #0:LDA #101:STA FILL2+1:LDA #216:STA FILL2+2 360 L360 LDA C11 362 FILL2 STA 49152,X 363 INX:CPX #16:BNE FILL2 364 LDX #0:LDA FILL2+1:CLC:ADC #40:STA FILL2+1:LDA FILL2+2:ADC #0:STA FILL2+2 365 INY:CPY #8:BNE L360 366 LDX #0:STX 55892:INX:STX 55893:INX:STX 55932:INX:STX 55933:INX:STX 55972 367 INX:STX 55973:INX:STX 56012:INX:STX 56013:INX:STX 56052:INX:STX 56053:INX 368 STX 56092:INX:STX 56093:INX:STX 56132:INX:STX 56133:INX:STX 56172:INX 369 STX 56173:RTS 370 LOAD LDA #7:JSR $FFBD:LDA #8:LDX #8:LDY #1:JSR $FFBA:LDA #0:JSR $FFD5:RTS 372 BKGND LDA CCS:LDX #0 374 L374 STA 55296,X:STA 55552,X:STA 55808,X:STA 56064,X 376 INX:CPX #0:BNE L374:JSR FILL:RTS 380 PSET LDA CCS:STA 646:LDX #19:LDY #30:CLC:JSR $FFF0:LDA #0:LDX SET:JSR $BDCD 382 LDX #19:LDY #32:CLC:JSR $FFF0:LDA #0:LDX 53272:JSR $BDCD:RTS 384 CURSOR LDA ADDRL:STA 49155:LDA ADDRH:CLC:ADC BASE:STA 49156:LDA #129 385 STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:LDA #240:STA 49155 386 LDA BASE:CLC:ADC #7:STA 49156:LDA #129:STA 49157:LDA #6:STA 49158:LDA #1 388 JSR 49152:LDA SCADL:STA CURSOR1+1:LDA SCADH:STA CURSOR1+2:LDA CCS 389 CURSOR1 STA 49152:RTS 390 REFRENCE LDA BASE:CLC:ADC #7:STA 49156:LDA #248:STA 49155:LDA #138 392 STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:RTS 400 GETMODE LDY #0:LDX #12:CLC:JSR $FFF0:LDA #GETMOD:JSR $AB1E 402 L402 JSR $FFE4:CMP #0:BEQ L402 404 STA 2:CMP #72:BNE L406:LDA #200:STA 53270:LDA #27:STA 53265:JMP L414 406 L406 CMP #77:BNE L408:LDA #216:STA 53270:LDA #27:STA 53265:JMP L416 408 L408 CMP #69:BNE L410:LDA #200:STA 53270:LDA #91:STA 53265:JMP L418 410 L410 CMP #3:BEQ L412:JMP L402 412 L412 JMP L200 414 L414 LDA #0:STA MODE:JSR PMODE:JMP L200 416 L416 LDA #1:STA MODE:JSR PMODE:JMP L200 418 L418 LDA #2:STA MODE:JSR PMODE:JMP L200 420 NEXTSET LDY #0:LDX #12:CLC:JSR $FFF0:LDA #GETSET:JSR $AB1E 422 L422 JSR $FFE4:CMP #0:BEQ L422 424 CMP #49:BEQ NEXT1 426 CMP #50:BEQ NEXT2 427 CMP #51:BEQ NEXT3 428 CMP #52:BEQ NEXT4 429 CMP #53:BEQ NEXT5 430 CMP #54:BEQ NEXT6 431 CMP #55:BEQ NEXT7 432 CMP #3:BNE L422:JMP L200 434 NEXT1 LDA #19:STA 53272:LDA #1:STA SET:JMP NEXT8 436 NEXT2 LDA #21:STA 53272:LDA #2:STA SET:JMP NEXT8 438 NEXT3 LDA #23:STA 53272:LDA #3:STA SET:JMP NEXT8 440 NEXT4 LDA #25:STA 53272:LDA #4:STA SET:JMP NEXT8 442 NEXT5 LDA #27:STA 53272:LDA #5:STA SET:JMP NEXT8 444 NEXT6 LDA #29:STA 53272:LDA #6:STA SET:JMP NEXT8 446 NEXT7 LDA #31:STA 53272:LDA #7:STA SET:JMP NEXT8 448 NEXT8 JSR PSET:LDX SET:DEX:LDA BASES,X:STA BASE:JSR PTECH:JSR CURSOR 449 JSR REFRENCE:JMP L200 450 CSRRIGHT LDA SCX:CMP #15:BEQ L451:JMP L452 451 L451 JMP L200 452 L452 LDX CHAR:INX:STX CHAR 454 LDA SCADL:STA RIGHT1+1:LDA SCADH:STA RIGHT1+2:LDA C11 456 RIGHT1 STA 49152:LDX SCX:INX:STX SCX 458 LDA ADDRL:CLC:ADC #8:STA ADDRL:LDA ADDRH:ADC #0:STA ADDRH 462 L462 LDA SCADL:CLC:ADC #1:STA SCADL:LDA SCADH:ADC #0:STA SCADH 464 L464 JSR CURSOR:JSR PTECH:JMP L200 470 CSRLEFT LDA SCX:CMP #0:BEQ L471:JMP L472 471 L471 JMP L200 472 L472 LDX CHAR:DEX:STX CHAR 474 LDA SCADL:STA LEFT1+1:LDA SCADH:STA LEFT1+2:LDA C11 476 LEFT1 STA 49152:LDX SCX:DEX:STX SCX 478 LDA ADDRL:SEC:SBC #8:STA ADDRL:LDA ADDRH:SBC #0:STA ADDRH 482 L482 LDA SCADL:SEC:SBC #1:STA SCADL:LDA SCADH:SBC #0:STA SCADH 484 L484 JSR CURSOR:JSR PTECH:JMP L200 490 CSRUP LDA SCY:CMP #0:BEQ L491:JMP L492 491 L491 JMP L200 492 L492 LDA CHAR:SEC:SBC #16:STA CHAR 494 LDA SCADL:STA UP1+1:LDA SCADH:STA UP1+2:LDA C11 496 UP1 STA 49152:LDY SCY:DEY:STY SCY 498 LDA ADDRL:SEC:SBC #128:STA ADDRL:LDA ADDRH:SBC #0:STA ADDRH 502 L502 LDA SCADL:SEC:SBC #40:STA SCADL:LDA SCADH:SBC #0:STA SCADH 504 L504 JSR CURSOR:JSR PTECH:JMP L200 510 CSRDOWN LDA SCY:CMP #7:BEQ L511:JMP L512 511 L511 JMP L200 512 L512 LDA CHAR:CLC:ADC #16:STA CHAR 514 LDA SCADL:STA DOWN1+1:LDA SCADH:STA DOWN1+2:LDA C11 516 DOWN1 STA 49152:LDY SCY:INY:STY SCY 518 LDA ADDRL:CLC:ADC #128:STA ADDRL:LDA ADDRH:ADC #0:STA ADDRH 522 L522 LDA SCADL:CLC:ADC #40:STA SCADL:LDA SCADH:ADC #0:STA SCADH 524 L524 JSR CURSOR:JSR PTECH:JMP L200 530 CREV LDA REVERSE:CMP #1:BNE L532:JMP L200 532 L532 LDA #1:STA REVERSE:LDA SCADL:STA CREV1+1:LDA SCADH:STA CREV1+2:LDA C11 533 CREV1 STA 49152 534 LDA SCADL:CLC:ADC #19:STA SCADL:LDA SCADH:ADC #0:STA SCADH 536 LDA ADDRH:CLC:ADC #4:STA ADDRH 538 LDA CHAR:CLC:ADC #128:STA CHAR:JSR PTECH:JSR CURSOR:JMP L200 540 COFF LDA REVERSE:CMP #0:BNE L542:JMP L200 542 L542 LDA #0:STA REVERSE:LDA SCADL:STA COFF1+1:LDA SCADH:STA COFF1+2:LDA C11 543 COFF1 STA 49152 544 LDA SCADL:SEC:SBC #19:STA SCADL:LDA SCADH:SBC #0:STA SCADH 546 LDA ADDRH:SEC:SBC #4:STA ADDRH 548 LDA CHAR:SEC:SBC #128:STA CHAR:JSR PTECH:JSR CURSOR:JMP L200 550 TOGGLE LDA BASE:CLC:ADC ADDRH:STA 49156:LDA ADDRL:STA 49155 552 LDA #138:STA 49157:LDA #6:STA 49158:LDA #1:JSR 49152 554 CURREF LDA BASE:CLC:ADC #7:STA 49156:LDA #248:STA 49155:LDA #6:STA 49158 555 LDA #129:STA 49157:LDA #1:JSR 49152 556 JSR CURSOR:JSR REFRENCE:RTS 560 REFCUR LDA BASE:CLC:ADC ADDRH:STA 49156:LDA ADDRL:STA 49155 562 LDA #138:STA 49157:LDA #6:STA 49158:LDA #1:JSR 49152:JSR CURSOR:RTS 570 A00 LDA 53280:AND #15:STA 2 571 LDY #0:LDX #12:CLC:JSR $FFF0:LDA #S00:JSR $AB1E 572 L572 JSR $FFE4:CMP #0:BEQ L572 574 CMP #43:BNE L576:LDX 2:INX:STX 2 576 L576 CMP #45:BNE L578:LDX 2:DEX:STX 2 578 L578 CMP #3:BEQ L579:LDX 2:STX 53280:STX 53281:JSR P00:JMP L572 579 L579 JMP L200 580 A01 LDA 53282:AND #15:STA 2 581 LDY #0:LDX #12:CLC:JSR $FFF0:LDA #S01:JSR $AB1E 582 L582 JSR $FFE4:CMP #0:BEQ L582 584 CMP #43:BNE L586:LDX 2:INX:STX 2 586 L586 CMP #45:BNE L588:LDX 2:DEX:STX 2 588 L588 CMP #3:BEQ L589:LDX 2:STX 53282:JSR P01:JMP L582 589 L589 JMP L200 590 A10 LDA 53283:AND #15:STA 2 591 LDY #0:LDX #12:CLC:JSR $FFF0:LDA #S10:JSR $AB1E 592 L592 JSR $FFE4:CMP #0:BEQ L592 594 CMP #43:BNE L596:LDX 2:INX:STX 2 596 L596 CMP #45:BNE L598:LDX 2:DEX:STX 2 598 L598 CMP #3:BEQ L599:LDX 2:STX 53283:JSR P10:JMP L592 599 L599 JMP L200 600 AEX LDA 53284:AND #15:STA 2 601 LDY #0:LDX #12:CLC:JSR $FFF0:LDA #SEX:JSR $AB1E 602 L602 JSR $FFE4:CMP #0:BEQ L602 604 CMP #43:BNE L606:LDX 2:INX:STX 2 606 L606 CMP #45:BNE L608:LDX 2:DEX:STX 2 608 L608 CMP #3:BEQ L609:LDX 2:STX 53284:JSR PEX:JMP L602 609 L609 JMP L200 610 A11 LDA C11:AND #15:STA 2 611 LDY #0:LDX #12:CLC:JSR $FFF0:LDA #S11:JSR $AB1E 612 L612 JSR $FFE4:CMP #0:BEQ L612 614 CMP #43:BNE L616:LDX 2:INX:STX 2 616 L616 CMP #45:BNE L618:LDX 2:DEX:STX 2 618 L618 CMP #3:BEQ L619:LDX 2:STX C11:JSR FILL:JSR P11:JMP L612 619 L619 JMP L200 620 ACS LDA CCS:AND #15:STA 2 621 LDY #0:LDX #12:CLC:JSR $FFF0:LDA #SCS:JSR $AB1E 622 L622 JSR $FFE4:CMP #0:BEQ L622 624 CMP #43:BNE L626:LDX 2:INX:STX 2 626 L626 CMP #45:BNE L628:LDX 2:DEX:STX 2 628 L628 CMP #3:BEQ L629:LDX 2:STX CCS:JSR BKGND:JSR PCS:JMP L622 629 L629 JMP L200 630 MERGE LDA BASE:CLC:ADC #7:STA MERGE1+2:STA MERGE2+2:STA MERGE3+2 631 LDA #240:STA MERGE1+1:LDA #248:STA MERGE2+1:STA MERGE3+1:LDX #0 632 MERGE1 LDA 49152,X 633 MERGE2 ORA 49152,X 634 MERGE3 STA 49252,X 635 INX:CPX #8:BNE MERGE1 636 JSR REFRENCE:JMP L200 640 DUPLICATE LDA BASE:CLC:ADC #7:STA DUP1+2:STA DUP2+2:STA DUP3+2 641 LDA #240:STA DUP1+1:LDA #248:STA DUP2+1:STA DUP3+1:LDX #0 642 DUP1 LDA 49152,X 643 DUP2 AND 49152,X 644 DUP3 STA 49152,X 645 INX:CPX #8:BNE DUP1 646 JSR REFRENCE:JMP L200 650 DIFERENCE LDA BASE:CLC:ADC #7:STA DIF1+2:STA DIF2+2:STA DIF3+2 651 LDA #240:STA DIF1+1:LDA #248:STA DIF2+1:STA DIF3+1:LDX #0 652 DIF1 LDA 49152,X 653 DIF2 EOR 49152,X 654 DIF3 STA 49152,X 655 INX:CPX #8:BNE DIF1 656 JSR REFRENCE:JMP L200 660 MASK LDA BASE:CLC:ADC #7:STA MASK1+2:STA MASK2+2:STA MASK3+2 661 LDA #240:STA MASK1+1:LDA #248:STA MASK2+1:STA MASK3+1:LDX #0 662 L662 LDA #255:SEC 663 MASK1 SBC 49152,X 664 MASK2 ORA 49152,X 665 MASK3 STA 49152,X 666 INX:CPX #8:BNE L662 667 JSR REFRENCE:JMP L200 700 WORKMODE LDA #0:STA WX:STA WY:LDA #6:STA WADH:LDA #129:STA WADL:JSR DCSR 701 L701 LDX #12:LDY #0:CLC:JSR $FFF0:LDA #ERASE4:JSR $AB1E 702 L702 JSR $FFE4:CMP #0:BEQ L702 704 CMP #84:BNE L705:JSR TOGGLE:JMP L702 705 L705 CMP #42:BNE L707:JSR CURREF:JMP L702 707 L707 CMP #83:BNE L709:JMP SCROLL 709 L709 CMP #18:BNE L710:JMP WRKREV 710 L710 CMP #64:BNE L711:JSR REFCUR:JMP L702 711 L711 CMP #32:BNE L712:JMP DOTOFF 712 L712 CMP #81:BNE L713:JMP DOTON 713 L713 CMP #209:BNE L714:JMP DOTON 714 L714 CMP #17:BNE L715:JMP WDOWN 715 L715 CMP #29:BNE L716:JMP WRIGHT 716 L716 CMP #145:BNE L717:JMP WUP 717 L717 CMP #157:BNE L718:JMP WLEFT 718 L718 CMP #13:BNE L719:JSR WEXIT 719 L719 CMP #3:BNE L720:JSR WQUIT 720 L720 CMP #147:BNE L721:JMP WRKCLR 721 L721 JMP L702 800 DCSR LDA WADL:STA DCSR1+1:LDA WADH:CLC:ADC #212:STA DCSR1+2:LDA C11 802 DCSR1 STA 49152 804 RTS 810 ECSR LDA WADL:STA ECSR1+1:LDA WADH:CLC:ADC #212:STA ECSR1+2:LDA CCS 812 ECSR1 STA 49152 814 RTS 820 WRIGHT LDA WX:CMP #7:BNE L822:JMP L702 822 L822 JSR ECSR:LDX WX:INX:STX WX 824 LDA WADL:CLC:ADC #1:STA WADL:LDA WADH:ADC #0:STA WADH 826 JSR DCSR:JMP L702 830 WLEFT LDA WX:CMP #0:BNE L832:JMP L702 832 L832 JSR ECSR:LDX WX:DEX:STX WX 834 LDA WADL:SEC:SBC #1:STA WADL:LDA WADH:SBC #0:STA WADH 836 JSR DCSR:JMP L702 840 WUP LDA WY:CMP #0:BNE L842:JMP L702 842 L842 JSR ECSR:LDY WY:DEY:STY WY 844 LDA WADL:SEC:SBC #40:STA WADL:LDA WADH:SBC #0:STA WADH 846 JSR DCSR:JMP L702 850 WDOWN LDA WY:CMP #7:BNE L852:JMP L702 852 L852 JSR ECSR:LDY WY:INY:STY WY 854 LDA WADL:CLC:ADC #40:STA WADL:LDA WADH:ADC #0:STA WADH 856 JSR DCSR:JMP L702 860 WEXIT LDA ADDRL:STA 49155:LDA ADDRH:CLC:ADC BASE:STA 49156:LDA #129 862 STA 49157:LDA #6:STA 49158:LDA #1:JSR 49152:JSR ECSR:JMP L200 870 WQUIT JSR ECSR:JMP L200 880 DOTON LDA WADL:STA DOTON1+1:LDA WADH:STA DOTON1+2:LDA #252 882 DOTON1 STA 49152 884 LDA #240:STA 49155:LDA BASE:CLC:ADC #7:STA 49156:LDA #129:STA 49157 886 LDA #6:STA 49158:LDA #1:JSR 49152:JMP WRIGHT 890 DOTOFF LDA WADL:STA DOTOFF1+1:LDA WADH:STA DOTOFF1+2:LDA #251 892 DOTOFF1 STA 49152 894 LDA #240:STA 49155:LDA BASE:CLC:ADC #7:STA 49156:LDA #129:STA 49157 896 LDA #6:STA 49158:LDA #1:JSR 49152:JMP WRIGHT 900 WRKCLR LDA BASE:CLC:ADC #7:STA CLR1+2:LDA #240:STA CLR1+1:LDX #0:TXA 902 CLR1 STA 49152,X:INX:CPX #8:BNE CLR1:LDA CLR1+1:STA 49155:LDA CLR1+2 904 STA 49156:LDA #129:STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:JMP L702 910 WRKREV LDA BASE:CLC:ADC #7:STA WREV1+2:STA WREV2+2:LDA #240:STA WREV1+1 912 STA WREV2+1:LDX #0 914 L914 LDA #255:SEC 916 WREV1 SBC 49152,X 918 WREV2 STA 49152,X:INX:CPX #8:BNE L914:LDA WREV1+1:STA 49155:LDA WREV1+2 920 STA 49156:LDA #129:STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:JMP L702 930 SCROLL LDX #12:LDY #0:CLC:JSR $FFF0:LDA #BSCROLL:JSR $AB1E 932 L932 JSR $FFE4:CMP #0:BEQ L932 934 CMP #85:BNE L936:JMP SUP 936 L936 CMP #68:BNE L937:JMP SDOWN 937 L937 CMP #76:BNE L938:JMP SLEFT 938 L938 CMP #82:BNE L939:JMP SRIGHT 939 L939 CMP #3:BNE L932:JMP L701 940 SUP LDA BASE:CLC:ADC #7:STA SUP1+2:STA SUP2+2:STA SUP3+2:LDA #241:STA SUP1+1 942 LDA #240:STA SUP2+1:STA SUP3+1:LDX #0 944 SUP3 LDY 49152 946 SUP1 LDA 49152,X 948 SUP2 STA 49152,X 950 INX:CPX #7:BNE SUP1:LDA SUP2+2:STA SUP4+2:LDA #247:STA SUP4+1 952 SUP4 STY 49152:LDA #240:STA 49155:LDA #7:CLC:ADC BASE:STA 49156:LDA #129 954 STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:JMP L701 960 SDOWN LDA BASE:CLC:ADC #7:STA SD1+2:STA SD2+2:STA SD3+2:LDA #240:STA SD1+1 962 LDA #241:STA SD2+1:LDA #247:STA SD3+1:LDX #6 964 SD3 LDY 49152 966 SD1 LDA 49152,X 968 SD2 STA 49152,X 970 DEX:CPX #255:BNE SD1:LDA SD2+2:STA SD4+2:LDA #240:STA SD4+1 972 SD4 STY 49152:LDA #240:STA 49155:LDA SD4+2:STA 49156:LDA #129 974 STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:JMP L701 980 SLEFT LDA BASE:CLC:ADC #7:STA SL1+2:STA SL2+2:LDA #240:STA SL1+1 982 STA SL2+1:LDX #0 984 SL1 LDA 49152,X 985 ASL:ADC #0 986 SL2 STA 49152,X:INX:CPX #8:BNE SL1:LDA SL1+2:STA 49156:LDA #240:STA 49155 988 LDA #129:STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:JMP L701 990 SRIGHT LDA BASE:CLC:ADC #7:STA SR1+2:STA SR2+2:LDA #240:STA SR1+1 992 STA SR2+1:LDX #0 994 SR1 LDA 49152,X:LSR:BCC SR2 996 CLC:ADC #128 997 SR2 STA 49152,X:INX:CPX #8:BNE SR1:LDA SR1+2:STA 49156:LDA #240:STA 49155 998 LDA #129:STA 49157:LDA #6:STA 49158:LDA #0:JSR 49152:JMP L701 1000 GETNAME LDA #147:JSR $FFD2:LDX #0:STX 2 1002 L1002 JSR $FFCF:TAY:CMP #13:BEQ L1004 1003 TYA:LDX 2:STA 51968,X:INX:STX 2:JMP L1002 1004 L1004 LDA 2:AND #15:LDY #203:LDX #0:JSR $FFBD 1006 LDA #8:LDX #8:LDY #1:JSR $FFBA 1008 RTS 1010 SAVESET JSR GETNAME 1012 LDA BASE 1014 STA 3:CLC:ADC #8:TAY:LDA #0:STA 2:LDX #0:LDA #2:JSR $FFD8:JMP SCREENON 1020 LOADSET JSR GETNAME 1024 LDA #0:JSR $FFD5:JMP SCREENON 1030 COPY LDX COPYMODE:INX:STX COPYMODE 1031 CPX #1:BEQ L1034 1032 CPX #2:BEQ L1040 1033 CPX #3:BEQ L1046 1034 L1034 LDX #12:LDY #0:CLC:JSR $FFF0:LDA #BCOPY:JSR $AB1E 1036 LDA CHAR:STA 1521:LDA ADDRL:STA CTEMP:LDA ADDRH:STA CTEMP+1:JMP L206 1038 JMP L206 1040 L1040 LDA ADDRL:CLC:ADC #8:STA CTEMP+2:LDA ADDRH:ADC BASE:STA CTEMP+3 1042 LDA CTEMP+1:CLC:ADC BASE:STA CTEMP+1:LDA CHAR:STA 1523:JMP L206 1044 CMP 1521:BCC L1045:JMP L206 1045 L1045 LDA #0:STA COPYMODE:JMP L200 1046 L1046 LDA CTEMP:STA COPY1+1:LDA CTEMP+1:STA COPY1+2 1048 LDA CTEMP+2:STA COPY2:LDA CTEMP+3:STA COPY2+1 1050 LDA ADDRL:STA COPY3+1:LDA ADDRH:CLC:ADC BASE:STA COPY3+2 1052 COPY1 LDA 49152 1054 COPY3 STA 49152 1056 LDA COPY1+1:CLC:ADC #1:STA COPY1+1:LDA COPY1+2:ADC #0:STA COPY1+2 1058 LDA COPY3+1:CLC:ADC #1:STA COPY3+1:LDA COPY3+2:ADC #0:STA COPY3+2 1059 LDA COPY3+2:SEC:SBC BASE:CMP #8:BNE L1060:JMP L1064 1060 L1060 LDA COPY1+1:CMP COPY2:BNE COPY1 1062 LDA COPY1+2:CMP COPY2+1:BNE COPY1 1064 L1064 LDA #0:STA COPYMODE:JMP L200 1070 SECRET LDX #12:LDY #0:CLC:JSR $FFF0:LDA #MESSAGE:JSR $AB1E 1072 L1072 LDX 53280:INX:STX 53280:JSR $FFE4:CMP #0:BEQ L1072:LDA 53281 1074 STA 53280:JMP L200 1080 RECSCREEN LDX #0 1081 L1081 LDA 1024,X:STA 52224,X:LDA 1280,X:STA 52480,X:LDA 1536,X:STA 52736,X 1082 LDA 1792,X:STA 52992,X:INX:CPX #0:BNE L1081:RTS 1090 SCREENON LDX #0 1091 L1091 LDA 52224,X:STA 1024,X:LDA 52480,X:STA 1280,X:LDA 52736,X:STA 1536,X 1092 LDA 52992,X:STA 1792,X:INX:CPX #0:BNE L1091:JMP RESET 9999 .END TX.65