home *** CD-ROM | disk | FTP | other *** search
/ Pokey's Magazine 16 / Pokeys_Magazine_16_1992_01___nl_Side_B.atr / mdriver.src < prev    next >
Text File  |  2023-02-26  |  2KB  |  281 lines

  1.  
  2. *
  3. * M: DRIVER
  4. *
  5. * BY IVO VAN POORTEN  (THE GATEKEEPER)
  6. *
  7. * FOR POKEY'S MAGAZINE 1991
  8. *
  9. * RUN AT $1F75 !!!
  10. *
  11.  
  12.     ORG $1E00
  13.  
  14. PNT0    EPZ $E0
  15. PNT1    EPZ $E1
  16.  
  17. CNT0    EPZ $E2
  18. CNT1    EPZ $E3
  19.  
  20. CNTR0    EPZ $E4
  21. CNTR1    EPZ $E5
  22.  
  23. BEGIN    EQU $C000
  24.  
  25. ENAB    EQU $FF
  26. DISAB    EQU $FE
  27.  
  28. MDRIVE    DFW MOPEN-1
  29.     DFW MCLOSE-1
  30.     DFW MGET-1
  31.     DFW MPUT-1
  32.     DFW MSTATUS-1
  33.     DFW MSPEC-1
  34.     JMP MINIT
  35.  
  36. MINIT    RTS
  37.  
  38. MOPEN    LDA $2A
  39.     CMP #$04
  40.     BEQ INP
  41.     CMP #$08
  42.     BEQ OUTP
  43.  
  44.     LDY #146  * ERROR - 146
  45.  
  46.     RTS
  47.  
  48. OUTP    LDA #BEGIN
  49.     STA PNT0
  50.     LDA #BEGIN:H
  51.     STA PNT1
  52.     CLC
  53.     LDA PNT1
  54.     ADC $2B
  55.     STA PNT1
  56.  
  57.     LDA #$75
  58.     STA $02C8
  59.  
  60.     LDA $D40E
  61.     STA NMIENR
  62.     LDA $10
  63.     STA IRQENR
  64.  
  65.     LDA #$00
  66.     STA $D40E
  67.     STA $10
  68.     STA $D20E
  69.  
  70.     LDX #DISAB
  71.     STX $D301
  72.  
  73.     STA $FFFE
  74.     STA $FFFF
  75.  
  76.     LDX #ENAB
  77.     STX $D301
  78.  
  79.     LDA IRQENR
  80.     STA $10
  81.     STA $D20E
  82.  
  83.     LDA NMIENR
  84.     STA $D40E
  85.  
  86.     LDY #1
  87.  
  88.     RTS
  89.  
  90. INP    LDA #BEGIN
  91.     STA PNT0
  92.     LDA #BEGIN:H
  93.     STA PNT1
  94.     CLC
  95.     LDA PNT1
  96.     ADC $2B
  97.     STA PNT1
  98.  
  99.     LDA #$35
  100.     STA $02C8
  101.  
  102.     LDA $D40E
  103.     STA NMIENR
  104.     LDA $10
  105.     STA IRQENR
  106.  
  107.     LDA #$00
  108.     STA $D40E
  109.     STA $10
  110.     STA $D20E
  111.  
  112.     LDX #DISAB
  113.     STX $D301
  114.  
  115.     LDA $FFFE
  116.     STA CNT0
  117.     STA CNTR0
  118.     LDA $FFFF
  119.     STA CNT1
  120.     STA CNTR1
  121.  
  122.     LDX #ENAB
  123.     STX $D301
  124.  
  125.     LDA IRQENR
  126.     STA $10
  127.     STA $D20E
  128.  
  129.     LDA NMIENR
  130.     STA $D40E
  131.  
  132. NOCNT1    LDY #1
  133.  
  134.     RTS
  135.  
  136. MCLOSE    LDX #$00
  137.     STX $02C8
  138.  
  139.     LDY #1
  140.     RTS
  141.  
  142. MSTATUS    LDY #146
  143.     RTS
  144.  
  145. MSPEC    LDY #146
  146.     RTS
  147.  
  148. NMIENR    DFB 0
  149. IRQENR    DFB 0
  150.  
  151. MGET    LDY #0
  152.  
  153.     LDX $D40E
  154.     STX NMIENR
  155.     LDX $10
  156.     STX IRQENR
  157.  
  158.     STY $D40E
  159.     STY $10
  160.     STY $D20E
  161.  
  162.     LDX #DISAB
  163.     STX $D301
  164.  
  165.     LDA (PNT0),Y
  166.  
  167.     LDX #ENAB
  168.     STX $D301
  169.  
  170.     LDX IRQENR
  171.     STX $10
  172.     STX $D20E
  173.     LDX NMIENR
  174.     STX $D40E
  175.  
  176.     CLC
  177.     INC PNT0
  178.     BNE NOPNT1
  179.     INC PNT1
  180.  
  181. NOPNT1    INY
  182.  
  183.     TAX
  184.  
  185.     LDA PNT1
  186.     CMP #$D0
  187.     BNE NOSKIP
  188.     LDA #$D8
  189.     STA PNT1
  190.  
  191. NOSKIP    SEC
  192.     LDA CNT0
  193.     SBC #$01
  194.     STA CNT0
  195.     LDA CNT1
  196.     SBC #$00
  197.     STA CNT1
  198.  
  199.     LDA CNT1
  200.     CMP #0
  201.     BNE NOEOF
  202.     LDA CNT0
  203.     CMP #0
  204.     BNE NOEOF
  205.  
  206.     LDY #$FF   * ERROR > EOF
  207.  
  208. NOEOF    TXA
  209.  
  210.     RTS
  211.  
  212. MPUT    LDY #0
  213.  
  214.     LDX $D40E
  215.     STX NMIENR
  216.     LDX $10
  217.     STX IRQENR
  218.  
  219.     STY $D40E
  220.     STY $10
  221.     STY $D20E
  222.  
  223.     LDX #DISAB
  224.     STX $D301
  225.  
  226.     STA (PNT0),Y
  227.  
  228.     CLC
  229.     INC $FFFE
  230.     BNE NOFF
  231.     INC $FFFF
  232.  
  233. NOFF    LDX #ENAB
  234.     STX $D301
  235.  
  236.     LDX IRQENR
  237.     STX $10
  238.     STX $D20E
  239.     LDX NMIENR
  240.     STX $D40E
  241.  
  242.     CLC
  243.     INC PNT0
  244.     BNE NOPNT11
  245.     INC PNT1
  246.  
  247. NOPNT11    INY
  248.  
  249.     TXA
  250.  
  251.     LDA PNT1
  252.     CMP #$D0
  253.     BNE NOSKIP2
  254.     LDA #$D8
  255.     STA PNT1
  256.  
  257. NOSKIP2    TAX
  258.  
  259.     RTS
  260.  
  261. ***********************************
  262.  
  263. TRAP    LDA #$01
  264.     STA $0009
  265.  
  266.     LDA #TRAP
  267.     STA $000C
  268.     LDA #TRAP:H
  269.     STA $000D
  270.  
  271.     LDA #'M
  272.     STA $32C
  273.     LDA #MDRIVE
  274.     STA $32D
  275.     LDA #MDRIVE:H
  276.     STA $32E
  277.  
  278.     JMP $283C
  279.  
  280. BYTE    ASC % %
  281. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯