mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-22 00:32:44 +00:00
119 lines
3.0 KiB
Plaintext
119 lines
3.0 KiB
Plaintext
|
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
|