home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU23.ARC / HW.PAL (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  2.2 KB  |  136 lines

  1. 100 OPEN2,8,1,"@0:HW.OBJ"
  2. 102 OPEN4,4
  3. 104 SYS700
  4. 106 .OPT P,O2
  5. 108 SCR =$0400
  6. 110 ZP = $00FD
  7. 112 ;
  8. 114 *= $C000
  9. 116 ;
  10. 118 ;CHECK KEYBOARD
  11. 120 P1 =*
  12. 122 LDA $00C5  ;DEBOUNCE
  13. 124 CMP FLG
  14. 126 STA FLG
  15. 128 BEQ EXIT
  16. 130 CMP #$07   ;CHECK FOR FUNCTION KEYS
  17. 132 BCS EXIT
  18. 134 CMP #$03
  19. 136 BCC EXIT
  20. 138 BEQ DUMP   ;F7
  21. 140 CMP #$05
  22. 142 BCC XF1    ;F1
  23. 144 BEQ XF3    ;F3
  24. 146 LDY #$0C   ;F5
  25. 148 ;
  26. 150 ;SEND DISK COMMAND
  27. 152 SEND =*
  28. 154 LDA #<TXT
  29. 156 STA $FB
  30. 158 LDA #>TXT
  31. 160 STA $FC
  32. 162 LDA #$08
  33. 164 JSR $FFB1  ;LISTEN
  34. 166 LDA #$6F
  35. 168 JSR $FF93  ;SECOND
  36. 170 ;
  37. 172 SD1 LDA ($00FB),Y
  38. 174 CMP #$00
  39. 176 BEQ SD2
  40. 180 JSR $FFA8  ;CIOUT
  41. 182 INY
  42. 184 JMP SD1
  43. 186 ;
  44. 188 SD2 =*     ;CLOSE FILE
  45. 190 JSR $FFAE  ;UNLSN
  46. 192 JSR $FFE7  ;CLALL
  47. 194 ;
  48. 196 EXIT =*
  49. 198 JMP $EA31  ;CONTINUE IRQ
  50. 200 ;
  51. 202 ;SPECIFY TEXT LOCATION
  52. 204 XF1 =*
  53. 206 LDY #$00
  54. 208 JMP SEND
  55. 210 XF3 LDY #$06
  56. 212 JMP SEND
  57. 214 ;
  58. 216 ;DISK COMMAND TEXT
  59. 218 TXT =*
  60. 220 .ASC "FV1=0"
  61. 222 .BYTE $00
  62. 224 .ASC "FC1=0"
  63. 226 .BYTE $00
  64. 228 .ASC "D1=0"
  65. 230 .BYTE $00
  66. 232 FLG .BYTE $00 ;REPEATED KEY REGIST
  67. 234 ;
  68. 236 ;SCR IRQ DATA TO STACK
  69. 238 DUMP =*
  70. 240 SEI
  71. 242 LDA #>DPRG ;ADD HIBYTE
  72. 244 PHA
  73. 246 LDA #<DPRG ;ADD LOBYTE
  74. 248 PHA
  75. 250 PHP        ;STATUS REGISTER
  76. 252 PHA        ;EXTRA
  77. 254 TXA        ;X REGISTER
  78. 256 PHA
  79. 258 TYA        ;Y REGISTER
  80. 260 PHA
  81. 262 CLI
  82. 264 JMP $EA31  ;CONTINUE IRQ
  83. 266 ;
  84. 268 ;SCREEN DUMP PROGRAM
  85. 270 DPRG =*
  86. 272 LDA #$04   ;OPEN SERIAL CHANNEL
  87. 274 JSR $FFB1  ;LISTEN
  88. 276 LDA #$00
  89. 278 STA SLC    ;ZERO LINE COUNTER
  90. 280 JSR $FF93  ;SECOND
  91. 282 LDA #<SCR  ;GET SCREEN CHAR
  92. 284 STA ZP
  93. 286 LDY #>SCR
  94. 288 STY ZP+1
  95. 290 ;
  96. 292 DP1 LDY #$00
  97. 294 ;
  98. 296 DP2 LDA (ZP),Y
  99. 298 AND #$7F   ;CONV SCR CODE TO ASCII
  100. 300 LDX #$04
  101. 302 ;
  102. 304 DP3 DEX
  103. 306 CMP UL,X   ;FIND CHAR SET RANGE
  104. 308 BCS DP3
  105. 310 EOR FL,X   ;FLIP BITS
  106. 312 JSR $FFA8  ;CIOUT--PRINT CHAR
  107. 314 INY
  108. 316 CPY #$28   ;COUNT 40 BYTES/LINE
  109. 318 BNE DP2
  110. 320 LDA #$0D   ;SEND LINE FEED
  111. 322 JSR $FFA8  ;CIOUT
  112. 324 ;
  113. 326 CLC        ;ADD LINE CNT TO SCR
  114. 328 LDA ZP
  115. 330 ADC #$28
  116. 332 STA ZP
  117. 334 BCC DP4    ;CARRY OR NOT
  118. 336 INC ZP+1
  119. 338 ;
  120. 340 DP4 INC SLC
  121. 342 LDA SLC    ;COUNT 25 LINES
  122. 344 CMP #$19
  123. 346 BNE DP1
  124. 348 ;
  125. 350 ;RETURN TO MAIN PROGRAM
  126. 352 EX2 =*
  127. 354 JSR $FFAE  ;UNLISTEN
  128. 356 JSR $FFCC  ;CLRCHN
  129. 358 JMP $EA81  ;EXIT TO IRQ RECOVERY
  130. 360 ;
  131. 362 ;
  132. 364 UL .BYTE $80,$60,$40,$20 ;RANGE
  133. 366 FL .BYTE $C0,$20,$00,$40 ;BIT MASK
  134. 368 SLC .BYTE $00 ;SCR LINE COUNTER
  135. 370 .END
  136.