This program outputs the verbal sequence that is translated by MTRANS using the VOTR table. This does to the output just the way DISP.ASM handles the output of the translator if the MOTR table is used. 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 handle special star codes 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 !A **END OF PASS 1 **END OF PASS 2 7200 1 ORG $7200 7200 2 OBJ $800 7200 3 ; 7200 4 ;-------->>> MOD19 7200 5 ; 06/28/89 7200 6 ; 726 END ***** END OF ASSEMBLY ************************* * * * SYMBOL TABLE -- V 1.5 * * * ************************* LABEL. LOC. LABEL. LOC. LABEL. LOC. ** ZERO PAGE VARIABLES: Z08 0008 Z0A 000A Z1C 001C ** ABSOLUTE VARABLES/LABELS TALK 2000 ERRM 3000 VEC 3C00 ST 8200 EXMODE 94F0 VMODE 94F6 MODE 94F7 BELL FBDD ABOR\F 1E4E PARAM 720A STACKP 720B OFFSET 720C MESS 720D WIDTH 720E YPOS 720F XPOS 7210 BFPT 7211 DOLLFG 7212 YSAV 7213 ASAV 7214 FISH 7215 PARNUM 7216 ASC1 7217 ASC2 7218 STK/AB 7219 OUTPUT 721A LOOP 7221 MATH 7250 ORDIN 725C REG 7261 SKIP 7264 SPACE 726A DOCR 727D DOFF 7281 DOFF1 7283 LOOP0 729E FINAL 72A1 ACCNT 72AF SK/INC 72C0 TILDA 72C3 START 72CC LITPAR 72DA LITP0 7304 LINEX 7305 SETUP 7308 SETS 7313 SETLP 733E SETQQ 7357 SETILP 7358 SETDON 736C INC3 736D INCCT 7373 INCT0 7379 TILDO 737A TIL/FC 7387 TILP 73B6 TIL00 73C2 STRIP 73C7 STR0 73D1 STARDO 73D4 SEAR00 7406 INCPAR 7409 PUSH 740D TEST 7415 TESTE 7434 TEST0 743C FLUSH 743F CHANGE 7445 POP 7449 RPOP 744D POP0 7456 ZERO 7457 ZERO0 746E ALTERN 7474 SEARCH 748D SEARLP 7495 SEAR0 74A5 SEARBD 74A6 SEARB0 74B0 TERM 74B8 TERM1 74CA EXTERM 74D3 TMERR 74D9 ERROR 74E1 ERCHLP 7509 ERCH0 7514 DIGTWO 7530 NUM2 7532 NUM1 753B NUM3 7544 KEY 754A KEY1 754C KEY0 7554 DOLLDO 755A NOSUP 757C DOLL0 7581 DOLLVH 7586 ACNTDO 7596 SETEXP 75B3 ACC/L 75B9 ACC/LM 75BE ACC/N 75BF ACC/P 75C5 ACC/M 75CB LITER 75D1 MS1 75DE MS2 75E6 MESS2 75EF MS0 75FB CKSPC 7600 CKSP1 7605 CKSP2 760D CKSP5 7629 CKSP4 762D CKSP3 7630 PRINT 763D PRINT0 765E PR/NO 7661 CON/ST 7665 PUTSPC 766D CONST0 766F PRSPC 7670 PRSPCX 7679 PFITS 7688 NLINE 768E DO/LIN 7694 PRCR 7697 FULL 76B0 FULLX 76BF PRCR0 76C7 PRWORD 76C8 PFTLP 76CF REGPR 76DC PFF2 76DF PRWD0 76F4 PHONEY 76F5 PHON0 7715 LOW 7716 HIGH 771A LOWX 771C LOWLP 7739 LOW1 7744 LOW00 774F VOC/O 7750 BEEP 7755 DW1 7757 PARLIT 7763 LIST 7766 DOLLST 7776 ALTB 7791 TERMTB 7799 CKTB 77A9 PRMON 77D1 ABORT 77D6 ABORTQ 77DD ABOR0 77EA RESET 77EB XX 7800 BUF 7801 STACK 7881 SYMBOL TABLE STARTING ADDRESS:6000 SYMBOL TABLE LENGTH:052A !