home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / ANNMIDI:BACKOUT / INT0DRVR.SC4.txt < prev    next >
Text File  |  2020-08-13  |  2KB  |  94 lines

  1. ;------------
  2. ;INT0DRVR.SC4 - KARAOKE SCAN AHEAD LOGIC
  3. ;------------
  4. ; THIS LOGIC IS CALLED WHENEVER A CARRIAGE RETURN ($0D) IS FOUND.
  5. ; IT WILL SCAN AHEAD IN THE BUFFER TO FIND THE NEXT CARRIAGE RETURN
  6. ; BY LOOKING FOR TEXT META EVENTS.  IT WILL PRINT UP TO 79 CHARACTERS.
  7. ; IT WILL EXIT WHEN EITHER A NEW CARRIAGE RETURN IS FOUND, 79 CHARACTERS
  8. ; HAVE BEEN PRINTED, THE END OF TRACK MARKER (FF 2F) IS FOUND, OR THE
  9. ; POINTER REACHES THE END OF THE CURRENT BUFFER.
  10. ;
  11. MYPTR    EQU $08
  12. MYXCOORD DFB $00
  13. MYENDFLG DFB $00
  14. MYBYTE   DFB $00
  15. MYLENGTH DFB $00
  16. MYSTOP   DFB $00
  17. ;
  18. KARASCAN LDA PLAYPTR         ;SET OUR POINTER TO CURRENT POSITION
  19.          STA MYPTR
  20.          LDA PLAYPTR+1
  21.          STA MYPTR+1
  22.          LDA #$00
  23.          STA MYXCOORD
  24.          STA MYENDFLG
  25.          LDA PLAYSTOP+1      
  26.          STA MYSTOP
  27. KARALOOP LDY #$00
  28.          LDA (MYPTR),Y
  29.          CMP #$FF
  30.          BEQ FOUNDFF
  31. KARALOO1 JSR INCMYPT
  32.          LDA MYENDFLG
  33.          BEQ KARALOOP
  34. KARADONE LDA #$8D            ;PRINT CR
  35.          JSR COUT
  36.          RTS
  37. ;
  38. FOUNDFF  JSR INCMYPT
  39.          LDA MYENDFLG
  40.          BNE KARADONE
  41.          LDA MYBYTE
  42.          CMP #$2F
  43.          BEQ KARADONE
  44.          CMP #$10
  45.          BCS KARALOO1        ;NOT TEXT EVENT
  46.          JSR INCMYPT
  47.          LDA MYENDFLG
  48.          BNE KARADONE
  49.          LDA MYBYTE
  50.          BMI KARALOO1        ;DON'T SUPPORT META > 127 CHARS-LOOK FOR MORE
  51.          BEQ KARALOO1        ;TEXT LEN OF 0 
  52.          STA MYLENGTH
  53. PRLOOP   JSR INCMYPT
  54.          LDA MYENDFLG
  55.          BNE KARADONE
  56.          JSR PRINT24         ;PRINT THE CHAR
  57.          LDA MYENDFLG
  58.          BNE KARADONE
  59.          DEC MYLENGTH
  60.          LDA MYLENGTH
  61.          BNE PRLOOP
  62.          BEQ KARALOO1
  63. ;
  64. INCMYPT  INC MYPTR
  65.          BNE INCMYP2
  66.          INC MYPTR+1
  67.          LDA MYPTR+1
  68.          CMP MYSTOP
  69.          BCC INCMYP2
  70.          INC MYENDFLG
  71.          RTS
  72. INCMYP2  LDY #$00
  73.          LDA (MYPTR),Y
  74.          STA MYBYTE
  75.          RTS
  76. ;
  77. PRINT24  LDY #23
  78.          LDX MYXCOORD
  79.          LDA MYBYTE
  80.          CMP #$0D
  81.          BEQ SETEND
  82.          CMP #$20            ;DON'T PRINT CONTROL CHARS
  83.          BCC PRINT24A
  84.          ORA #$80
  85.          JSR COUT
  86.          INX
  87.          STX MYXCOORD
  88.          CPX #79
  89.          BNE PRINT24A
  90. SETEND   INC MYENDFLG
  91. PRINT24A RTS
  92. ;
  93.          CHN INT0DRVR.SC5
  94.