home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 4 #4 / Commodore_Disk_User_Vol.4_4_1991_-.d64 / f-keys.list (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  3KB  |  103 lines

  1. 10 ;"@:f-keys.list"
  2. 20 *=$c000
  3. 30 lda $0314      ;have interrupts
  4. 40 cmp #$20       ;already been put in?
  5. 50 beq keyprog    ;if so, goto keyprog
  6. 60 sei 
  7. 70 lda #$20
  8. 80 sta $0314
  9. 90 lda #$c0
  10. 100 sta $0315
  11. 110 cli 
  12. 120 rts 
  13. 130 *=$c020
  14. 140 lda $c5       ;get keypress
  15. 150 cmp #$04      ;is it f1?
  16. 160 beq f1        ;goto f1
  17. 170 cmp #$05      ;is it f3?
  18. 180 beq f3        ;goto f3
  19. 190 cmp #$06      ;is it f5?
  20. 200 beq f5        ;goto f5
  21. 210 cmp #$03      ;is it f7?
  22. 220 beq f7        ;goto f7
  23. 230 jmp $ea31     ;housekeeping
  24. 240 f1            ;f1
  25. 250 lda #$00      ;set base to 00
  26. 260 jmp shift     ;test shift
  27. 270 f3            ;f3
  28. 280 lda #$10      ;set base to 10
  29. 290 jmp shift     ;test shift
  30. 300 f5            ;f5
  31. 310 lda #$20      ;set base to 20
  32. 320 jmp shift     ;test shift
  33. 330 f7            ;f7
  34. 340 lda #$30      ;set base to 30
  35. 350 jmp shift     ;test shift
  36. 360 shift         ;test shift routine
  37. 370 ldx $028e     ;get shift pattern
  38. 380 cpx #$00      ;no shift
  39. 390 beq output    ;goto output
  40. 400 cpx #$01      ;shift key
  41. 410 bne commodore ;no, goto commodore
  42. 420 adc #$07      ;add 7 to base
  43. 430 jmp output    ;goto output
  44. 440 commodore     ;commodore test
  45. 450 cpx #$02      ;is it c=?
  46. 460 bne ctrl      ;no, goto ctrl
  47. 470 adc #$3f      ;add 3f to base
  48. 480 jmp output    ;goto output
  49. 490 ctrl          ;control test
  50. 500 cpx #$04      ;is it control
  51. 510 bne output    ;goto output
  52. 520 adc #$47      ;add 47 to base
  53. 530 output        ;output key rounine
  54. 540 sta temp+1    ;put address in lda
  55. 550 ldy #$00      ;set counter to 0
  56. 560 temp          ;pointer
  57. 570 lda $c100,y   ;get char
  58. 580 sta $0277,y   ;and put in buffer
  59. 590 iny           ;next char
  60. 600 cpy #$08      ;all 8 done?
  61. 610 bne temp      ;no, goto temp
  62. 620 sty $c6       ;buffer full sign
  63. 630 ldy #$00      ;counter to 00
  64. 640 thingy        ;weird named flag?!
  65. 650 jsr $eeb3     ;delay 1ms
  66. 660 dey           ;do it 256 times
  67. 670 bne thingy    ;go back to thingy
  68. 680 jmp $ea31     ;housekeeping
  69. 690 keyprog       ;program f-key
  70. 700 jsr $aefd     ;go past comma
  71. 710 jsr $b79e     ;get number
  72. 720 cpx #$00      ;is it 0?
  73. 730 beq error     ;error!
  74. 740 cpx #$11      ;more than 17?
  75. 750 bcc getkey    ;no, okay
  76. 760 error         ;error routine
  77. 770 ldx #$0e      ;illegal quantity
  78. 780 jmp $a437     ;print errror
  79. 790 getkey dex    ;take one away
  80. 800 stx $fd       ;bung it in $fd
  81. 810 txa           ;and in acc.
  82. 820 clc           ;clear c flag
  83. 830 rol a         ;mult 2  (2)
  84. 840 rol a         ;mult 2  (4)
  85. 850 rol a         ;mult 2  (8)
  86. 860 sta address+1 ;poke into lda
  87. 870 jsr $aefd     ;go past comma
  88. 880 jsr $ad9e     ;get string
  89. 890 sta $fe       ;store length
  90. 900 jsr $b6a3     ;discard string
  91. 910 ldy #$00      ;counter to 00
  92. 920 getmore       ;getmore
  93. 930 lda ($22),y   ;get string
  94. 940 cpy $fe       ;end of string?
  95. 950 bcc address   ;no, goto adress
  96. 960 lda #$00      ;set char to 00
  97. 970 address       ;pointer
  98. 980 sta $c100,y   ;put in memory
  99. 990 iny           ;add 1 to count
  100. 1000 cpy #$08     ;8 chars?
  101. 1010 bne getmore  ;no, goto getmore
  102. 1020 rts          ;return
  103.