home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / OBJSRC / MOCKBRD.SRC.txt < prev    next >
Text File  |  2020-08-13  |  3KB  |  143 lines

  1. ; ********************************************
  2. ; * MOCKBRD.SRC - MOCKINGBOARD INTERFACE 
  3. ; * (C) 1993, ERIC RANGELL
  4. ; ********************************************
  5. ;
  6. ;------------GLOBAL EQUATES
  7. RECEIVER EQU $FA
  8. MSG      EQU $FB
  9. MYOBJ    EQU $FD
  10. MYADRS   EQU $FE             ;WILL POINT TO 'BASE' WHEN OBJECT INVOKED
  11. ;
  12. USRVECT  EQU $0A             ;APPLESOFT USR VECTOR - USED TO CALL OBJECTS
  13. ;
  14. ;------------OBJECTS REFERENCED
  15. MOCKBRD  EQU  10             ;MOCKINGBOARD INTERFACE
  16. ;
  17. ;
  18. ;------------OBJECT HEADER
  19.         ORG $6000
  20. ;
  21.         LDA #$00  ;CALL OBJECT SETUP ROUTINE
  22.         STA $FA
  23.         JSR $000A
  24.         DFB MOCKBRD         ;OBJECT NUMBER
  25.         DFB 0,0,0,0,0,0,0   ;SAVE AREA
  26. BASE    CLV
  27.         BVC CODE
  28. RETCODE DFB $00             ;RETURN CODE
  29. ;
  30. ;==========================================
  31. ; INTERNAL DATA MAINTAINED BY OBJECT:
  32. ;
  33. MSLOT               EQU   $06          ;WILL POINT TO MKBD SLOT ($C400)
  34. SLOTNUM             DFB   $04          ;DEFAULT TO SLOT 4
  35. ;
  36. SPEAKER             DFB   $00      ;00=LEFT, 80=RIGHT
  37. ;
  38. ;==========================================
  39. ; METHODS:
  40. ;
  41. ;        'I' - INITIALIZE MOCKINGBOARD
  42. ;        'P' <REG> <DATA> - POKE REGISTER WITH DATA
  43. ;        'L' <SLOT#> - CHANGE SLOT OF MOCKINGBOARD
  44. ;        'S' <SPKR#> - CHANGE SPEAKER (0=LEFT,1=RIGHT)
  45. ;
  46. ;==========================================
  47. CODE     LDY #0
  48.          LDA (MSG),Y
  49.          CMP #'L'        
  50.          BNE CODES
  51.          INY
  52.          LDA (MSG),Y
  53.          AND #$07
  54.          LDY #SLOTNUM-BASE
  55.          STA (MYADRS),Y
  56.          RTS
  57. ;
  58. CODES    CMP #'S'
  59.          BNE CODEI
  60.          INY
  61.          LDA (MSG),Y
  62.          BEQ STORSPKR
  63.          LDA #$80
  64. STORSPKR LDY #SPEAKER-BASE
  65.          STA (MYADRS),Y
  66.          RTS
  67. ;
  68. CODEI    CMP #'I'
  69.          BNE CODEP
  70.          LDY #SLOTNUM-BASE
  71.          LDA (MYADRS),Y
  72.          ORA #$C0
  73.          STA MSLOT+1
  74.          LDA #$0
  75.          STA MSLOT
  76. ;
  77.          LDA #$FF
  78.          LDY #$03
  79.          STA (MSLOT),Y
  80.          LDY #$83
  81.          STA (MSLOT),Y
  82.          LDA #$07
  83.          LDY #$02
  84.          STA (MSLOT),Y   
  85.          LDY #$82
  86.          STA (MSLOT),Y
  87. ;
  88.          LDA #$00
  89.          LDY #$00
  90.          STA (MSLOT),Y
  91.          LDY #$80
  92.          STA (MSLOT),Y
  93.          LDA #$04
  94.          LDY #$00
  95.          STA (MSLOT),Y
  96.          LDY #$80
  97.          STA (MSLOT),Y
  98.          RTS
  99. ;
  100. CODEP    CMP #'P'
  101.          BNE CODEEX
  102.          LDY #SLOTNUM-BASE
  103.          LDA (MYADRS),Y
  104.          ORA #$C0
  105.          STA MSLOT+1
  106.          LDA #$0
  107.          STA MSLOT
  108. ;
  109.          LDY #2
  110.          LDA (MSG),Y
  111.          PHA
  112.          LDY #1
  113.          LDA (MSG),Y
  114.          AND #$0F
  115.          PHA
  116. ;
  117.          LDY #SPEAKER-BASE
  118.          LDA (MYADRS),Y
  119.          TAY
  120.          INY
  121.          PLA
  122.          STA (MSLOT),Y
  123.          DEY
  124.          LDA #$07
  125.          STA (MSLOT),Y
  126.          LDA #$04
  127.          STA (MSLOT),Y
  128.          INY
  129.          PLA
  130.          STA (MSLOT),Y
  131.          DEY
  132.          LDA #$06
  133.          STA (MSLOT),Y
  134.          LDA #$04
  135.          STA (MSLOT),Y
  136.          RTS
  137. ;
  138. CODEEX   LDY #RETCODE-BASE
  139.          LDA #12
  140.          STA (MYADRS),Y
  141.          SEC   
  142.          RTS 
  143.