This is a failed attempt to build an interactive program that would do live translation based on direct braille input on the Apple keyboard. This is not part of MathematiX because I could not get it to work. !L 1 ORG $4000 2 OBJ $800 3 NLS 4 MTABLE EQU $5400 5 LTABLE EQU $6000 6 SHAPE EQU $6C00 7 ST EQU $8600 8 BUF EQU ST 9 BELL EQU $FBDD 10 JSR TBLOAD 11 JSR SETFUL 12 LDA #$00 13 STA BUFPT 14 JSR MTSET 15 RLOOP JSR INPUT 16 JSR MTRAN 17 JSR DISPLY 18 JMP RLOOP 19 ; 20 ; 21 LIT1 HEX 84 22 ASC "BLOAD MTR.A,A$5400" 23 HEX 8D00 24 LIT2 HEX 84 25 ASC "BLOAD ALLCHAR,A$6C00" 26 HEX 8D00 27 LIT3 HEX 84 28 ASC "BLOAD ZQMREV.A,A$6000" 29 HEX 8D00 30 LIT4 HEX 84 31 ASC "BSAVE ,A$8600,L$" 32 HEX 00 33 LIT5 HEX 84 34 ASC "BLOAD ,A$8600" 35 HEX 8D00 36 TBLOAD LDY #$00 37 DGP LDA LIT1,Y 38 BEQ DGP0 39 JSR PRMON 40 INY 41 BNE DGP 42 DGP0 LDY #$00 43 DGP1 LDA LIT2,Y 44 BEQ DGP2 45 JSR PRMON 46 INY 47 BNE DGP1 48 DGP2 LDY #$00 49 DGP3 LDA LIT3,Y 50 BEQ DGP4 51 JSR PRMON 52 INY 53 BNE DGP3 54 DGP4 RTS 55 ; 56 CPT EPZ $06 57 CPTH EPZ $07 58 ; 59 ; 60 INPUT JSR INCBSK 61 GLOOP JSR BRKEY 62 BMI OTST 63 LDY #$00 64 PUTIN STA (CPT),Y 65 JSR SOUND 66 JSR INCPT 67 JMP GLOOP 68 OTST CMP 'D 69 BEQ FENT2 70 CMP 'P 71 BEQ PFENT 72 CMP '. 73 BEQ BACKUP 74 CMP #$0D 75 BEQ PUTIN 76 CMP 'K 77 BEQ ABORT 78 CMP 'G 79 BEQ FENT1 80 CMP 'E 81 BEQ ERASE 82 CMP 'S 83 BEQ SAVE0 84 CMP 'L 85 BEQ LOAD0 86 CMP 'A 87 BEQ THROW 88 BNE GLOOP 89 SAVE0 JMP SAVE 90 LOAD0 JMP LOAD 91 PFENT JSR $1803 92 JMP GLOOP 93 FENT2 JSR MTSET 94 JMP FENT0 95 FENT1 JSR LTSET 96 FENT0 JMP FENT 97 ABORT JSR BELL 98 JSR SETFUL 99 LDA #$00 100 STA BUFPT 101 JSR INCBSK 102 JMP FENT 103 THROW JSR BELL 104 JSR SETUP 105 JMP FENT 106 ERASE JSR BSOUND 107 DEC BUFPT 108 DEC BUFPT 109 BEQ ABORT 110 JSR SETUP 111 JMP FENT 112 BACKUP JSR BSOUND 113 LDX BUFPT 114 DEX 115 DEX 116 LDA CPT 117 CMP BUFSK,X 118 BNE BK2 119 LDA CPTH 120 CMP BUFSK+1,X 121 BNE BK2 122 JSR SOUND 123 JMP GLOOP 124 BK2 LDA CPT 125 BNE BK3 126 DEC CPTH 127 BK3 DEC CPT 128 JMP GLOOP 129 FENT LDY #$00 130 LDA #$FF 131 STA (CPT),Y 132 SEC 133 LDA CPT 134 SBC #ST 135 STA SIZE 136 LDA CPTH 137 SBC /ST 138 STA SIZE+1 139 RTS 140 GETLET JSR BRKEY 141 BMI GLERR 142 JSR TP 143 CPX #$01 144 BNE GLERR 145 CLC 146 ADC #$60 147 STA LIT4+7 148 STA LIT5+7 149 SEC 150 RTS 151 GLERR JSR SOUND 152 CLC 153 RTS 154 SAVE JSR GETLET 155 BCC SAVE5 156 JSR SETUP 157 JSR FENT 158 INC SIZE 159 BNE SAVE1 160 INC SIZE+1 161 SAVE1 LDY #$00 162 SAVE2 LDA LIT4,Y 163 BEQ SAVE4 164 JSR PRMON 165 INY 166 BNE SAVE2 167 SAVE4 LDA SIZE+1 168 JSR $FDDA 169 LDA SIZE 170 JSR $FDDA 171 LDA #$8D 172 JSR PRMON 173 SAVE5 JMP GLOOP 174 LOAD JSR GETLET 175 BCC LOAD5 176 LDY #$00 177 LOAD1 LDA LIT5,Y 178 BEQ LOAD2 179 JSR PRMON 180 INY 181 BNE LOAD1 182 LOAD2 LDA $AA60 183 BNE LOAD3 184 DEC $AA61 185 LOAD3 DEC $AA60 186 LDA #$04 187 STA BUFPT 188 CLC 189 LDA $AA60 190 ADC #ST 191 STA BUFSK+2 192 STA CPT 193 LDA $AA61 194 ADC /ST 195 STA BUFSK+3 196 STA CPTH 197 JSR FENT 198 RTS 199 LOAD5 JMP GLOOP 200 INCBSK LDX BUFPT 201 DEX 202 DEX 203 BMI INBP 204 LDA CPT 205 CMP BUFSK,X 206 BNE INBP 207 LDA CPTH 208 CMP BUFSK+1,X 209 BEQ NINBP 210 INBP LDX BUFPT 211 LDA CPT 212 STA BUFSK,X 213 LDA CPTH 214 STA BUFSK+1,X 215 INC BUFPT 216 INC BUFPT 217 NINBP RTS 218 MTSET LDA #MTABLE 219 STA WTABLE 220 LDA /MTABLE 221 STA WTABLE+1 222 RTS 223 LTSET LDA #LTABLE 224 STA WTABLE 225 LDA /LTABLE 226 STA WTABLE+1 227 RTS 228 BSOUND LDY #$40 229 SBA LDA #$0E 230 JSR $FCA8 231 LDA $C030 232 DEY 233 BPL SBA 234 RTS 235 SOUND LDY #$20 236 SBQ LDA #$11 237 JSR $FCA8 238 LDA $C030 239 DEY 240 BNE SBQ 241 RTS 242 PRMON EQU $FDED 243 BC1 HEX 00 244 BC2 HEX 00 245 BCB HEX 00 246 CF HEX 00 247 BRKEY LDA #$00 248 STA BCB 249 STA CF 250 CZ7 LDA #$00 251 STA BC1 252 STA BC2 253 CZLP JSR CHARB 254 BNE CZ1 255 INC BC1 256 BNE CZLP 257 INC BC2 258 LDA BC2 259 CMP #$08 ;TIMING OF BRAILLE KEYS 260 BNE CZLP 261 LDY BCB 262 BNE FX 263 LDA CF 264 BEQ BRKEY 265 FX LDA BRTB1,Y 266 LDX CF 267 BEQ CZOX 268 CMP #$6D 269 BNE CZ13 270 LDA #$0D 271 BNE CZ2 272 CZ13 CMP #$40 273 BCC CZ2 274 SBC #$20 275 CZOX LDX CF 276 RTS 277 CZ2 LDX #$00 278 RTS 279 CZ1 CMP #$20 280 BNE CZX 281 LDX #$80 282 STX CF 283 CZX BCC CZ2 284 LDY #$09 285 CZ4 CMP BRTB2,Y 286 BEQ CZ3 287 DEY 288 BPL CZ4 289 LDX #$80 290 RTS 291 CZ3 LDA BRTB3,Y 292 ORA BCB 293 STA BCB 294 CLC 295 BCC CZ7 296 CHARB LDA $C000 297 BMI CX1 298 LDA #$00 299 RTS 300 CX1 LDX $C010 301 AND #$7F 302 RTS 303 BRTB1 HEX 20613162276B326C 304 HEX 406369662F6D7370 305 HEX 22653368396F3672 306 HEX 5E646A673E6E7471 307 HEX 2C2A353C2D753876 308 HEX 2E255B242B782126 309 HEX 3B3A345C307A3728 310 HEX 5F3F775D2379293D 311 BRTB2 ASC '12S ZXCNM,' 312 BRTB3 HEX 00000000040201081020 313 ; 314 ; 315 ; 316 ; 317 Z06 EPZ $06 318 Z07 EPZ $07 319 Z08 EPZ $08 320 Z09 EPZ $09 321 Z1A EPZ $1A 322 Z1B EPZ $1B 323 Z1C EPZ $1C 324 Z1D EPZ $1D 325 Z1E EPZ $1E 326 Z1F EPZ $1F 327 ; 328 ; 329 SIZE HEX 0000 330 MOVE HEX 00 331 HOLD HEX 20 332 BEFORE HEX 00 333 TARG HEX 00 334 CAPXXX HEX 80 335 STY HEX 00 336 SHX HEX 00 337 MASK HEX 00 338 WTABLE HEX 0000 339 NUM HEX 00 340 POLV HEX 606C6DFF 341 TO DFS $50 342 ATBL DFS $A0 343 ALFLAG DFS $1A 344 STACKP EQU ALFLAG+$12 345 ; 346 MTRAN JSR SETUPT 347 JSR NOCAP 348 JSR SETUPT 349 JSR SETALF 350 JSR ATBIN 351 LDA #$20 352 STA HOLD 353 LOOP LDA HOLD 354 STA BEFORE 355 LDY #$00 356 LDA (Z1C),Y 357 CMP #$FF 358 BEQ FIN 359 JSR TYPE 360 LDA SPT,X 361 STA HOLD 362 LDA WTABLE+1 363 CMP /LTABLE 364 BEQ LX7 365 TXA 366 ASL 367 TAX 368 JSR WORD 369 BCC LX7 370 LDX NUM 371 INX 372 TXA 373 JSR INC 374 LX7 LDY #$00 375 LDA (Z1C),Y 376 CMP #$20 377 BCS REGON 378 LDA #$7F 379 REGON SBC #$20 380 CMP #$3B 381 BCC REG0 382 SBC #$1A 383 REG0 ASL 384 CLC 385 ADC #$0A 386 TAX 387 JSR WORD 388 LDX #$00 389 BCC L5 390 LDX NUM 391 L5 INX 392 TXA 393 JSR INC 394 LDA HOLD 395 CMP 'W 396 BEQ WORDXX 397 LDA ALFLAG+$1 398 CMP 'S 399 BEQ COMBRL 400 LDA ALFLAG+$2 401 CMP 'H 402 BNE ON7 403 LDA 'C 404 STA ALFLAG+$2 405 ON7 JMP LOOP 406 FIN JMP PACK 407 WORDXX JSR WORDPR 408 LDA #$20 409 STA HOLD 410 JMP ON7 411 COMBRL LDA #$01 412 JSR INC 413 LDY #$03 414 CB0 LDA (Z1C),Y 415 CMP #$FF 416 BEQ FIN 417 CMP STOP,Y 418 BNE COMBRL 419 DEY 420 BPL CB0 421 LDA #$03 422 JSR INC 423 LDA #$20 424 STA HOLD 425 LDA 'C 426 STA ALFLAG+$1 427 JMP LOOP 428 ; 429 WORD LDA ATBL,X 430 STA Z06 431 LDA ATBL+1,X 432 STA Z07 433 JSR SEARCH 434 BCS REPL 435 LDY #$00 436 LDA (Z1C),Y 437 JSR CAPFIX 438 STA (Z1C),Y 439 CLC 440 RTS 441 REPL LDX #$00 442 REPL0 INY 443 LDA (Z06),Y 444 CMP #$0D 445 BEQ REPL1 446 CMP 'Z 447 BEQ ESC 448 CMP 'F 449 BEQ PFLAG 450 STA TO,X 451 INX 452 BNE REPL0 453 PFLAG STX SHX 454 INY 455 LDA (Z06),Y 456 SEC 457 SBC #$41 458 TAX 459 INY 460 LDA (Z06),Y 461 STA ALFLAG,X 462 LDX SHX 463 JMP REPL0 464 ESC INY 465 LDA (Z06),Y 466 STA HOLD 467 REPL1 LDA #$FF 468 STA TO,X 469 STX TARG 470 CLC 471 TXA 472 SBC NUM 473 TAX 474 JSR SHIFT 475 LDY #$00 476 REPL3 LDA TO,Y 477 BMI REPL2 478 JSR CAPFIX 479 STA (Z1C),Y 480 INY 481 BNE REPL3 482 REPL2 DEY 483 BMI NUMF 484 TYA 485 LDX NUM 486 BMI NUMD 487 CMP NUM 488 BCC NUMF 489 NUMD STA NUM 490 NUMF SEC 491 RTS 492 ; 493 WORDPR LDY #$FF 494 WP INY 495 LDA (Z1C),Y 496 CMP #$20 497 BNE WP 498 TYA 499 INC CLC 500 ADC Z1C 501 STA Z1C 502 BCC INCX 503 INC Z1D 504 INCX RTS 505 ; 506 SEARCH LDY #$00 507 LDA (Z06),Y 508 CMP #$0D 509 BEQ NIX 510 JSR MATCH 511 BCC NTRY 512 RTS 513 NTRY INY 514 LDA (Z06),Y 515 CMP #$0D 516 BNE NTRY 517 TYA 518 SEC 519 ADC Z06 520 STA Z06 521 BCC SEARCH 522 INC Z07 523 BNE SEARCH 524 NIX CLC 525 RTS 526 MATCH LDY #$00 527 LDA #$FF 528 STA NUM 529 LDA (Z06),Y 530 CMP 'T 531 BNE MT00 532 INY 533 LDA (Z06),Y 534 SEC 535 SBC #$41 536 TAX 537 LDA ALFLAG,X 538 TAX 539 INY 540 LDA (Z06),Y 541 JSR MATCHC 542 BCC NMAT 543 JSR INC06 544 JSR INC06 545 JSR INC06 546 JMP MATCH 547 NMAT RTS 548 FSOUT PLA 549 PLA 550 JMP NMATCH 551 MT00 CMP 'E 552 BEQ FMATCH 553 CMP 'S 554 BEQ FSOUT 555 JSR TYPE 556 CPX #$02 557 BNE MT1 558 LDX BEFORE 559 JSR MATCHC 560 BCC NMATCH 561 JSR INC06 562 MT1 LDY #$00 563 MT2 LDA (Z1C),Y 564 TAX 565 LDA (Z06),Y 566 CMP 'E 567 BEQ FMATCH 568 JSR MATCHC 569 BCC NMATCH 570 INY 571 BNE MT2 572 MATCHC STX TARG 573 STA MASK 574 JSR TYPE 575 CPX #$02 576 BEQ CAP 577 STY NUM 578 LDA TARG 579 CMP MASK 580 BNE NMATCH 581 BEQ FMATCH 582 CAP LDA TARG 583 JSR TYPE 584 LDA MASK 585 CMP 'B 586 BEQ BLK 587 CMP 'P 588 BEQ MPUN 589 CMP 'Q 590 BEQ BPUN 591 CMP 'L 592 BEQ LET 593 CMP 'N 594 BEQ FNUM 595 CMP 'C 596 BEQ CLEER 597 CMP TARG 598 BEQ FMATCH 599 BNE NMATCH 600 NMATCH CLC 601 RTS 602 FMATCH SEC 603 RTS 604 CLEER LDA TARG 605 BEQ FMATCH 606 CMP 'C 607 BEQ FMATCH 608 BNE NMATCH 609 FNUM CPX #$03 610 BEQ FMATCH 611 BNE NMATCH 612 BLK CPX #$00 613 BEQ FMATCH 614 BNE NMATCH 615 BPUN CPX #$00 616 BEQ FMATCH 617 CPX #$04 618 BEQ FMATCH 619 LDA TARG 620 CMP '- 621 BEQ FMATCH 622 BNE NMATCH 623 MPUN CPX #$04 624 BEQ FMATCH 625 BNE NMATCH 626 LET CPX #$01 627 BEQ FMATCH 628 CPX #$02 629 BEQ FMATCH 630 BNE NMATCH 631 INC06 INC Z06 632 BNE INC06X 633 INC Z07 634 INC06X RTS 635 ; 636 SETUPT JSR SETUP 637 LDA CPT 638 STA Z1C 639 LDA CPTH 640 STA Z1D 641 RTS 642 SETALF LDA #$00 643 LDY #$19 644 SR5 STA ALFLAG,Y 645 DEY 646 BPL SR5 647 RTS 648 NOCAP LDY #$00 649 NOCAP0 LDA (Z1C),Y 650 CMP #$FF 651 BEQ NOCAP9 652 CMP #$7B 653 BCS NOCAP1 654 CMP #$5B 655 BCS NOCAP2 656 CMP #$41 657 BCC NOCAP2 658 CLC 659 ADC #$40 660 NOCAP1 SEC 661 SBC #$20 662 STA (Z1C),Y 663 NOCAP2 INY 664 BNE NOCAP0 665 INC Z1D 666 BNE NOCAP0 667 NOCAP9 RTS 668 CAPFIX CMP #$00 669 BEQ CAPF0 670 LDX ALFLAG+$2 671 BEQ CAPF0 672 CPX 'N 673 BEQ CAPF0 674 CPX 'H 675 BEQ CAPF0 676 JSR TYPE 677 CPX #$00 678 BNE CAPF2 679 LDX 'N 680 STX ALFLAG+$2 681 BNE CAPF0 682 CAPF2 CMP #$61 683 BCC CAPF1 684 SBC #$20 685 CAPF1 LDX ALFLAG+$2 686 CPX 'C 687 BNE CAPF0 688 LDX 'N 689 STX ALFLAG+$2 690 CAPF0 RTS 691 INSERT PHA 692 LDX #$01 693 JSR SHIFT 694 LDY #$00 695 PLA 696 STA (Z1C),Y 697 LDA #$01 698 JSR INC 699 RTS 700 SHIFT CLC 701 LDA SIZE 702 ADC #BUF 703 STA Z1A 704 LDA SIZE+1 705 ADC /BUF 706 STA Z1B 707 TXA 708 STA MOVE 709 BMI SHIFTB 710 BNE SHIFTF 711 RTS 712 SHIFTF LDY #$00 713 LDA (Z1A),Y 714 LDY MOVE 715 STA (Z1A),Y 716 LDA Z1A 717 BNE SHF2 718 DEC Z1B 719 SHF2 DEC Z1A 720 LDA Z1A 721 CMP Z1C 722 BNE SHIFTF 723 LDA Z1B 724 CMP Z1D 725 BNE SHIFTF 726 LDY #$00 727 LDA (Z1C),Y 728 LDY MOVE 729 STA (Z1C),Y 730 CLC 731 LDA SIZE 732 ADC MOVE 733 STA SIZE 734 BCC SHF3 735 INC SIZE+1 736 SHF3 RTS 737 SHIFTB LDY NUM 738 LDA #$00 739 SHB1 STA (Z1C),Y 740 DEY 741 BPL SHB1 742 RTS 743 PACK JSR SETUPT 744 P1 LDY #$00 745 LDA (Z1C),Y 746 BEQ P2 747 STA (Z06),Y 748 CMP #$FF 749 BEQ P3 750 JSR INC06 751 P2 LDA #$01 752 JSR INC 753 JMP P1 754 P3 SEC 755 LDA Z06 756 SBC #BUF 757 STA SIZE 758 LDA Z07 759 SBC /BUF 760 STA SIZE+1 761 INC SIZE 762 BNE FINX 763 INC SIZE+1 764 FINX LDA 'S 765 CMP ALFLAG 766 BEQ GH0 767 CMP ALFLAG+7 768 BNE FINX0 769 GH0 LDY #$03 770 GH LDA POLV,Y 771 STA (Z06),Y 772 DEY 773 BPL GH 774 FINX0 RTS 775 ATBIN LDX #$00 776 LDA WTABLE 777 STA Z06 778 STA ATBL,X 779 LDA WTABLE+1 780 STA Z07 781 STA ATBL+1,X 782 ATBLP LDY #$00 783 LDA (Z06),Y 784 CMP #$0D 785 BEQ AT1 786 AT2 JSR INC06 787 JMP ATBLP 788 AT1 INY 789 LDA (Z06),Y 790 CMP #$0D 791 BNE AT2 792 JSR INC06 793 JSR INC06 794 INX 795 INX 796 LDA Z06 797 STA ATBL,X 798 LDA Z07 799 STA ATBL+1,X 800 CPX #$96 801 BNE ATBLP 802 RTS 803 TYPE LDX WTABLE+1 804 CPX /LTABLE 805 BNE TP 806 JMP TYPE2 807 TP PHA 808 TAX 809 LDA TTYPE,X 810 TAX 811 PLA 812 RTS 813 ; 814 TTYPE HEX 0000000000000000 815 HEX 0000000000000000 816 HEX 0000000000000000 817 HEX 0000000000000000 818 HEX 0004040404040404 819 HEX 0404040404040404 820 HEX 0303030303030303 821 HEX 0303040404040404 822 HEX 0402020202020202 823 HEX 0202020202020202 824 HEX 0202020202020202 825 HEX 0202020404040404 826 HEX 0401010101010101 827 HEX 0101010101010101 828 HEX 0101010101010101 829 HEX 0101010404040400 830 SPT HEX 2061412327 831 STOP HEX 20406E20 832 TYPE2 AND #$7F 833 PHA 834 TAX 835 LDA TTYPE2,X 836 BMI TYPEC 837 TAX 838 PLA 839 RTS 840 TYPEC STY STY 841 PLA 842 CMP #$34 843 BEQ INITST 844 TYPEX INY 845 TYPEXX LDA (Z1C),Y 846 AND #$7F 847 TAX 848 LDA TTYPE2,X 849 BMI TYPEX 850 BEQ TYPEY 851 CMP #$04 852 BEQ TYPEY 853 TYPELT LDX #$01 854 BNE TYPEZ 855 TYPEY LDX #$04 856 TYPEZ LDY STY 857 RTS 858 INITST INY 859 LDA (Z1C),Y 860 CMP ', 861 BEQ INITST 862 AND #$7F 863 TAX 864 LDA TTYPE2,X 865 CMP #$01 866 BNE TYPEXX 867 INY 868 LDA (Z1C),Y 869 CMP #$34 870 BNE TYPELT 871 LDX #$09 872 LDY STY 873 RTS 874 ; 875 TTYPE2 HEX 0000000000000000 876 HEX 0000000000000000 877 HEX 0000000000000000 878 HEX 0000000000000000 879 HEX 0001010301010104 880 HEX 0101010101010101 881 HEX 8080808080018080 882 HEX 8001010101010101 883 HEX 0102020202020202 884 HEX 0202020202020202 885 HEX 0202020202020202 886 HEX 0202020101010101 887 HEX 0101010101010101 888 HEX 0101010101010101 889 HEX 0101010101010101 890 HEX 0101010101010100 891 ; 892 LLEN HEX 28 893 HBASL EPZ $08 894 HBASH EPZ $09 895 CHTL EPZ $1A 896 CHTH EPZ $1B 897 ;PUT IN FLAGS 898 WHISKY HEX 00 899 WALF HEX 00 900 WCHAR HEX 00 901 LEVL HEX 00 902 LSPBF HEX 0000 903 T1 HEX 00 904 T2 HEX 00 905 T3 HEX 00 906 T4 HEX 00 907 TT1 HEX 00 908 TT2 HEX 00 909 TT3 HEX 00 910 SVPSX HEX 00 911 PSX HEX 00 912 PSY HEX 00 913 BUFPT HEX 00 914 KIND HEX 00 915 RADPT HEX 00 916 FLAG HEX 00 917 LPCH HEX 00 918 BUF1 HEX 0000000000000000 919 PRTPSX HEX 00 920 PRTPSY HEX 00 921 ; 922 DISPLY JSR INIT 923 LDA #$40 924 STA PSY 925 JSR SETUP 926 JSR SETFUL 927 LDA #$00 928 STA FLAG 929 JSR DOIT 930 LDA WHISKY 931 BNE SERRT 932 LDA STACKP 933 BNE SERRT1 934 BCC DISPLY 935 LDA #$80 936 STA FLAG 937 SEC 938 LDA #$40 939 SBC RADSK 940 STA PSY 941 JSR SETUP 942 JSR SETFUL 943 JSR DOIT 944 JMP FINXX 945 SERRT1 LDA 'Z 946 STA WHISKY 947 SERRT LDA #$00 948 STA PSX 949 LDA #$B0 950 STA PSY 951 LDA WHISKY 952 JSR FDCHAR 953 JSR CHPLOT 954 JSR BELL 955 JSR BELL 956 JSR SETUP 957 LDY #$00 958 LDA #$FF 959 STA (06),Y 960 DEC BUFPT 961 DEC BUFPT 962 JMP DISPLY 963 INIT LDA #$00 964 STA $C054 965 STA $C057 966 STA $C050 967 STA $C052 968 JSR CLEAR 969 RTS 970 SETUP LDX BUFPT 971 DEX 972 DEX 973 LDA BUFSK,X 974 STA CPT 975 LDA BUFSK+1,X 976 STA CPTH 977 LDX #$00 978 STX STACKP 979 STX RADPT 980 STX PSX 981 STX PRTPSX 982 STX LEVL 983 STX WHISKY 984 LDA PSY 985 STA RADSK,X 986 STA RADSK+1,X 987 STA PRTPSY 988 STX LEVL 989 RTS 990 SETFUL LDA #ST 991 STA CPT 992 LDA /ST 993 STA CPTH 994 RTS 995 DOIT LDY #$00 996 LDA (CPT),Y 997 CMP #$FF 998 BEQ FINXX 999 JSR DOCHAR 1000 JMP DOIT 1001 FINXX SEC 1002 RTS 1003 DOCHAR LDX FLAG 1004 BEQ DOCK 1005 JSR PRINT 1006 JSR HDPSXY 1007 JSR INCPT 1008 RTS 1009 DOCK JSR HDPSXY 1010 JSR FINDBR 1011 JSR INCPT 1012 RTS 1013 CLEAR LDY #$00 1014 STY HBASL 1015 LDA #$20 1016 STA HBASH 1017 PXZ LDA #$00 1018 STA (HBASL),Y 1019 INY 1020 BNE PXZ 1021 INC HBASH 1022 LDA HBASH 1023 AND #$1F 1024 BNE PXZ 1025 RTS 1026 YADD PHA 1027 AND #$C0 1028 STA HBASL 1029 LSR 1030 LSR 1031 ORA HBASL 1032 STA HBASL 1033 PLA 1034 STA HBASH 1035 ASL 1036 ASL 1037 ASL 1038 ROL HBASH 1039 ASL 1040 ROL HBASH 1041 ASL 1042 ROR HBASL 1043 LDA HBASH 1044 AND #$1F 1045 ORA #$20 ;HR PAGE 1 1046 STA HBASH 1047 POUT RTS 1048 PRINT JSR FDCHAR 1049 LDX #$00 1050 PCRT JMP CHPLOT 1051 ; 1052 FD0 LDA #$20 1053 FDCHAR CMP #$60 1054 BEQ FDSPCH 1055 LDY #SHAPE 1056 STY CHTH 1057 SEC 1058 SBC #$20 1059 BPL FD2 1060 LDA #$00 1061 FD2 ASL 1062 ASL 1063 ROL CHTH 1064 ASL 1065 ROL CHTH 1066 STA CHTL 1067 CLC 1068 LDA CHTH 1069 ADC /SHAPE 1070 STA CHTH 1071 RTS 1072 FDSPCH LDY #$01 1073 LDA (CPT),Y 1074 STA WALF 1075 INY 1076 LDA (CPT),Y 1077 STA WCHAR 1078 LDA WALF 1079 CMP #$6C 1080 BEQ PLEVEL 1081 CMP #$7A 1082 BEQ PLEVZ 1083 CMP #$70 1084 BEQ PSTAK 1085 LOCATE LDA #SHAPE+$300 1086 STA CHTL 1087 LDA /SHAPE+$300 1088 STA CHTH 1089 SPLP LDY #$08 1090 LDA (CHTL),Y 1091 CMP #$FF 1092 BEQ FD0 1093 CMP WALF 1094 BNE QS2 1095 INY 1096 LDA (CHTL),Y 1097 CMP WCHAR 1098 BNE QS2 1099 RTS 1100 QS2 CLC 1101 LDA CHTL 1102 ADC #$0A 1103 STA CHTL 1104 BCC SPLP 1105 INC CHTH 1106 BNE SPLP 1107 QS3 RTS 1108 SEC 1109 PLEVEL SEC 1110 LDA WCHAR 1111 SBC #$6D 1112 STA WCHAR 1113 LDA LEVL 1114 BNE YU1 1115 LDA WCHAR 1116 BPL YU1 1117 LDA PSX 1118 STA SVPSX 1119 YU1 LDA LEVL 1120 BPL YU2 1121 LDA WCHAR 1122 BEQ YU2 1123 BMI YU2 1124 LDA SVPSX 1125 STA PSX 1126 YU2 PLA 1127 PLEVZ EQU YU2 1128 PSTAK EQU YU2 1129 PLA 1130 RTS 1131 HRG LDA #$00 1132 STA $C054 1133 STA $C057 1134 STA $C050 1135 STA $C052 1136 RTS 1137 CHPLOT LDA #$00 1138 LDY #$00 1139 STY LPCH 1140 TOP LDA (CHTL),Y 1141 PHA 1142 CLC 1143 LDA PSY 1144 ADC LPCH 1145 JSR YADD 1146 LDY PSX 1147 PLA 1148 ORA (HBASL),Y 1149 STA (HBASL),Y 1150 INC LPCH 1151 LDY LPCH 1152 CPY #$08 1153 BNE TOP 1154 RTS 1155 INCPT LDY #$00 1156 LDA (CPT),Y 1157 INY 1158 CMP #$60 1159 BNE IC1 1160 LDY #$03 1161 IC1 TYA 1162 CLC 1163 ADC CPT 1164 STA CPT 1165 BCC IC2 1166 INC CPTH 1167 IC2 RTS 1168 SCROLL SEC 1169 LDA BUFSK+2 1170 STA Z08 1171 SBC BUFSK+0 1172 STA T1 1173 LDA BUFSK+3 1174 STA Z09 1175 SBC BUFSK+1 1176 STA T2 1177 JSR SETFUL 1178 LDY #$00 1179 SCR1 LDA (Z08),Y 1180 STA (CPT),Y 1181 CMP #$FF 1182 BEQ SCR2 1183 INC Z08 1184 BNE SCR6 1185 INC Z09 1186 SCR6 INC CPT 1187 BNE SCR1 1188 INC CPTH 1189 BNE SCR1 1190 SCR2 LDY #$02 1191 SCR3 SEC 1192 LDA BUFSK,Y 1193 SBC T1 1194 STA BUFSK-2,Y 1195 LDA BUFSK+1,Y 1196 SBC T2 1197 STA BUFSK-1,Y 1198 INY 1199 INY 1200 CPY BUFPT 1201 BNE SCR3 1202 DEC BUFPT 1203 DEC BUFPT 1204 PLA 1205 PLA 1206 PLA 1207 PLA 1208 PLA 1209 PLA 1210 JMP DISPLY 1211 BREAK BRK 1212 FINDBR LDA PSY 1213 CMP #$20 1214 BCC SCROLL 1215 FS00 LDY #$00 1216 LDA (CPT),Y 1217 CMP #$11 1218 ;BEQ BREAK 1219 CMP #$20 1220 BNE FS0 1221 LDA LEVL 1222 BNE FS0 1223 LDA STACKP 1224 BNE FS0 1225 LDA CPT 1226 STA LSPBF 1227 LDA CPTH 1228 STA LSPBF+1 1229 FS0 LDA LLEN 1230 CMP PSX 1231 BCS CH0 1232 LDA LSPBF 1233 STA CPT 1234 LDA LSPBF+1 1235 STA CPTH 1236 LDY #$00 1237 STY STACKP 1238 STY LEVL 1239 LDA #$0D 1240 STA (CPT),Y 1241 JSR CR 1242 CH0 RTS 1243 HDPSXY JSR RADSET 1244 LDY #$00 1245 LDA (CPT),Y 1246 CMP #$0D 1247 BEQ CR 1248 CMP #$60 1249 BEQ HDSPCH 1250 INC PSX 1251 RTS 1252 CR LDA #$00 1253 STA PSX 1254 STA LEVL 1255 CLC 1256 LDA RADSK+1 1257 ADC #$10 1258 STA PSY 1259 RTS 1260 HDSPCH INY 1261 LDA (CPT),Y 1262 PHA 1263 INY 1264 LDA (CPT),Y 1265 STA WCHAR 1266 PLA 1267 CMP #$70 1268 BEQ HDSTAK 1269 CMP #$7A 1270 BEQ HDLEVZ 1271 CMP #$6C 1272 BEQ HDLEV 1273 INC PSX 1274 RTS 1275 HDLEVZ SEC 1276 LDA PSY 1277 SBC WCHAR 1278 CLC 1279 ADC #$6D 1280 STA PSY 1281 LDA #$00 1282 STA LEVL 1283 RTS 1284 HDLEV SEC 1285 LDA WCHAR 1286 SBC #$6D 1287 STA WCHAR 1288 LDA LEVL 1289 SEC 1290 SBC WCHAR 1291 CLC 1292 ADC PSY 1293 STA PSY 1294 LDA WCHAR 1295 STA LEVL 1296 RTS 1297 HDSTAK LDA WCHAR 1298 CMP #$75 1299 BEQ PUSH 1300 CMP #$76 1301 BEQ PUSH 1302 CMP #$77 1303 BEQ PUSHRD 1304 CMP #$78 1305 BEQ PUSH 1306 CMP #$6F 1307 BEQ POP 1308 CMP #$71 1309 BEQ RPOP 1310 CMP #$73 1311 BEQ SWAPS0 1312 CMP #$74 1313 BEQ SWAPT0 1314 CMP #$62 1315 BEQ BACK 1316 CMP #$66 1317 BEQ FRCLN0 1318 RTS 1319 FRCLN0 JMP FRCLN 1320 SWAPS0 JMP SWAPS 1321 SWAPT0 JMP SWAPT 1322 BACK DEC PSX 1323 RTS 1324 PUSHRD INC RADPT 1325 INC RADPT 1326 PHA 1327 LDX RADPT 1328 LDA PSY 1329 STA RADSK,X 1330 STA RADSK+1,X 1331 PLA 1332 PUSH STA KIND 1333 LDX STACKP 1334 LDA PSX 1335 STA STACK,X 1336 LDA PSY 1337 STA STACK+1,X 1338 LDA LEVL 1339 STA STACK+2,X 1340 LDA KIND 1341 STA STACK+3,X 1342 INCSP CLC 1343 TXA 1344 ADC #$04 1345 STA STACKP 1346 RTS 1347 RPOP JSR POP 1348 LDA TT1 1349 STA PSX 1350 RTS 1351 POP SEC 1352 LDA PSX 1353 STA TT1 1354 LDA PSY 1355 STA TT2 1356 LDX 'P 1357 LDA STACKP 1358 BEQ SERROR 1359 SBC #$04 1360 STA STACKP 1361 TAX 1362 LDA STACK,X 1363 STA PSX 1364 LDA STACK+1,X 1365 STA PSY 1366 LDA STACK+2,X 1367 STA LEVL 1368 LDA STACK+3,X 1369 STA KIND 1370 CMP #$77 1371 BEQ RADFN0 1372 RTS 1373 RADFN0 JMP RADFN 1374 SERROR STX WHISKY 1375 SERRS LDX 'S 1376 PLA 1377 PLA 1378 PLA 1379 PLA 1380 RTS 1381 SWAPS LDA #$76 1382 BNE SWAP 1383 SWAPT LDA #$75 1384 SWAP LDX STACKP 1385 DEX 1386 DEX 1387 DEX 1388 DEX 1389 XB CMP STACK+3,X 1390 BEQ SW1 1391 DEX 1392 DEX 1393 DEX 1394 DEX 1395 BMI SERRS 1396 BPL XB 1397 SW1 LDA PSX 1398 STA T1 1399 LDA STACK,X 1400 STA PSX 1401 LDA T1 1402 STA STACK,X 1403 LDA PSY 1404 STA T1 1405 LDA STACK+1,X 1406 STA PSY 1407 LDA T1 1408 STA STACK+1,X 1409 LDA LEVL 1410 STA T1 1411 LDA STACK+2,X 1412 STA LEVL 1413 LDA T1 1414 STA STACK+2,X 1415 RTS 1416 FRCLN LDA PSX 1417 STA T1 1418 LDA PSY 1419 STA T2 1420 JSR POP 1421 LDX 'F 1422 LDA KIND 1423 CMP #$76 1424 BNE SERROR 1425 LDA PSX 1426 CMP T1 1427 BCC FR1 1428 STA T1 1429 FR1 JSR POP 1430 LDX 'F 1431 LDA KIND 1432 CMP #$76 1433 BEQ FR5 1434 JMP SERROR 1435 FR5 SEC 1436 LDA T1 1437 SBC PSX 1438 CMP #$05 1439 BCC FR2 1440 INC T1 1441 FR2 LDX T1 1442 DEX 1443 LDY PSY 1444 INY 1445 INY 1446 STY PSY 1447 JSR LINE 1448 LDY PSY 1449 DEY 1450 DEY 1451 STY PSY 1452 INC PSX 1453 RTS 1454 LINE0 LDA T3 1455 STA PSX 1456 RTS 1457 LINE STX T3 1458 LDA FLAG 1459 BEQ LINE0 1460 LDA #$6D 1461 STA WALF 1462 LDA #$76 1463 STA WCHAR 1464 JSR LOCATE 1465 DEC PSX 1466 LINELP INC PSX 1467 JSR CHPLOT 1468 LDA PSX 1469 CMP T3 1470 BNE LINELP 1471 RTS 1472 RADSET LDX RADPT 1473 YR0 LDA PSY 1474 CMP RADSK,X 1475 BCS YR1 1476 STA RADSK,X 1477 YR1 CMP RADSK+1,X 1478 BCC YR2 1479 STA RADSK+1,X 1480 YR2 DEX 1481 DEX 1482 BPL YR0 1483 RTS 1484 RADFN LDA PSY 1485 STA T4 1486 LDX RADPT 1487 LDA RADSK+1,X 1488 STA PSY 1489 LDA FLAG 1490 BEQ RDF0 1491 LDA #$6D 1492 STA WALF 1493 LDA #$72 1494 STA WCHAR 1495 JSR LOCATE 1496 JSR CHPLOT 1497 LDA PSY 1498 STA T3 1499 RDF0 LDX RADPT 1500 LDA RADSK,X 1501 SEC 1502 SBC #$03 1503 STA PSY 1504 STA TT2 1505 DEC RADPT 1506 DEC RADPT 1507 JSR RADSET 1508 JSR VERBAR 1509 LDX TT1 1510 INC PSX 1511 DEX 1512 LDA TT2 1513 STA PSY 1514 JSR LINE 1515 LDA T4 1516 STA PSY 1517 LDA TT1 1518 STA PSX 1519 RTS 1520 VERBAR LDA FLAG 1521 BEQ VBR0 1522 INC PSY 1523 VERLP SEC 1524 LDA T3 1525 SBC PSY 1526 CMP #$04 1527 BCC VBR0 1528 LDA #$6D 1529 STA WALF 1530 LDA #$77 1531 STA WCHAR 1532 JSR LOCATE 1533 JSR CHPLOT 1534 CLC 1535 LDA PSY 1536 ADC #$04 1537 STA PSY 1538 JMP VERLP 1539 VBR0 RTS 1540 RADSK DFS $20 1541 STACK DFS $40 1542 BUFSK DFS $60 1543 END !