home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.elysium.pl
/
ftp.elysium.pl.tar
/
ftp.elysium.pl
/
gnu-generation
/
YTM
/
wordcheck.src.gz
/
wordcheck.src
Wrap
Text File
|
2001-07-29
|
4KB
|
238 lines
;WORD-IN-RANGE CHECKER
;BY ═ACIEJ '┘╘═/┴LLIANCE' ╫ITKOWIAK
;FOR ═ACARTHUR
;17.04.1999
;UPDATE
;02.07.1999
R0 = $02
R0L = $02
R0H = $03
R1 = $04
R1L = $04
R1H = $05
SAVX = $F8
SAV01 = $F9
LOVAL = $FA;$FB
HIVAL = $FC;$FD
FLAG = $FE
TYPE = $FF
START = $1000
END = $2000
LOVALUE = $1050
HIVALUE = $1080
*= $0A00
LDA $01
STA SAV01
LDA $0318
PHA
LDA $0319
PHA
JSR $FF81
JSR $FF84
JSR $FF8A
PLA
STA $0319
PLA
STA $0318
LDA #<LOVALUE
LDX #>LOVALUE
STA LOVAL
STX LOVAL+1
LDA #<HIVALUE
LDX #>HIVALUE
STA HIVAL
STX HIVAL+1
LDA #<START
LDX #>START
STA R0L
STX R0H
LDA #<END
LDX #>END
STA R1L
STX R1H
LDA #0
STA FLAG
LDA #<INITXT
LDY #>INITXT
JSR $AB1E
LOOP LDY #0
JSR GETBYTE
CMP #$20
BEQ LPCONT
CMP #$4C
BEQ LPCONT
JMP NEXT
LPCONT STA TYPE
INY
INY
JSR GETBYTE
TAX
DEY
JSR GETBYTE
JSR TESTRANGE
BCC NEXT
PHA
TXA
PHA
LDA #"$"
JSR $FFD2
LDA R0L
LDX R0H
JSR SHWORD
LDA #" "
JSR $FFD2
LDA #"J"
JSR $FFD2
LDA TYPE
CMP #$20
BNE JPCONT
LDA #"S"
JSR $FFD2
LDA #"R"
JSR $FFD2
JMP SHCONT
JPCONT LDA #"M"
JSR $FFD2
LDA #"P"
JSR $FFD2
SHCONT LDA #" "
JSR $FFD2
LDA #"$"
JSR $FFD2
PLA
TAX
PLA
JSR SHWORD
LDA #13
JSR $FFD2
LDA FLAG
ORA #1
STA FLAG
JSR $FFE4
CMP #3
BEQ TRUEEND
LDA $028D
CMP #2
BEQ COMM
CMP #4
BNE NEXT
LDX #$80 ;DELAY PO CTRL
LDY #0
DEY
BNE *-1
DEX
BNE *-4
BEQ NEXT
COMM JSR $FFE4
BEQ *-3
NEXT INC R0L
BNE *+4
INC R0H
LDA R0H
CMP R1H
BEQ COMP
JMP LOOP
COMP LDA R0L
CMP R1L
BEQ FIN
JMP LOOP
FIN LDA FLAG
BNE TRUEEND
LDA #<FAUTXT
LDY #>FAUTXT
JSR $AB1E
TRUEEND RTS
INITXT .BYTE 147,5
.TEXT "WORD-IN-RANGE CHECKER"
.TEXT " BY YTM/ALLIANCE"
.BYTE 13,13
.TEXT "RESULTS:"
.BYTE 13,0
FAUTXT .TEXT "NO MATCHES FOUND"
.BYTE 13,0
TESTRANGE
;C=1 - INRANGE
JSR BELOW
BCC TRNGFLSE
JSR ABOVE
BCS TRNGFLSE
SEC
RTS
TRNGFLSE CLC
RTS
BELOW ;C=0 - TRUE A/X IS < LOVAL
CPX LOVAL+1
BEQ BEL0
RTS
BEL0 CMP LOVAL
RTS
ABOVE ;C=1 - TRUE A/X IS > OR = LOVAL
CPX HIVAL+1
BEQ ABO0
RTS
ABO0 CMP HIVAL
RTS
SHWORD PHA
TXA
JSR SHBYTE
PLA
SHBYTE PHA
AND #%11110000
LSR A
LSR A
LSR A
LSR A
JSR SHDIG
PLA
AND #%00001111
SHDIG CLC
ADC #"0"
CMP #"9"+1
BCC *+4
ADC #6
JSR $FFD2
RTS
GETBYTE SEI
STX SAVX
LDA #$30
STA $01
LDA (R0),Y
LDX SAV01
STX $01
LDX SAVX
CLI
RTS