home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / pdoseric.hdv / SOURCE / DISPLAY.SRC0.txt < prev    next >
Text File  |  2020-08-13  |  7KB  |  246 lines

  1. ; *************************
  2. ; * DISPLAY.SRC0
  3. ; *************************
  4. ;
  5. ;
  6. ; INTRUPT VARIABLES
  7. CODEFLAG            EQU 22  ;OFFSET IN PSEUDOZP 
  8. CODEHOOK            EQU 23
  9. MIDIBYTE            EQU 25
  10. BASL                EQU $0B  ;USER VECTOR
  11. ;
  12. ZPVECT              EQU $06  ;USED FOR ADDRESSING SCREEN
  13. ;
  14. ;
  15.                     ORG $6A00
  16. ORIGIN              JMP SETUP
  17. ;
  18. INBYTE              DFB $00
  19. STS                 DFB $91
  20. SCRNLO              DFB $00
  21. SCRNHI              DFB $00
  22. BYTESAVE            DFB $00
  23. ;
  24. ; PROGRAM CHANGE DATA STORED HERE (START ADRS+8)
  25. ;
  26. PROG1               DFB $00,$00,$00,$00,$00,$00,$00,$00
  27.                     DFB $00,$00,$00,$00,$00,$00,$00,$00
  28. PROG2               DFB $00,$00,$00,$00,$00,$00,$00,$00
  29.                     DFB $00,$00,$00,$00,$00,$00,$00,$00
  30. VOLUME              DFB $40,$40,$40,$40,$40,$40,$40,$40
  31.                     DFB $40,$40,$40,$40,$40,$40,$40,$40
  32. BRILL               DFB $02,$02,$02,$02,$02,$02,$02,$02
  33.                     DFB $02,$02,$02,$02,$02,$02,$02,$02
  34. ;
  35. MULTI               DFB $01
  36. REVERB              DFB $03
  37. EFFECT              DFB $04
  38. CHANNEL             DFB $00
  39. VOLFLAG             DFB $00
  40. TRANSP              DFB $00
  41. MARKER              DFB $5D
  42. KARAOKE             DFB $00  ;00=OFF 01=IGNORE NOTE-ON'S WITH VEL=$41
  43. ;     
  44. SETUP               LDA #>ENTRY        ;HOOK TO INTERRUPT HANDLER
  45.                     LDY #CODEHOOK
  46.                     STA (BASL),Y         
  47.                     LDA #<ENTRY
  48.                     LDY #CODEHOOK+1
  49.                     STA (BASL),Y
  50.                     LDA #$01
  51.                     LDY #CODEFLAG
  52.                     STA (BASL),Y
  53. ;
  54.                     LDX   #$00         ;POPULATE SCRNSAV TABLE
  55. GETSCRN             LDA   ADRSLO,X
  56.                     STA   ZPVECT
  57.                     LDA   ADRSHI,X
  58.                     STA   ZPVECT+1
  59.                     LDY   #$00         
  60.                     LDA   (ZPVECT),Y
  61.                     STA   SCRNSAV,X
  62.                     INX
  63.                     BPL   GETSCRN
  64.                     CLC
  65.                     RTS
  66. ;
  67. ;
  68. ENTRY               LDY   #MIDIBYTE   
  69.                     LDA   (BASL),Y
  70.                     STA   INBYTE
  71.                     LDA   STS
  72.                     BEQ   CHK90
  73. ;
  74.                     LDA   INBYTE
  75.                     BPL   STS91
  76. ;
  77. CHK90               LDA   INBYTE
  78.                     AND   #$F0
  79.                     CMP   #$90
  80.                     BNE   CHK80
  81.                     LDA   INBYTE
  82.                     AND   #$0F
  83.                     STA   CHANNEL
  84.                     CMP   #$09
  85.                     BCS   DRUMPART
  86.                     LDA   #$91
  87.                     STA   STS
  88.                     CLC
  89.                     RTS
  90. DRUMPART            LDA   #$99
  91.                     STA   STS
  92.                     SEC
  93.                     RTS
  94. CHK80               CMP   #$80
  95.                     BNE   CHKC0
  96.                     LDA   INBYTE
  97.                     AND   #$0F
  98.                     STA   CHANNEL
  99.                     LDA   #$81
  100.                     STA   STS
  101.                     CLC
  102.                     RTS
  103. CHKC0               CMP   #$C0
  104.                     BNE   CHKB0
  105.                     LDA   INBYTE
  106.                     AND   #$0F
  107.                     STA   CHANNEL
  108.                     LDA   #$C1
  109.                     STA   STS
  110.                     CLC
  111.                     RTS
  112. CHKB0               CMP   #$B0
  113.                     BNE   INVAL
  114.                     LDA   INBYTE
  115.                     AND   #$0F
  116.                     STA   CHANNEL
  117.                     LDA   #$B1
  118.                     STA   STS
  119.                     CLC
  120.                     RTS
  121. ;
  122. INVAL               LDA   #$00
  123.                     STA   STS
  124.                     CLC
  125.                     RTS
  126. ;
  127. STS91               LDA   STS
  128.                     CMP   #$91
  129.                     BNE   STS92
  130. ;
  131.                     JSR   TRANSPOS
  132. ;
  133.                     LDX   INBYTE
  134.                     LDA   ADRSLO,X
  135.                     STA   SCRNLO
  136.                     LDA   ADRSHI,X
  137.                     STA   SCRNHI
  138.                     STX   BYTESAVE
  139.                     LDA   #$92
  140.                     STA   STS
  141.                     CLC
  142.                     RTS   
  143. ;
  144. STS92               LDA   STS
  145.                     CMP   #$92
  146.                     BNE   STS81
  147. ;
  148.                     LDA   #$91
  149.                     STA   STS
  150.                     LDX   INBYTE
  151.                     BEQ   NOTEOFF                 
  152. ;
  153.                     LDA   KARAOKE
  154.                     BEQ   NOKARA
  155.                     LDA   INBYTE
  156.                     CMP   #$41
  157.                     BNE   NOKARA
  158.                     LDA   #$00         ;CHG VEL TO 00
  159.                     STA   INBYTE
  160.                     LDY   #MIDIBYTE
  161.                     STA   (BASL),Y     ;CHG INPUT BYTE
  162. NOKARA              LDA   SCRNLO
  163.                     STA   ZPVECT
  164.                     LDA   SCRNHI
  165.                     STA   ZPVECT+1
  166. ;
  167. ; DETERMINE WHETHER MARKER OR CHANNEL # WILL BE DISPLAYED
  168.                     LDA   CHANNEL
  169.                     BEQ   USEMARK      ; USE MARKER FOR CHANNEL 0
  170.                     CMP   #$0A
  171.                     BCS   USEALPHA     ; IF CHNL >= 10 USE ALPHA A,B,C,D,E,F
  172.                     CLC
  173.                     ADC   #$B0         ; ELSE USE NUMBER 1-9
  174.                     JMP   POKEIT
  175. USEALPHA            CLC
  176.                     ADC   #$B7         ; ALPHA- B7+A=C1
  177.                     JMP   POKEIT
  178. USEMARK             LDA   MARKER
  179.                     JMP   POKEIT
  180. ;
  181. NOTEOFF             LDA   SCRNLO
  182.                     STA   ZPVECT
  183.                     LDA   SCRNHI
  184.                     STA   ZPVECT+1
  185.                     LDX   BYTESAVE
  186.                     LDA   SCRNSAV,X
  187.                     JMP   POKEIT             
  188. ;
  189. STS81               LDA   STS
  190.                     CMP   #$81
  191.                     BNE   STS82
  192. ;
  193.                     JSR   TRANSPOS
  194. ;
  195.                     LDX   INBYTE
  196.                     LDA   ADRSLO,X
  197.                     STA   SCRNLO
  198.                     LDA   ADRSHI,X
  199.                     STA   SCRNHI
  200.                     STX   BYTESAVE
  201.                     LDA   #$82
  202.                     STA   STS
  203.                     CLC
  204.                     RTS
  205. ;
  206. STS82               LDA   STS
  207.                     CMP   #$82
  208.                     BNE   STSC1
  209. ;
  210.                     LDA   #$81
  211.                     STA   STS
  212. ;
  213.                     LDA   SCRNLO
  214.                     STA   ZPVECT
  215.                     LDA   SCRNHI
  216.                     STA   ZPVECT+1
  217.                     LDX   BYTESAVE
  218.                     LDA   SCRNSAV,X
  219.                     JMP   POKEIT             
  220. ;
  221. STSC1               LDA   STS
  222.                     CMP   #$C1
  223.                     BNE   STSB1
  224. ;
  225. ; MOVE PROGRAM 1 TO PROGRAM 2, THEN GET NEW PROGRAM 2
  226. ;
  227.                     LDX   CHANNEL
  228.                     LDA   PROG1,X
  229.                     STA   PROG2,X
  230.                     LDA   INBYTE
  231.                     STA   PROG1,X
  232.                     CLC
  233.                     RTS                  
  234. ;
  235. STSB1               LDA   STS
  236.                     CMP   #$B1
  237.                     BNE   STSB2
  238. ;
  239.                     LDA   INBYTE
  240.                     CMP   #$07
  241.                     BNE   NOT07
  242.                     LDA   #$1
  243.                     STA   VOLFLAG
  244. ;
  245.                     CHN   DISPLAY.SRC0A
  246.