NEW AUTO 3,1 *-------------------------------------- * Y = MESSAGE NUMBER *-------------------------------- QT.OUT TXA PHA LDX #0 CLC *---Search for message #--------- .2 JSR GET.NEXT.NYBBLE BNE .4 .3 JSR GET.NEXT.NYBBLE BEQ .3 BNE .2 .4 EOR #$0F BNE .2 DEY BNE .2 *---Print the message------------ .5 JSR GET.NEXT.NYBBLE TAY LDA FIRST.TABLE,Y BNE .6 ...FREQUENT CHAR JSR GET.NEXT.NYBBLE TAY LDA SECOND.TABLE,Y BNE .6 ...TWO NYBBLE CHAR JSR GET.NEXT.NYBBLE TAY LDA THIRD.TABLE,Y .6 BPL .7 ...END OF MESSAGE PHP JSR MY.COUT PLP BMI .5 ...NEXT CHAR, ALWAYS .7 PLA ...YES TAX RTS *-------------------------------- GET.NEXT.NYBBLE LDA MESSAGES,X BCS .1 2ND NYBBLE LSR 1ST NYBBLE LSR LSR LSR SEC RTS .1 INX AND #$0F CLC RTS *-------------------------------- FIRST.TABLE .HS 00 .AS -/ABCDEILMNORST / .HS 7F SECOND.TABLE .HS 00 .AS -/FGPUXY$.*:?52/ .HS 878D THIRD.TABLE .AS -/.HJKQVWZ>1-...../ *-------------------------------- MESSAGES .AC 0 .AC 1/ABCDEILMNORST %/ .AC 2/FGPUXY$.*:?52!#/ .AC 3/HJKQVWZ>1-...../ *-------------------------------- .MA QT QN. .SE QN.+1 ]1 .EQ QN. .AC /]2/ .EM QN. .SE 0 *-------------------------------- .AC "%" ELIMINATE QT# 0 >QT QSC,"S-C MACRO ASSEMBLER %" >QT QST,"SYMBOL TABLE%" >QT QSTARS,"#***!! %" >QT QSRCPRG,"#SOURCE PROGRAM: $%" >QT QSYMTBL,"# SYMBOL TABLE: $%" >QT QERROR," ERROR#%" >QT PAGEQT," PAGE %" >QT QREPPRMT,"#REPLACE? %" >QT QERRCNT," ERRORS IN ASSEMBLY#%" >QT QBLOADB," LOAD %" >QT QDELOR,"DELETE ORIGINAL? %" >QT QMEMPRO,"MEM PROTECT%" >QT QMEMFL,"MEM FULL%" >QT QSYNX,"SYNTAX%" >QT QER1,"NO LABEL%" >QT QER2,"BAD OPCODE%" >QT QER3,"RANGE%" >QT QER4,"EXTRA DEFINITION%" >QT QER5,"BAD ADDRESS%" >QT QER6,"UNDEF LABEL%" >QT QER7,"BAD SYMBOL%" >QT QER8,"VALUE > 255%" >QT QER9,"NO NORMAL LABEL%" >QT QNIN,"NESTED .IN%" >QT QERDO,"MISSING .DO%" >QT QERDO2,".DO NEST TOO DEEP%" >QT QSTRLNG,"KEY TOO LONG%" >QT QNONAM,"NO MACRO NAME%" >QT QREPLNG,"REPLACE TOO LONG%" >QT QERR.MACRO,"UNDEF MACRO%" .AC "%" FLUSH LAST BYTE *-------------------------------- .DO 0 T LDA #1 STA 0 .1 LDA 0 JSR $FDDA LDY 0 JSR PRINT.QUOTATION JSR $FD8E INC 0 LDA 0 CMP #$20 BCC .1 RTS .FIN *-------------------------------------- MAN SAVE usr/src/scmasm.30/scmasm.s.newq LOAD usr/src/scmasm.30/scmasm.s ASM