The Main translation module Grade 2 to inkprint Nemeth to display math notation Nemeth to verbal stream Executes in $7200 Z06 pointer to translation table entry Z1C pointer to current data Z1A pointer to end of data Grade to table loaded at $2000 Nemeth table (display or verbal) loaded at $3000 Pointer to current table is WTABLE at $94F2 Table is divided into subtables - 1 for each starting character. A table ATBL points to the different subtable. It is recalculated in ATBIN each time you switch translation tables literary to math and vice versa WORD searches and executes a substitution ( a very misleading name for a routine) !L 1 ORG $7200 2 OBJ $800 3 ; 4 ;---->>> MOD13 5 ; 05/15/89 6 ; 7 NLS 8 Z06 EPZ $06 9 Z1A EPZ $1A 10 Z1C EPZ $1C 11 LTABLE EQU $2000 12 MTABLE EQU $3000 13 BUF EQU $8200 14 BELL EQU $FBDD 15 ABLOC EQU $1E4E 16 WTABLE EQU $94F2 17 ALFLAG EQU $94D0 18 STACKP EQU ALFLAG+$12 19 ZERFLG EQU $94F1 20 ; 21 JMP START 22 ; 23 SIZE HEX 0000 24 MOVE HEX 00 25 HOLD HEX 20 26 QUIT RTS 27 SHOLD HEX 00 28 BEFORE HEX 00 29 TARG HEX 00 30 CAPXXX HEX 80 31 CBFLG HEX 00 32 SV/A HEX 00 33 SV/Y HEX 00 34 FORFLG HEX 00 35 LETSGN HEX 00 36 BRCFLG HEX 00 37 MASK HEX 00 38 SHX HEX 00 39 NUM HEX 00 40 VAL1 HEX 00 41 VAL2 HEX 00 42 POLV HEX 606C6DFF 43 ; 44 START JSR BUSY 45 JSR SETUP 46 JSR NOCAP 47 JSR SETUP 48 JSR SETALF 49 JSR ATBIN 50 LDA #$20 51 STA HOLD 52 LOOP JSR ABORT Main loop: has the user pressed escape? 53 JSR CKSIZE is the internal file too big? 54 LDA HOLD current image of what the will be used as "the previous character" 55 STA BEFORE 56 LDY #$00 current character 57 LDA (Z1C),Y 58 CMP #$FF is it end of file? 59 BEQ FIN 60 STA SHOLD put in "save hold" 61 JSR TYPE what type is it? 62 LDA SPT,X 63 STA HOLD hold has a "typical character of that class" 64 CPX #$00 65 BEQ FORCE 66 LDA WTABLE+1 67 CMP /LTABLE 68 BEQ LX7 69 FORCE TXA need to double pointers, since 2 bytes for each entry in ATBIN 70 ASL 71 TAX 72 JSR WORD only for math or space in literary, search based on catagory 73 BCC LX7 74 LDA TARG 75 JSR INC 76 LX7 LDY #$00 77 LDA (Z1C),Y 78 CMP #$20 79 BCS REGON 80 LDA #$7F 81 REGON SBC #$20 calculate correct pointer in ATBIN 82 CMP #$3B 83 BCC REG0 84 SBC #$1A 85 REG0 ASL 86 CLC 87 ADC #$0A 88 TAX 89 JSR WORD execute search for the specific character 90 LDX #$00 91 STX FORFLG 92 BCC L5 93 LDX NUM 94 L5 INX 95 TXA 96 JSR INC 97 JSR SWTAB do we have to swtich tables? 98 LDA HOLD 99 JSR ZCAPS 100 LDA ALFLAG+$2 101 CMP 'H 102 BNE ON7 103 LDA 'C 104 STA ALFLAG+$2 105 ON7 JMP LOOP 106 FIN JMP FINCK 107 SWTAB LDA ALFLAG+1 switch tables lit to math, math to lit 108 CMP 'S 109 BEQ LSET 110 LDA /MTABLE 111 CMP WTABLE+1 112 BEQ LNO 113 STA WTABLE+1 114 LDA #MTABLE 115 STA WTABLE 116 JSR ATBIN 117 LNO RTS 118 LSET LDA /LTABLE 119 CMP WTABLE+1 120 BEQ LNO 121 STA WTABLE+1 122 LDA #LTABLE 123 STA WTABLE 124 JSR ATBIN 125 RTS 126 ; 127 ZCAPS LDA HOLD 128 JSR TYPE 129 CPX #$02 130 BNE ZCAP99 131 SEC 132 SBC #$41 133 ASL 134 TAY 135 LDA DROPTB+1,Y 136 PHA 137 LDA DROPTB,Y 138 PHA 139 ZCAP99 RTS 140 ; 141 ; 142 Z/B LDX #$80 143 STX CBFLG 144 LDX #$20 145 STX HOLD 146 RTS 147 Z/D LDX #$00 148 STX CBFLG 149 LDX #$20 150 STX HOLD 151 RTS 152 Z/T LDX 'N 153 STX ALFLAG+2 154 LDX #$61 155 LDA SHOLD 156 CMP #$2D 157 BNE ZTX 158 LDX #$27 159 ZTX STX HOLD 160 RTS 161 Z/O LDX #$40 162 STX LETSGN 163 LDX #$61 164 STX HOLD 165 RTS 166 Z/R LDX #$40 167 STX BRCFLG 168 LDX '' 169 STX HOLD 170 RTS 171 Z/C LDX 'D 172 LDA ALFLAG+2 173 CMP 'H 174 BEQ Z/DC 175 LDX 'H 176 Z/DC STX ALFLAG+2 177 LDA BEFORE 178 CMP #$23 179 BNE DT2 180 LDA #$61 181 DT2 STA HOLD 182 RTS 183 Z/A LDA 'H 184 STA ALFLAG+2 185 LDA #$40 186 STA LETSGN 187 LDA #$61 188 STA HOLD 189 RTS 190 Z/F LDA #$80 191 STA FORFLG 192 LDA #$61 193 STA HOLD 194 RTS 195 Z/E BRK 196 Z/G BRK 197 Z/H BRK 198 Z/I BRK 199 Z/J BRK 200 Z/K BRK 201 Z/L BRK 202 Z/M BRK 203 Z/N BRK 204 Z/P BRK 205 Z/Q BRK 206 Z/S BRK 207 Z/U BRK 208 Z/V BRK 209 Z/X BRK 210 Z/Y BRK 211 Z/Z BRK 212 ; 213 WORD LDA ATBL,X 214 STA Z06 215 LDA ATBL+1,X 216 STA Z06+1 217 JSR SEARCH 218 BCS REPL 219 LDY #$00 220 LDA (Z1C),Y 221 JSR CAPFIX 222 STA (Z1C),Y 223 CLC 224 RTS 225 REPL LDX #$00 226 REPL0 INY 227 LDA (Z06),Y 228 CMP #$0D 229 BEQ REPL1 230 CMP 'Z 231 BEQ ESC 232 CMP 'F 233 BEQ PFLAG 234 STA TO,X 235 INX 236 BNE REPL0 237 PFLAG STX SHX 238 INY 239 LDA (Z06),Y 240 SEC 241 SBC #$41 242 TAX 243 INY 244 LDA (Z06),Y 245 STA ALFLAG,X 246 LDX SHX 247 JMP REPL0 248 ESC INY 249 LDA (Z06),Y 250 STA HOLD 251 REPL1 LDA #$FF 252 STA TO,X 253 STX TARG 254 CLC 255 TXA 256 SBC NUM 257 TAX 258 JSR SHIFT 259 LDY #$00 260 REPL3 LDA TO,Y 261 BMI REPL2 262 JSR CAPFIX 263 STA (Z1C),Y 264 INY 265 BNE REPL3 266 REPL2 DEY 267 BMI NUMF 268 TYA 269 CMP NUM 270 BCC NUMF 271 STA NUM 272 NUMF SEC 273 RTS 274 ; 275 Z/W LDY #$FF 276 WP INY 277 LDA (Z1C),Y 278 CMP #$FF 279 BNE WP7 280 JMP FIN 281 WP7 CMP #$20 282 BEQ WP9 283 CMP #$0D 284 BNE WP 285 WP9 TYA 286 INC CLC 287 ADC Z1C 288 STA Z1C 289 BCC INCX 290 INC Z1C+1 291 INCX RTS 292 ; 293 SEARCH LDY #$00 294 LDA (Z06),Y 295 CMP #$0D 296 BEQ NIX 297 JSR MATCH 298 BCC NTRY 299 RTS 300 NTRY INY 301 LDA (Z06),Y 302 CMP #$0D 303 BNE NTRY 304 TYA 305 SEC 306 ADC Z06 307 STA Z06 308 BCC SEARCH 309 INC Z06+1 310 BNE SEARCH 311 NIX CLC 312 RTS 313 MATCH LDY #$00 314 LDA #$FF 315 STA NUM 316 LDA (Z06),Y 317 JSR TYPE 318 CPX #$02 319 BNE MT1 320 LDX BEFORE 321 STX TARG 322 MT77 JSR MATCHC 323 BCC NMATCH 324 JSR INC06 325 LDY #$00 326 LDA (Z06),Y 327 CMP 'T 328 BEQ MT77 329 MT1 LDY #$00 330 MT2 LDA (Z1C),Y 331 STA TARG 332 LDA (Z06),Y 333 JSR MATCHC 334 BCC NMATCH 335 INY 336 BNE MT2 337 NMATCH CLC 338 RTS 339 FMATCH SEC 340 RTS 341 MATCHC STA MASK 342 JSR TYPE 343 CPX #$02 344 BEQ CAP 345 STY NUM 346 LDA TARG 347 CMP MASK 348 BNE NMATCH 349 BEQ FMATCH 350 CAP LDA MASK 351 SEC 352 SBC #$41 353 ASL 354 TAX 355 LDA CODETB+1,X 356 PHA 357 LDA CODETB,X 358 PHA 359 LDA TARG 360 JMP TYPE 361 ; 362 ; 363 NN CPX #$03 364 BEQ FMATCH 365 BNE NMATCH 366 BB CPX #$00 367 BEQ FMATCH 368 LDA (Z1C),Y 369 CMP '_ 370 BNE NMATCH 371 INY 372 LDA (Z1C),Y 373 DEY 374 CMP #$20 375 BEQ FMATCH 376 BNE NMATCH 377 QQ CPX #$00 378 BEQ FMATCH 379 CPX #$04 380 BEQ FMATCH 381 LDA TARG 382 CMP '- 383 BEQ FMATCH 384 BNE NMATCH 385 PP CPX #$04 386 BEQ FMATCH 387 BNE NMATCH 388 LL CPX #$01 389 BEQ FMATCH 390 CPX #$02 391 BEQ FMAT 392 BNE NMAT 393 YY JSR LL 394 BCC FMAT 395 BCS NMAT 396 II CPX #$09 397 BEQ FMAT 398 BNE NMAT 399 MM LDA ALFLAG+2 400 BEQ NMAT 401 CMP 'N 402 BEQ NMAT 403 CMP 'H 404 BEQ FMAT 405 BNE QQ 406 GG LDA (Z1C),Y 407 CMP '7 408 BEQ FMAT 409 BNE NMAT 410 FF LDA FORFLG 411 ROL 412 RTS 413 OO LDA LETSGN 414 BNE FMAT 415 BEQ NMAT 416 DD LDA TARG 417 CMP #$61 418 BCC NMAT 419 CMP #$6B 420 BCC FMAT 421 BCS NMAT 422 EE PLA 423 PLA 424 FMAT SEC 425 RTS 426 NMAT CLC 427 RTS 428 SS LDA (Z1C),Y 429 CMP #$73 430 BEQ FMAT 431 BNE NMAT 432 RR LDA BRCFLG 433 BEQ NMAT 434 LDA #$00 435 STA BRCFLG 436 BEQ FMAT 437 HH CMP #$7B 438 BCS NMAT 439 CMP #$61 440 RTS 441 TT INY 442 LDA (Z06),Y 443 SEC 444 SBC #$41 445 TAX 446 LDA ALFLAG,X 447 BNE TTX 448 LDA 'C 449 TTX STA TARG 450 INY 451 LDA (Z06),Y 452 CMP TARG 453 BNE NMAT 454 JSR INC06 455 JSR INC06 456 SEC 457 RTS 458 WW LDA (Z1C),Y 459 CMP 'o 460 BEQ NMAT 461 CMP '[ 462 BEQ NMAT 463 CMP '3 464 BEQ NMAT 465 CMP '* 466 BEQ NMAT 467 CMP '. 468 BNE FMAT 469 INY 470 LDA (Z1C),Y 471 CMP '* 472 BEQ NMAT 473 BNE FMAT 474 JJ CMP #$23 475 BEQ FMAT 476 CMP #$30 477 BCC NMAT 478 CMP #$3B 479 BCS NMAT 480 BCC FMAT 481 KK LDA (Z1C),Y 482 STA VAL1 483 INY 484 LDA (Z1C),Y 485 STA VAL2 486 DEY 487 LDX #$06 488 KKLP LDA KTAB1,X 489 CMP VAL1 490 BNE NOKK 491 LDA KTAB2,X 492 CMP VAL2 493 BEQ FMAT8 494 NOKK DEX 495 BPL KKLP 496 BMI NMAT8 497 KTAB1 ASC '__@@@..' 498 KTAB2 ASC '".%:++%' 499 ; 500 NMAT8 CLC 501 RTS 502 FMAT8 SEC 503 RTS 504 ; 505 XXM INC VAL2 506 BNE XXL 507 XX STY VAL1 508 STY VAL2 509 XXL LDY VAL2 510 LDA (Z1C),Y 511 CMP '. 512 BEQ XXM 513 LDY VAL1 514 CMP '< 515 BEQ FMAT8 516 CMP '> 517 BEQ FMAT8 518 CMP '] 519 BEQ FMAT8 520 BNE NMAT8 521 INC06 INC Z06 522 BNE INC06X 523 INC Z06+1 524 INC06X RTS 525 ; 526 AA BRK 527 CC BRK 528 UU BRK 529 VV BRK 530 ZZ BRK 531 ; 532 ; 533 SETUP LDA #BUF 534 STA Z1C 535 LDA /BUF 536 STA Z1C+1 537 RTS 538 SETALF LDA ZERFLG 539 BNE SET00 540 LDY #$19 541 SR5 STA ALFLAG,Y 542 DEY 543 BPL SR5 544 LDA #$80 545 STA ZERFLG 546 SET00 RTS 547 NOCAP LDY #$00 548 NOCAP0 LDA (Z1C),Y 549 CMP #$FF 550 BEQ NOCAP9 551 AND #$7F 552 CMP #$7F 553 BEQ NOCAP2 554 CMP #$60 555 BEQ NOCAP1 556 CMP #$7B 557 BCS NOCAP1 558 CMP #$5B 559 BCS NOCAP2 560 CMP #$41 561 BCC NOCAP2 562 CLC 563 ADC #$40 564 NOCAP1 SEC 565 SBC #$20 566 STA (Z1C),Y 567 NOCAP2 INY 568 BNE NOCAP0 569 INC Z1C+1 570 BNE NOCAP0 571 NOCAP9 RTS 572 CAPFIX CMP #$00 573 BEQ CAPF0 574 JSR TYPE 575 CPX #$00 576 BNE SKP/SO 577 STX LETSGN 578 SKP/SO LDX ALFLAG+2 579 BEQ CAPF0 580 CPX 'N 581 BEQ CAPF0 582 CPX 'H 583 BEQ CAPF0 584 JSR TYPE 585 CPX #$00 586 BNE CAPF2 587 LDX 'N 588 STX ALFLAG+$2 589 BNE CAPF0 590 CAPF2 CMP #$61 591 BCC CAPF1 592 SBC #$20 593 CAPF1 LDX ALFLAG+$2 594 CPX 'C 595 BNE CAPF0 596 LDX 'N 597 STX ALFLAG+$2 598 CAPF0 RTS 599 BUSY LDY #$00 600 BUSYLP LDA BUSYLT,Y 601 STA $400,Y 602 INY 603 CPY #$0A 604 BNE BUSYLP 605 RTS 606 BUSYLT ASC "tixing ..." 607 INSERT PHA 608 LDX #$01 609 JSR SHIFT 610 LDY #$00 611 PLA 612 STA (Z1C),Y 613 LDA #$01 614 JSR INC 615 RTS 616 SHIFT CLC 617 LDA $C030 618 LDA SIZE 619 ADC #BUF 620 STA Z1A 621 LDA SIZE+1 622 ADC /BUF 623 STA Z1A+1 624 TXA 625 STA MOVE 626 BMI SHIFTB 627 BNE SHIFTF 628 RTS 629 SHIFTF LDY #$00 630 LDA (Z1A),Y 631 LDY MOVE 632 STA (Z1A),Y 633 LDA Z1A 634 BNE SHF2 635 DEC Z1A+1 636 SHF2 DEC Z1A 637 LDA Z1A 638 CMP Z1C 639 BNE SHIFTF 640 LDA Z1A+1 641 CMP Z1C+1 642 BNE SHIFTF 643 LDY #$00 644 LDA (Z1C),Y 645 LDY MOVE 646 STA (Z1C),Y 647 CLC 648 LDA SIZE 649 ADC MOVE 650 STA SIZE 651 BCC SHF3 652 INC SIZE+1 653 SHF3 RTS 654 SHIFTB LDY NUM 655 LDA #$00 656 SHB1 STA (Z1C),Y 657 DEY 658 BPL SHB1 659 RTS 660 ABORT LDA $C000 661 BMI AB2 662 AB3 RTS 663 AB2 CMP #$9B 664 BNE AB3 665 ABC STA ABLOC 666 LDX $C010 667 PLA 668 PLA 669 RTS 670 ; 671 CKSIZE LDX SIZE+1 672 CPX #$12 673 BNE SIZEOK 674 LDY #$00 675 LDA (Z1C),Y 676 PHA 677 LDA #$FE 678 STA (Z1C),Y 679 JSR FINCK 680 JSR SETUP 681 LDY #$00 682 CKLP LDA (Z1C),Y 683 CMP #$FE 684 BEQ CKOK 685 INC Z1C 686 BNE CKLP 687 INC Z1C+1 688 BNE CKLP 689 CKOK PLA 690 STA (Z1C),Y 691 SIZEOK RTS 692 FINCK JSR PACK 693 LDA SIZE+1 694 CMP #$12 695 BCC SIZEOK 696 ; 697 PLA 698 LDX $C010 699 SOUND TXA 700 LDY #$06 701 INNER ROL 702 PHA 703 BCC SKSH 704 TYA 705 JSR $FCA8 706 LDA $C030 707 SKSH PLA 708 INY 709 CPY #$0E 710 BNE INNER 711 INX 712 BNE SOUND 713 LDA $C000 714 BPL SOUND 715 PLA 716 PLA 717 JMP ABC 718 ; 719 PACK JSR SETUP 720 LDA #BUF 721 STA Z06 722 LDA /BUF 723 STA Z06+1 724 P1 LDY #$00 725 LDA (Z1C),Y 726 BEQ P2 727 STA (Z06),Y 728 CMP #$FF 729 BEQ P3 730 JSR INC06 731 P2 LDA #$01 732 JSR INC 733 JMP P1 734 P3 SEC 735 LDA Z06 736 SBC #BUF 737 STA SIZE 738 LDA Z06+1 739 SBC /BUF 740 STA SIZE+1 741 INC SIZE 742 BNE FINX 743 INC SIZE+1 744 FINX LDA 'S 745 CMP ALFLAG 746 BEQ GH0 747 CMP ALFLAG+7 748 BNE FINX0 749 GH0 LDY #$03 750 GH LDA POLV,Y 751 STA (Z06),Y 752 DEY 753 BPL GH 754 FINX0 RTS 755 ATBIN LDX #$00 build ATBL, searching for double returns 756 LDA WTABLE 757 STA Z06 758 STA ATBL,X 759 LDA WTABLE+1 760 STA Z06+1 761 STA ATBL+1,X 762 ATBLP LDY #$00 763 LDA (Z06),Y 764 CMP #$0D 765 BEQ AT1 766 AT2 JSR INC06 767 JMP ATBLP 768 AT1 INY 769 LDA (Z06),Y 770 CMP #$0D 771 BNE AT2 772 JSR INC06 773 JSR INC06 774 INX 775 INX 776 LDA Z06 777 STA ATBL,X 778 LDA Z06+1 779 STA ATBL+1,X 780 CPX #$96 781 BNE ATBLP 782 RTS 783 TYPE LDX WTABLE+1 784 CPX /LTABLE 785 BNE TP 786 JMP TYPE2 787 TP PHA 788 AND #$7F 789 TAX 790 LDA TTYPE,X 791 TAX 792 PLA 793 RTS 794 ; 795 TTYPE HEX 0000000000000000 796 HEX 0000000000000000 797 HEX 0000000000000000 798 HEX 0000000000000000 799 HEX 0004040404040404 800 HEX 0404040404040404 801 HEX 0303030303030303 802 HEX 0303040404040404 803 HEX 0402020202020202 804 HEX 0202020202020202 805 HEX 0202020202020202 806 HEX 0202020404040404 807 HEX 0401010101010101 808 HEX 0101010101010101 809 HEX 0101010101010101 810 HEX 0101010404040400 811 SPT HEX 2061412327 812 STOP HEX 20406E20 813 TYPE2 AND #$7F 814 STA SV/A 815 STY SV/Y 816 TAX 817 LDA TTYPE2,X 818 BMI TYPEC 819 TAX 820 LDA SV/A 821 RTS 822 TYPEC CPX #$34 823 BEQ INITST 824 TYPEX INY 825 TYPEXX LDA (Z1C),Y 826 AND #$7F 827 TAX 828 LDA TTYPE2,X 829 BMI TYPEX 830 BEQ TYPEY 831 CMP #$04 832 BEQ TYPEY 833 TYPELT LDX #$01 834 BNE TYPEZ 835 TYPEY LDX #$04 836 TYPEZ LDY SV/Y 837 LDA SV/A 838 RTS 839 INITST INY 840 LDA (Z1C),Y 841 CMP ', 842 BEQ INITST 843 AND #$7F 844 TAX 845 LDA TTYPE2,X 846 CMP #$01 847 BNE TYPEXX 848 INY 849 LDA (Z1C),Y 850 CMP #$34 851 BNE TYPELT 852 LDX #$09 853 BNE TYPEZ 854 ; 855 TTYPE2 HEX 0000000000000000 856 HEX 0000000000000000 857 HEX 0000000000000000 858 HEX 0000000000000000 859 HEX 0001010301010104 860 HEX 0101010101010101 861 HEX 8080808080018080 862 HEX 8001010101010101 863 HEX 0102020202020202 864 HEX 0202020202020202 865 HEX 0202020202020202 866 HEX 0202020101010101 867 HEX 0101010101010101 868 HEX 0101010101010101 869 HEX 0101010101010101 870 HEX 0101010101010100 871 ; 872 ; 873 ; 874 DROPTB ADR Z/A-1 875 ADR Z/B-1 876 ADR Z/C-1 877 ADR Z/D-1 878 ADR Z/E-1 879 ADR Z/F-1 880 ADR Z/G-1 881 ADR Z/H-1 882 ADR Z/I-1 883 ADR Z/J-1 884 ADR Z/K-1 885 ADR Z/L-1 886 ADR Z/M-1 887 ADR Z/N-1 888 ADR Z/O-1 889 ADR Z/P-1 890 ADR Z/Q-1 891 ADR Z/R-1 892 ADR Z/S-1 893 ADR Z/T-1 894 ADR Z/U-1 895 ADR Z/V-1 896 ADR Z/W-1 897 ADR Z/X-1 898 ADR Z/Y-1 899 ADR Z/Z-1 900 ; 901 CODETB ADR AA-1 902 ADR BB-1 903 ADR CC-1 904 ADR DD-1 905 ADR EE-1 906 ADR FF-1 907 ADR GG-1 908 ADR HH-1 909 ADR II-1 910 ADR JJ-1 911 ADR KK-1 912 ADR LL-1 913 ADR MM-1 914 ADR NN-1 915 ADR OO-1 916 ADR PP-1 917 ADR QQ-1 918 ADR RR-1 919 ADR SS-1 920 ADR TT-1 921 ADR UU-1 922 ADR VV-1 923 ADR WW-1 924 ADR XX-1 925 ADR YY-1 926 ADR ZZ-1 927 ; 928 ; 929 XXX BRK 930 TO DFS $50 931 ATBL DFS $A0 932 ; 933 ; 934 END !A **END OF PASS 1 **END OF PASS 2 7200 1 ORG $7200 7200 2 OBJ $800 7200 3 ; 7200 4 ;---->>> MOD13 7200 5 ; 05/15/89 7200 6 ; 934 END ***** END OF ASSEMBLY ************************* * * * SYMBOL TABLE -- V 1.5 * * * ************************* LABEL. LOC. LABEL. LOC. LABEL. LOC. ** ZERO PAGE VARIABLES: Z06 0006 Z1A 001A Z1C 001C ** ABSOLUTE VARABLES/LABELS LTABLE 2000 MTABLE 3000 BUF 8200 BELL FBDD ABLOC 1E4E WTABLE 94F2 ALFLAG 94D0 STACKP 94E2 ZERFLG 94F1 SIZE 7203 MOVE 7205 HOLD 7206 QUIT 7207 SHOLD 7208 BEFORE 7209 TARG 720A CAPXXX 720B CBFLG 720C SV/A 720D SV/Y 720E FORFLG 720F LETSGN 7210 BRCFLG 7211 MASK 7212 SHX 7213 NUM 7214 VAL1 7215 VAL2 7216 POLV 7217 START 721B LOOP 7232 FORCE 725D LX7 726B REGON 7275 REG0 727D L5 728F ON7 72A9 FIN 72AC SWTAB 72AF LNO 72C8 LSET 72C9 ZCAPS 72DC ZCAP99 72F3 Z/B 72F4 Z/D 72FF Z/T 730A ZTX 731A Z/O 731E Z/R 7329 Z/C 7334 Z/DC 733F DT2 734B Z/A 734F Z/F 735F Z/E 736A Z/G 736B Z/H 736C Z/I 736D Z/J 736E Z/K 736F Z/L 7370 Z/M 7371 Z/N 7372 Z/P 7373 Z/Q 7374 Z/S 7375 Z/U 7376 Z/V 7377 Z/X 7378 Z/Y 7379 Z/Z 737A WORD 737B REPL 7395 REPL0 7397 PFLAG 73AC ESC 73C2 REPL1 73C8 REPL3 73DB REPL2 73E8 NUMF 73F4 Z/W 73F6 WP 73F8 WP7 7402 WP9 740A INC 740B INCX 7414 SEARCH 7415 NTRY 7423 NIX 7436 MATCH 7438 MT77 744E MT1 745E MT2 7460 NMATCH 746F FMATCH 7471 MATCHC 7473 CAP 748A NN 74A0 BB 74A6 QQ 74BA PP 74CB LL 74D1 YY 74DB II 74E2 MM 74E8 GG 74F7 FF 74FF OO 7504 DD 750B EE 7518 FMAT 751A NMAT 751C SS 751E RR 7526 HH 7532 TT 7539 TTX 7547 WW 755A JJ 7579 KK 7587 KKLP 7595 NOKK 75A5 KTAB1 75AA KTAB2 75B1 NMAT8 75B8 FMAT8 75BA XXM 75BC XX 75C1 XXL 75C7 INC06 75E1 INC06X 75E7 AA 75E8 CC 75E9 UU 75EA VV 75EB ZZ 75EC SETUP 75ED SETALF 75F6 SR5 75FD SET00 7608 NOCAP 7609 NOCAP0 760B NOCAP1 762A NOCAP2 762F NOCAP9 7636 CAPFIX 7637 SKP/SO 7645 CAPF2 7660 CAPF1 7666 CAPF0 7672 BUSY 7673 BUSYLP 7675 BUSYLT 7681 INSERT 768B SHIFT 769C SHIFTF 76B7 SHF2 76C6 SHF3 76EC SHIFTB 76ED SHB1 76F2 ABORT 76F8 AB3 76FD AB2 76FE ABC 7702 CKSIZE 770B CKLP 7723 CKOK 7731 SIZEOK 7734 FINCK 7735 SOUND 7743 INNER 7746 SKSH 7751 PACK 7764 P1 776F P2 777E P3 7786 FINX 779D GH0 77A9 GH 77AB FINX0 77B3 ATBIN 77B4 ATBLP 77C6 AT2 77CE AT1 77D4 TYPE 77F2 TP 77FC TTYPE 7806 SPT 7886 STOP 788B TYPE2 788F TYPEC 78A2 TYPEX 78A6 TYPEXX 78A7 TYPELT 78B7 TYPEY 78BB TYPEZ 78BD INITST 78C4 TTYPE2 78E0 DROPTB 7960 CODETB 7994 XXX 79C8 TO 79C9 ATBL 7A19 SYMBOL TABLE STARTING ADDRESS:6000 SYMBOL TABLE LENGTH:0682 !CATALOG CATALOG AMDOS 3.5 FS=156000000 Q( ``W^@^ekX\lcl@^dekX\lcl@^ddlZ A 002 HELLO *B 003 MXFLS *B 043 ASM.CODE B 002 SLOT2 B 004 AUXDO.ASM B 006 SEARCH.ASM B 027 EDITSHAPES.ASM B 007 ELEC.ASM B 061 KEY.ASM B 012 MINPUT.ASM B 015 NEWCHAR B 003 UNLINK.ASM B 002 UNLINK B 065 DISP.ASM B 015 MOD17 B 006 IMPRINT.ASM B 003 IMPRINT B 028 OUTVOICE.ASM B 036 MTRAN.ASM !LOAD OUTVOICE.ASM BLOAD OUTVOICE.ASM,A$1800 !L 1 ORG $7200 2 OBJ $800 3 ; 4 ;-------->>> MOD19 5 ; 06/28/89 6 ; 7 NLS 8 TALK EQU $2000 9 ERRM EQU $3000 10 VEC EQU $3C00 11 ST EQU $8200 12 EXMODE EQU $94F0 13 VMODE EQU $94F6 14 MODE EQU $94F7 15 BELL EQU $FBDD 16 ABOR\F EQU $1E4E 17 ; 18 Z08 EPZ $08 19 Z0A EPZ $0A 20 Z1C EPZ $1C 21 ; 22 JMP OUTPUT 23 HEX 0000 24 HEX 0000 ;KEEP THESE BLANK 25 JMP RESET 26 ; 27 PARAM HEX 00 28 STACKP HEX 00 29 OFFSET HEX 00 30 MESS HEX 00 31 WIDTH HEX 80 32 YPOS HEX 00 33 XPOS HEX 00 34 BFPT HEX 00 35 DOLLFG HEX 00 36 YSAV HEX 00 37 ASAV HEX 00 38 FISH HEX 00 39 PARNUM HEX 00 40 ASC1 HEX 00 41 ASC2 HEX 00 42 STK/AB HEX 00 43 ; 44 OUTPUT JSR SETUP 45 TSX 46 STX STK/AB 47 LOOP JSR ABORT 48 JSR LITPAR 49 LDY #$00 50 LDA (Z1C),Y 51 BEQ SKIP 52 CMP #$FF 53 BEQ LOOP0 54 CMP #$0D 55 BEQ DOCR 56 CMP #$0C 57 BEQ DOFF 58 CMP #$0A 59 BEQ SKIP 60 CMP #$60 61 BEQ ACCNT 62 JSR DOLLDO 63 LDX MODE 64 BEQ MATH 65 LDX #$00 66 STX DOLLFG 67 BEQ REG 68 MATH CMP '~ 69 BEQ TILDA 70 CMP '* 71 BEQ START 72 CMP #$20 73 BEQ SPACE 74 ORDIN JSR PRINT 75 LDA #$20 76 REG JSR PRINT 77 SKIP JSR INCCT 78 JMP LOOP 79 SPACE LDA #$00 80 STA DOLLFG 81 JSR CKSPC 82 BEQ SKIP 83 JSR LITER 84 JSR INCCT 85 JMP LOOP 86 ; 87 DOCR LDA '1 88 BNE DOFF1 89 DOFF LDA '3 90 DOFF1 STA ASC2 91 LDA 'a 92 STA ASC1 93 LDA #$20 94 JSR PRINT 95 JSR ZERO 96 JSR TIL/FC 97 LDA #$00 98 STA DOLLFG 99 JMP SKIP 100 LOOP0 JSR ZERO 101 FINAL LDA #$8D 102 JSR PRINT 103 JSR PRINT 104 LDA #$00 105 STA $AA52 106 RTS 107 ; 108 ACCNT JSR ACNTDO 109 JSR INC3 110 LDY #$00 111 LDA (Z1C),Y 112 CMP #$20 113 BNE SK/INC 114 JSR INCCT 115 SK/INC JMP LOOP 116 TILDA JSR TILDO 117 JSR INC3 118 JMP LOOP 119 START LDX DOLLFG 120 BNE ORDIN 121 JSR STARDO 122 JSR INC3 123 JMP LOOP 124 ; 125 LITPAR LDA MODE 126 BEQ LITP0 127 LDY #$00 128 LDA (Z1C),Y 129 CMP '$ 130 BNE LITP0 131 LDY #$02 132 LDA (Z1C),Y 133 CMP #$20 134 BNE LITP0 135 DEY 136 LDA (Z1C),Y 137 CMP 'l 138 BEQ LINEX 139 CMP 'f 140 BEQ LINEX 141 CMP 'p 142 BNE LITP0 143 JSR ZERO 144 INC PARNUM 145 LITP0 RTS 146 LINEX JMP ZERO 147 SETUP LDX #$50 148 LDA $C01F 149 AND #$80 150 BMI SETS 151 LDX #$28 152 SETS STX WIDTH 153 LDA $25 154 STA YPOS 155 LDA #TALK 156 STA Z08 157 LDA /TALK 158 STA Z08+1 159 LDA #VEC 160 STA Z0A 161 LDA /VEC 162 STA Z0A+1 163 LDA #ST 164 STA Z1C 165 LDA /ST 166 STA Z1C+1 167 LDY #$00 168 STY STACKP 169 STY XPOS 170 STY PARNUM 171 SETLP LDY #$00 172 LDA (Z08),Y 173 CMP #$7F 174 BEQ SETDON 175 LDA Z08 176 STA (Z0A),Y 177 LDA Z08+1 178 INY 179 STA (Z0A),Y 180 INC Z0A 181 INC Z0A 182 BNE SETQQ 183 INC Z0A+1 184 SETQQ DEY 185 SETILP INY 186 LDA ($08),Y 187 CMP #$7F 188 BNE SETILP 189 INY 190 CLC 191 TYA 192 ADC Z08 193 STA Z08 194 BCC SETLP 195 INC Z08+1 196 BNE SETLP 197 SETDON RTS 198 ; 199 INC3 JSR INCCT 200 JSR INCCT 201 INCCT INC Z1C 202 BNE INCT0 203 INC Z1C+1 204 INCT0 RTS 205 ; 206 ; 207 TILDO LDY #$01 208 LDA (Z1C),Y 209 STA ASC1 210 INY 211 LDA (Z1C),Y 212 STA ASC2 213 TIL/FC LDA #$0F 214 STA Z0A+1 215 LDA ASC1 216 JSR STRIP 217 ASL 218 ASL 219 ASL 220 ASL 221 ROL Z0A+1 222 ASL 223 ROL Z0A+1 224 STA Z0A 225 LDA ASC2 226 JSR STRIP 227 ASL 228 ORA Z0A 229 STA Z0A 230 LDY #$00 231 LDA (Z0A),Y 232 PHA 233 INY 234 LDA (Z0A),Y 235 STA Z0A+1 236 PLA 237 STA Z0A 238 LDY #$00 239 TILP LDA ($0A),Y 240 CMP #$7F 241 BEQ TIL00 242 JSR PRINT 243 INY 244 BNE TILP 245 TIL00 LDA #$20 246 JMP PRINT 247 ; 248 ; 249 STRIP CMP #$60 250 BCC STR0 251 SBC #$60 252 CLC 253 ADC #$09 254 RTS 255 STR0 AND #$0F 256 RTS 257 STARDO INY 258 LDA (Z1C),Y 259 TAX 260 INY 261 LDA (Z1C),Y 262 STA PARAM 263 LDY STACKP 264 CPX 'p 265 BEQ PUSH 266 CPX 't 267 BEQ TEST 268 CPX 'f 269 BEQ FLUSH 270 CPX 'c 271 BEQ CHANGE 272 CPX 'o 273 BEQ POP 274 CPX 'z 275 BEQ ZERO 276 CPX 'a 277 BEQ ALTERN 278 CPX 'i 279 BEQ INCPAR 280 CPX 's 281 BEQ SEAR00 282 BRK ;ERROR !!! 283 SEAR00 JMP SEARCH 284 INCPAR INC PARNUM 285 RTS 286 PUSH STA STACK,Y 287 INY 288 STY STACKP 289 RTS 290 TEST LDA PARAM 291 LDY STACKP 292 BMI ZERO0 293 CPY #$00 294 BEQ TESTE 295 CMP STACK-1,Y 296 BEQ TEST0 297 LDA STACK-1,Y 298 LDX #$11 299 JSR ERROR 300 JSR RPOP 301 JMP TEST 302 TESTE LDX #$01 303 JSR ERROR 304 LDX #$80 305 RTS 306 TEST0 LDX #$00 307 RTS 308 FLUSH JSR TEST 309 JMP RPOP 310 CHANGE STA STACK-1,Y 311 RTS 312 POP CMP '] 313 BEQ TERM 314 RPOP LDY STACKP 315 BEQ POP0 316 DEY 317 STY STACKP 318 POP0 RTS 319 ZERO LDY STACKP 320 BMI ZERO0 321 LDA STACK-1,Y 322 CPY #$00 323 BEQ ZERO0 324 LDX #$11 325 JSR ERROR 326 JSR RPOP 327 JMP ZERO 328 ZERO0 LDY #$00 329 STY STACKP 330 RTS 331 ALTERN AND #$07 332 TAX 333 LDA ALTB,X 334 XOR #$01 335 STA ALTB,X 336 LDY #$02 337 ORA #$30 338 STA (Z1C),Y 339 LDA #$35 340 DEY 341 STA (Z1C),Y 342 JMP TILDO 343 ; 344 SEARCH AND #$03 345 TAX 346 LDY STACKP 347 BEQ SEAR0 348 SEARLP LDA STACK-1,Y 349 CMP LIST,X 350 BEQ SEARBD 351 CMP LIST+8,X 352 BEQ SEARBD 353 DEY 354 BNE SEARLP 355 SEAR0 RTS 356 SEARBD LDY STACKP 357 CPY #$01 358 BNE SEARB0 359 DEC STACKP 360 SEARB0 LDA LIST,X 361 LDX #$38 362 JMP ERROR 363 TERM CPY #$00 364 BEQ EXTERM 365 LDA STACK-1,Y 366 JSR KEY 367 CPX #$80 368 BNE TERM1 369 JSR TMERR 370 RTS 371 TERM1 CLC 372 ADC #$21 373 JSR LITER 374 JMP RPOP 375 EXTERM LDA '% 376 LDX #$01 377 BNE ERROR 378 TMERR LDX #$21 379 LDY STACKP 380 LDA STACK-1,Y 381 ERROR STX OFFSET 382 PHA 383 LDY #$00 384 STY $1E51 385 STY VMODE 386 JSR HIGH 387 JSR DO/LIN 388 LDA #$33 389 JSR LITER 390 PLA 391 JSR KEY 392 ADC OFFSET 393 JSR LITER 394 LDA #$34 395 JSR LITER 396 LDY #$00 397 ERCHLP LDA $2E0,Y 398 BEQ ERCH0 399 JSR PRINT 400 INY 401 BNE ERCHLP 402 ERCH0 LDA #$35 403 JSR LITER 404 LDA $2FF 405 JSR DIGTWO 406 LDA #$36 407 JSR LITER 408 LDA PARNUM 409 JSR DIGTWO 410 JSR DO/LIN 411 JMP LOW 412 DIGTWO LDX #$00 413 NUM2 CMP #$0A 414 BCC NUM1 415 SBC #$0A 416 INX 417 BNE NUM2 418 NUM1 PHA 419 TXA 420 BEQ NUM3 421 ORA #$B0 422 JSR PRINT 423 NUM3 PLA 424 ORA #$B0 425 JMP PRINT 426 ; 427 KEY LDY #$1F 428 KEY1 CMP LIST,Y 429 BEQ KEY0 430 DEY 431 BPL KEY1 432 KEY0 CLC 433 LDX TERMTB,Y 434 TYA 435 RTS 436 ; 437 DOLLDO CMP '$ 438 BNE DOLL0 439 INY 440 LDA (Z1C),Y 441 CMP '$ 442 BNE DOLL0 443 STA DOLLFG 444 INY 445 LDA (Z1C),Y 446 CMP #$20 447 BEQ DOLL0 448 SEC 449 SBC #$60 450 BCC NOSUP 451 TAX 452 LDA DOLLST,X 453 BEQ DOLL0 454 BMI DOLLVH 455 NOSUP LDA #$37 456 JSR LITER 457 DOLL0 LDY #$00 458 LDA (Z1C),Y 459 RTS 460 DOLLVH INY 461 LDA (Z1C),Y 462 CMP 'h 463 BNE NOSUP 464 INY 465 LDA (Z1C),Y 466 CMP '1 467 BNE NOSUP 468 BEQ DOLL0 469 ACNTDO LDY #$02 470 LDA (Z1C),Y 471 CMP 'l 472 BEQ ACC/L 473 CMP 'n 474 BEQ ACC/N 475 CMP 'c 476 BEQ ACC/M 477 CMP 'd 478 BEQ ACC/P 479 CMP 'm 480 BEQ ACC/LM 481 CMP 'e 482 BEQ SETEXP 483 BRK 484 SETEXP LDA #$80 485 STA EXMODE 486 RTS 487 ACC/L LDA #$80 488 STA MODE 489 ACC/LM RTS 490 ACC/N LDA #$00 491 STA MODE 492 RTS 493 ACC/P LDA #$00 494 STA VMODE 495 RTS 496 ACC/M LDA #$80 497 STA VMODE 498 RTS 499 LITER STA MESS 500 LDA #ERRM 501 STA Z0A 502 LDA /ERRM 503 STA Z0A+1 504 LDY #$00 505 MS1 LDA (Z0A),Y 506 INC Z0A 507 BNE MS2 508 INC Z0A+1 509 MS2 CMP #$7F 510 BNE MS1 511 DEC MESS 512 BNE MS1 513 MESS2 LDA (Z0A),Y 514 CMP #$7F 515 BEQ MS0 516 JSR PRINT 517 INY 518 BNE MESS2 519 MS0 LDA #$20 520 JMP PRINT 521 ; 522 CKSPC LDA #$00 523 STA FISH 524 CKSP1 LDA FISH 525 ASL 526 ASL 527 TAX 528 LDY #$00 529 CKSP2 LDA (Z1C),Y 530 CMP CKTB,X 531 BNE CKSP3 532 INY 533 INX 534 CPY #$04 535 BNE CKSP2 536 LDY #$03 537 LDA (Z1C),Y 538 CMP #$20 539 BEQ CKSP5 540 INY 541 LDA (Z1C),Y 542 CMP #$20 543 BNE CKSP4 544 CKSP5 LDA #$00 545 STA (Z1C),Y 546 CKSP4 LDA #$00 547 RTS 548 CKSP3 INC FISH 549 LDA FISH 550 CMP #$0A 551 BNE CKSP1 552 LDA #$32 553 RTS 554 PRINT STY YSAV 555 LDY VMODE 556 BNE PR/NO 557 STA ASAV 558 ORA #$80 559 JSR CON/ST 560 CMP #$8D 561 BEQ NLINE 562 LDY BFPT 563 INC BFPT 564 STA BUF,Y 565 CMP #$A0 566 BEQ PRSPC 567 PRINT0 LDA ASAV 568 PR/NO LDY YSAV 569 RTS 570 CON/ST CMP #$94 571 BEQ PUTSPC 572 CMP #$93 573 BNE CONST0 574 PUTSPC LDA #$A0 575 CONST0 RTS 576 PRSPC CPY #$00 577 BNE PRSPCX 578 STY BFPT 579 BEQ PRINT0 580 PRSPCX CLC 581 LDA BFPT 582 ADC XPOS 583 CMP WIDTH 584 BCC PFITS 585 JSR PRCR 586 PFITS JSR PRWORD 587 JMP PRINT0 588 NLINE JSR DO/LIN 589 JMP PRINT0 590 ; 591 DO/LIN JSR PRWORD 592 PRCR LDA #$8D 593 JSR PRMON 594 LDA #$00 595 STA XPOS 596 INC YPOS 597 LDA EXMODE 598 BNE PRCR0 599 LDA YPOS 600 CMP #$17 601 BNE PRCR0 602 FULL JSR BEEP 603 LDA ($28),Y 604 JSR $FD18 605 CMP #$9B 606 BNE FULLX 607 JMP ABORTQ 608 FULLX LDA #$00 609 STA YPOS 610 STA $AA52 611 PRCR0 RTS 612 PRWORD LDY BFPT 613 BEQ PRWD0 614 LDY #$00 615 PFTLP LDA BUF,Y 616 CMP #$99 617 BNE REGPR 618 JSR PHONEY 619 JMP PFF2 620 REGPR JSR PRMON 621 PFF2 INY 622 CPY BFPT 623 BNE PFTLP 624 CLC 625 LDA XPOS 626 ADC BFPT 627 STA XPOS 628 LDA #$00 629 STA BFPT 630 PRWD0 RTS 631 PHONEY LDA $1E06 632 BNE PHON0 633 LDA $1E00 634 STA ASC1 635 LDA #$00 636 STA $1E00 637 LDA #$8D 638 JSR PRMON 639 LDA #$8D 640 JSR PRMON 641 LDA ASC1 642 STA $1E00 643 PHON0 RTS 644 ; 645 ; 646 LOW LDA #$00 647 BEQ LOWX 648 HIGH LDA #$10 649 LOWX LDX $1E02 650 BEQ LOW00 651 LDX $1E06 652 BNE LOW00 653 LDX $1E00 654 STX ASC1 655 LDX #$00 656 STX $1E00 657 PHA 658 LDA #$0D 659 JSR PRMON 660 PLA 661 TAX 662 LOWLP LDA $1FE8,X 663 BEQ LOW1 664 JSR PRMON 665 INX 666 BNE LOWLP 667 LOW1 LDA #$0D 668 JSR PRMON 669 LDA ASC1 670 STA $1E00 671 LOW00 RTS 672 VOC/O ORA #$80 673 JMP ($1E80) 674 BEEP LDY #$10 675 DW1 LDA #$30 676 JSR $FCA8 677 LDA $C030 678 DEY 679 BPL DW1 680 RTS 681 ; 682 PARLIT ASC '$p ' 683 LIST ASC 'fchr%u23' 684 ASC 'xyzib+++' 685 DOLLST HEX 00 686 HEX 4040000040404000 687 HEX 0000000000000000 688 HEX 4040000000804040 689 HEX 4040 690 ; 691 ALTB HEX 0101010101010101 692 TERMTB HEX 8080800000000000 693 HEX 8080808080808080 694 CKTB ASC ' ~77 ~47 ~2e ~48' 695 ASC ' ~i2' 696 ASC ' $p $l $f *zL *zN' 697 ; 698 PRMON ORA #$80 699 JMP $FDED 700 ABORT LDA $C000 701 CMP #$9B 702 BNE ABOR0 703 ABORTQ STA ABOR\F 704 LDX $C010 705 LDX STK/AB 706 TXS 707 JMP FINAL 708 ABOR0 RTS 709 RESET LDA ABOR\F 710 BNE ABOR0 711 JSR LOOP0 712 LDA VMODE 713 BNE ABOR0 714 LDA EXMODE 715 BNE ABOR0 716 JMP FULL 717 ; 718 ; 719 ; 720 ; 721 XX HEX 00 722 BUF DFS $80 723 ; 724 STACK DFS $40 725 ; 726 END !