A2osX/SCMASM.30/SCMASM.S.SCMD.txt

119 lines
3.0 KiB
Plaintext
Raw Normal View History

NEW
AUTO 3,1
*--------------------------------------
* SEARCH COMMAND TABLE
*--------------------------------
SEARCH.COMMAND.TABLE
LDX #-1 COMMAND STRING INDEX
.1 LDY #0 BUFFER INDEX
STY CHAR.PNTR
.2 INX NEXT POSITION IN CMD.TBL
JSR GNC.UC NEXT CHARACTER OF COMMAND
BCS .7 ...END OF LINE
JSR CHECK.LETTER
BCC .6 ...NOT A LETTER
LDA CMD.TBL,X NEXT CHAR OF COMMAND NAME
BEQ PASS.CMD.TO.PRODOS ...END OF TABLE
EOR CURRENT.CHAR
BEQ .2 ...CORRECT CHARACTER
ASL SHIFT OUT END.OF.NAME FLAG
BNE .5 ...REALLY DIFFERENT
*---GO TO PROCESS COMMAND--------
.3 LDA CMD.TBL+2,X
PHA
LDA CMD.TBL+1,X
PHA
LDX #0
RTS
*---SCAN TO NEXT TABLE ENTRY-----
.5 INX
LDA CMD.TBL-1,X
BPL .5
INX SKIP OVER ADDRESS
BNE .1 ...ALWAYS
*---ALL LETTERS MATCH-------------
.6 DEY BACK OFF <EOL>
STY CHAR.PNTR
.7 CPY #3 AT LEAST THREE LETTERS?
BCC PASS.CMD.TO.PRODOS ...NO, SPELLED WRONG
.9 LDA CMD.TBL,X
BMI .3 ...AT END OF COMMAND NAME
INX
BNE .9 ...ALWAYS
*---NOT FOUND IN TABLE------------
PASS.CMD.TO.PRODOS
.DO 0 NO LONGER NECESSARY, BECAUSE 00=8D IN SCI
LDX #-1 APPEND A <RETURN> FOR PRODOS
.1 INX
LDA WBUF,X LOOK FOR TERMINATING 00
BNE .1 ...NOT YET
LDA #$8D
STA WBUF,X
.FIN EFFECTIVE 10-23-86
JSR SCI.COMMAND GIVE ProDOS A SHOT AT IT
BCC .2 ProDOS liked it!
JMP PRODOS.ERROR ...not acceptable, explain why
.2 RTS
*--------------------------------
* COMMAND STRINGS
*--------------------------------
.MA CTBL
.AT /]1/
.DA ]1-1
.EM
*--------------------------------
CMD.TBL
>CTBL ASM
>CTBL AUTO
>CTBL COPY
>CTBL DATE
>CTBL DELETE
>CTBL EDIT
>CTBL FAST
>CTBL FIND
>CTBL FP
>CTBL HELP
>CTBL HIDE
>CTBL HIMEM
>CTBL INCREMENT
>CTBL LIST
>CTBL LOMEM
>CTBL MANUAL
>CTBL MEMORY
>CTBL MERGE
>CTBL MGO
>CTBL MNTR
>CTBL NEW
>CTBL PRT
>CTBL RENUMBER
>CTBL REPLACE
>CTBL RESTORE
>CTBL RST
>CTBL SLOW
>CTBL SYMBOLS
>CTBL TEXT
>CTBL TIME
>CTBL USR
>CTBL VAL
>CTBL VERSION
.HS 00 END OF TABLE
*--------------------------------
SCT.1 INY
INY
INY
SEARCH.CHAR.TABLES
LDA CHAR.TABLES,Y
BEQ .1 ...NOT IN TABLE
CMP CURRENT.CHAR
BNE SCT.1
.1 LDA CHAR.TABLES+2,Y
PHA
LDA CHAR.TABLES+1,Y
PHA
RTS
*--------------------------------------
MAN
SAVE usr/src/scmasm.30/scmasm.s.scmd
LOAD usr/src/scmasm.30/scmasm.s
ASM