home *** CD-ROM | disk | FTP | other *** search
/ Compy Shop Magazin 1990 February / Compy_Shop_Magazin_1990_02___de_Side_A.atr / buffer.src < prev    next >
Text File  |  2023-02-26  |  3KB  |  232 lines

  1.  
  2. *******************************
  3. *    TASTATUR-BUFFER  V2.0    *
  4. *      IM CASETTENBUFFER      *
  5. *      BIBO-DOS-MODIFIER      *
  6. * (C)1989 BY FRANK HECKENBACH *
  7. *******************************
  8.  
  9.     ORG$6000
  10.  
  11. *Konstanten
  12. KREPEAT    EQU 2
  13. DOSMAX    EQU$24
  14.  
  15. *Eigene Variablen
  16. TIMER    EQU 7
  17. OFF    EQU$3FD
  18. COUNTER    EQU$3FE
  19. BUFFER    EQU$400    ($80 BYTES)
  20.  
  21. *Systemvariablen
  22. ZPTR    EQU 21
  23. ATTRACT    EQU 77
  24. VBIVEC    EQU 546
  25. KBDIS    EQU 621
  26. DELAY    EQU 729
  27. REPEAT    EQU 730
  28. HELPFLAG    EQU 732
  29. CODE    EQU 754
  30. KCODE    EQU 764
  31. STOPFLAG    EQU 767
  32.  
  33. *Systemaufrufe
  34. CIOMAIN    EQU$E456
  35. SYSVBI    EQU$E45F
  36.  
  37. *Hardwareadressen
  38. KBCODE    EQU$D209
  39. SKSTAT    EQU$D20F
  40. NMIEN    EQU$D40E
  41.  
  42. *Installationsprogramm
  43.     LDX#0
  44.     LDA#9
  45.     STA$342,X
  46.     LDA#MSG1:L
  47.     STA$344,X
  48.     LDA#MSG1:H
  49.     STA$345,X
  50.     STA$349,X
  51.     JSR CIOMAIN
  52.     JSR READKEY
  53.     BMI RET
  54.     CMP#'J
  55.     BEQ JA
  56. RET    RTS
  57.  
  58. JA    LDA VBIVEC
  59.     STA ZPTR
  60.     LDA VBIVEC+1
  61.     STA ZPTR+1
  62.     CMP#DOSMAX
  63.     BCS ERROR
  64.     LDA#0
  65.     STA NMIEN
  66.     STA COUNTER
  67.     STA OFF
  68.  
  69. *Programm kopieren
  70.     LDY#ENDE-VBI
  71. COPY    DEY
  72.     LDA VBI,Y
  73.     STA(ZPTR),Y
  74.     TYA
  75.     BNE COPY
  76.  
  77. *Schnelle Tastenwiederhloung einbauen
  78.     LDA#0
  79.     STA ZPTR
  80.     LDA#7
  81.     STA ZPTR+1
  82. COMP1    LDY#ERROR-REPLACE-1
  83. COMP2    LDA(ZPTR),Y
  84.     CMP REPLACE,Y
  85.     BEQ COMP3
  86.     INC ZPTR
  87.     BNE COMP1
  88.     INC ZPTR+1
  89.     LDA ZPTR+1
  90.     CMP#DOSMAX
  91.     BCC COMP1
  92.     BCS COMP4
  93. COMP3    DEY
  94.     BPL COMP2
  95.  
  96.     LDY#ERROR-REPLACE-1
  97. SETREP    LDA INITREP,Y
  98.     STA(ZPTR),Y
  99.     DEY
  100.     BPL SETREP
  101.  
  102. COMP4    LDA$740
  103.     AND#$BF
  104.     ORA#$80
  105.     STA$740
  106.     LDA#$40
  107.     STA NMIEN
  108.     LDA KBCODE
  109.     STA CODE
  110.     LDA DELAY
  111.     STA TIMER
  112. INITREP    LDA#KREPEAT
  113.     STA REPEAT
  114.     LDX#0
  115.     LDA#MSG2:L
  116.     STA$344,X
  117.     LDA#MSG2:H
  118.     STA$345,X
  119.     JMP CIOMAIN
  120.  
  121. REPLACE    LDA#0
  122.     STA 258
  123.  
  124. ERROR    LDX#0
  125.     LDA#MSGERR:L
  126.     STA$344,X
  127.     LDA#MSGERR:H
  128.     STA$345,X
  129.     JSR CIOMAIN
  130.  
  131. READKEY    LDA$E425
  132.     PHA
  133.     LDA$E424
  134.     PHA
  135.     RTS
  136.  
  137. MSG1    DFB$7D,$1D
  138.     ASC"Tastaturbuffer von BIBO-DOS ersetzen?
  139.     DFB$1D,$9B
  140.  
  141. MSG2    ASC"Tastaturbuffer veraendert!
  142.     DFB$1D,$9B
  143.  
  144. MSGERR    ASC"Falsche Version oder Buffer inaktiv!
  145.     DFB$1D,$9B
  146.  
  147. *Neuer VBI
  148. VBI    LDX#0
  149.     LDA SKSTAT
  150.     AND#4
  151.     BEQ PRESSED
  152.     DEX
  153.     STX CODE
  154.     BNE CONTROL
  155.  
  156. PRESSED    STX ATTRACT
  157.     LDY DELAY
  158.     LDA KBDIS
  159.     BNE E
  160.  
  161.     LDA KBCODE
  162.     CMP CODE
  163.          STA CODE
  164.     BNE NEWKEY
  165.  
  166.     LDY TIMER
  167.     BEQ NOTPR
  168.     DEY
  169.     BNE NOTPR
  170.     LDY REPEAT
  171. NEWKEY    CMP#$9F
  172.     BNE NC1
  173.     LDA STOPFLAG    CTRL-1
  174.     EOR#$FF
  175.     STA STOPFLAG
  176.     BCS CONTROL
  177.  
  178. NC1    CMP#$B0
  179.     BNE NC9
  180.     STX OFF        CTRL-9
  181.     STX COUNTER
  182.     DEX
  183.     STX KCODE
  184.     BCS CONTROL
  185.  
  186. NC9    CMP#$B2
  187.     BNE NC0
  188.     DEX        CTRL-0
  189.     STX OFF
  190.     BCS CONTROL
  191.  
  192. NC0    TAX
  193.     AND#$3F
  194.     CMP#$11
  195.     BNE NORMAL
  196.     STX HELPFLAG    HELP
  197. CONTROL    LDY#0
  198.     BEQ NOTPR
  199.  
  200. NORMAL    LDA OFF
  201.     BEQ PUTBUF
  202.     STX KCODE
  203. E    STY TIMER
  204.     BNE ENDINT    
  205.  
  206. PUTBUF    TXA
  207.     LDX COUNTER
  208.     BMI NOTPR
  209.     STA BUFFER,X
  210.     INC COUNTER
  211.  
  212. NOTPR    STY TIMER
  213.     LDA KCODE
  214.     EOR#$FF
  215.     ORA STOPFLAG
  216.     ORA OFF
  217.     BNE ENDINT
  218.     LDX COUNTER
  219.     BEQ ENDINT
  220.     DEX
  221.     STX COUNTER
  222. LOOP    LDY BUFFER,X
  223.     STA BUFFER,X
  224.     TYA
  225.     DEX
  226.     BPL LOOP
  227.     STA KCODE
  228. ENDINT    JMP SYSVBI
  229.  
  230. ENDE    DFB 0
  231.  
  232. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯