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
Text File  |  2001-07-29  |  4KB  |  238 lines

  1. ;WORD-IN-RANGE CHECKER
  2. ;BY ═ACIEJ '┘╘═/┴LLIANCE' ╫ITKOWIAK
  3. ;FOR ═ACARTHUR
  4.  
  5. ;17.04.1999
  6. ;UPDATE
  7. ;02.07.1999
  8.  
  9. R0         = $02
  10. R0L        = $02
  11. R0H        = $03
  12. R1         = $04
  13. R1L        = $04
  14. R1H        = $05
  15.  
  16. SAVX       = $F8
  17. SAV01      = $F9
  18. LOVAL      = $FA;$FB
  19. HIVAL      = $FC;$FD
  20. FLAG       = $FE
  21. TYPE       = $FF
  22.  
  23.  
  24. START      = $1000
  25. END        = $2000
  26.  
  27. LOVALUE    = $1050
  28. HIVALUE    = $1080
  29.  
  30.            *= $0A00
  31.  
  32.            LDA $01
  33.            STA SAV01
  34.            LDA $0318
  35.            PHA
  36.            LDA $0319
  37.            PHA
  38.            JSR $FF81
  39.            JSR $FF84
  40.            JSR $FF8A
  41.            PLA
  42.            STA $0319
  43.            PLA
  44.            STA $0318
  45.  
  46.            LDA #<LOVALUE
  47.            LDX #>LOVALUE
  48.            STA LOVAL
  49.            STX LOVAL+1
  50.            LDA #<HIVALUE
  51.            LDX #>HIVALUE
  52.            STA HIVAL
  53.            STX HIVAL+1
  54.            LDA #<START
  55.            LDX #>START
  56.            STA R0L
  57.            STX R0H
  58.            LDA #<END
  59.            LDX #>END
  60.            STA R1L
  61.            STX R1H
  62.            LDA #0
  63.            STA FLAG
  64.  
  65.            LDA #<INITXT
  66.            LDY #>INITXT
  67.            JSR $AB1E
  68.  
  69.  
  70. LOOP       LDY #0
  71.            JSR GETBYTE
  72.            CMP #$20
  73.            BEQ LPCONT
  74.            CMP #$4C
  75.            BEQ LPCONT
  76.            JMP NEXT
  77.  
  78. LPCONT     STA TYPE
  79.            INY
  80.            INY
  81.            JSR GETBYTE
  82.            TAX
  83.            DEY
  84.            JSR GETBYTE
  85.  
  86.            JSR TESTRANGE
  87.            BCC NEXT
  88.  
  89.            PHA
  90.            TXA
  91.            PHA
  92.            LDA #"$"
  93.            JSR $FFD2
  94.            LDA R0L
  95.            LDX R0H
  96.            JSR SHWORD
  97.            LDA #" "
  98.            JSR $FFD2
  99.            LDA #"J"
  100.            JSR $FFD2
  101.            LDA TYPE
  102.            CMP #$20
  103.            BNE JPCONT
  104.            LDA #"S"
  105.            JSR $FFD2
  106.            LDA #"R"
  107.            JSR $FFD2
  108.            JMP SHCONT
  109.  
  110. JPCONT     LDA #"M"
  111.            JSR $FFD2
  112.            LDA #"P"
  113.            JSR $FFD2
  114.  
  115. SHCONT     LDA #" "
  116.            JSR $FFD2
  117.            LDA #"$"
  118.            JSR $FFD2
  119.            PLA
  120.            TAX
  121.            PLA
  122.            JSR SHWORD
  123.            LDA #13
  124.            JSR $FFD2
  125.            LDA FLAG
  126.            ORA #1
  127.            STA FLAG
  128.  
  129.            JSR $FFE4
  130.            CMP #3
  131.            BEQ TRUEEND
  132.  
  133.            LDA $028D
  134.            CMP #2
  135.            BEQ COMM
  136.            CMP #4
  137.            BNE NEXT
  138.  
  139.            LDX #$80    ;DELAY PO CTRL
  140.            LDY #0
  141.            DEY
  142.            BNE *-1
  143.            DEX
  144.            BNE *-4
  145.            BEQ NEXT
  146.  
  147. COMM       JSR $FFE4
  148.            BEQ *-3
  149.  
  150. NEXT       INC R0L
  151.            BNE *+4
  152.            INC R0H
  153.  
  154.            LDA R0H
  155.            CMP R1H
  156.            BEQ COMP
  157.            JMP LOOP
  158. COMP       LDA R0L
  159.            CMP R1L
  160.            BEQ FIN
  161.            JMP LOOP
  162.  
  163. FIN        LDA FLAG
  164.            BNE TRUEEND
  165.  
  166.            LDA #<FAUTXT
  167.            LDY #>FAUTXT
  168.            JSR $AB1E
  169.  
  170. TRUEEND    RTS
  171.  
  172. INITXT     .BYTE 147,5
  173.            .TEXT "WORD-IN-RANGE CHECKER"
  174.            .TEXT " BY YTM/ALLIANCE"
  175.            .BYTE 13,13
  176.            .TEXT "RESULTS:"
  177.            .BYTE 13,0
  178. FAUTXT     .TEXT "NO MATCHES FOUND"
  179.            .BYTE 13,0
  180.  
  181. TESTRANGE
  182.          ;C=1 - INRANGE
  183.            JSR BELOW
  184.            BCC TRNGFLSE
  185.            JSR ABOVE
  186.            BCS TRNGFLSE
  187.            SEC
  188.            RTS
  189. TRNGFLSE   CLC
  190.            RTS
  191.  
  192. BELOW    ;C=0 - TRUE A/X IS < LOVAL
  193.            CPX LOVAL+1
  194.            BEQ BEL0
  195.            RTS
  196. BEL0       CMP LOVAL
  197.            RTS
  198.  
  199. ABOVE    ;C=1 - TRUE A/X IS > OR = LOVAL
  200.            CPX HIVAL+1
  201.            BEQ ABO0
  202.            RTS
  203. ABO0       CMP HIVAL
  204.            RTS
  205.  
  206. SHWORD     PHA
  207.            TXA
  208.            JSR SHBYTE
  209.            PLA
  210. SHBYTE     PHA
  211.            AND #%11110000
  212.            LSR A
  213.            LSR A
  214.            LSR A
  215.            LSR A
  216.            JSR SHDIG
  217.            PLA
  218.            AND #%00001111
  219. SHDIG      CLC
  220.            ADC #"0"
  221.            CMP #"9"+1
  222.            BCC *+4
  223.            ADC #6
  224.            JSR $FFD2
  225.            RTS
  226.  
  227. GETBYTE    SEI
  228.            STX SAVX
  229.            LDA #$30
  230.            STA $01
  231.            LDA (R0),Y
  232.            LDX SAV01
  233.            STX $01
  234.            LDX SAVX
  235.            CLI
  236.            RTS
  237.  
  238.