home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_05_1985_Transactor_Publishing.d64
/
keywiz 64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
11KB
|
192 lines
0 rem the transactor volume 5 issue 06 page 29
10 rem ********************************
14 rem ** an amazing keyboard driver **
16 rem **** for your commodore 64 ****
18 rem *** aubrey stanley dec 1984 ***
20 rem ********************************
22 rem **
50 tb$="kernel":pg$="kprg":rem *tells loader how to load kwiz*
52 i=53216:nk=2:rem *irq address & n-key rollover count*
54 if tb$="kernel" and pg$="kprg" then 100:rem *use kernel tables & data lines*
56 if ft>1 then 100:rem *program and table files loaded from disk*
58 if ft=1 then 62:rem *program file loaded from disk*
60 ft=1:if pg$<>"kprg" then pg=1:load "0:"+pg$,8,1: rem *load program file*
62 ft=2:if tb$<>"kernel" then tb=128:load "0:"+tb$,8,1:rem *load table file*
64 goto 100
65 rem ********************************
70 rem *save program, type - run 70*
72 pg$="kwiz":rem *program file name*
74 ad=41216:bd=49152:n=2400:rem *prog address, saved from address, byte count*
76 open 2,8,2,"@0:"+pg$+",p,w"
78 goto 88
79 rem ************
80 rem *save tables, type - run 80*
82 tb$="kwiz.tb":rem *table file name*
84 ad=47072:bd=49152:n=2080:rem *table address, saved from address, byte count*
86 open 2,8,2,"@0:"+tb$+",p,w"
88 print#2,chr$(ad-int(ad/256)*256);
90 print#2,chr$(ad/256);
92 for i=0 to n-1
94 print#2,chr$(peek(bd+i));
96 next i
98 close 2:end
99 rem ********************************
100 for n=0 to 23:rem *poke irq vector code block*
102 read a:poke i+n,a:next
104 if pg=1 then 112:rem *bypass program pokes if program loaded from disk*
106 for j=41216 to 43615:rem *poke program code block*
108 read a:poke j,a:next
112 poke 41216,tb:rem *tells program whether tables are loaded from disk*
116 poke 41218,nk:rem *tells program the n-key factor*
118 poke 56334,peek(56334)and254:rem *disable keyboard (timer) interrupt*
120 poke 788,(i-int(i/256)*256):rem *set up irq vector address low byte*
122 poke 789,(i/256):rem *set up irq vector high byte*
124 poke 56334,peek(56334)or1:rem *enable keyboard (timer) interrupt
126 end:rem *of loading*
128 rem *******************************
200 data32,35,234,165,1,41,254,133,1,32,39,161,165,1,9,1,133
201 data1,76,126,234,0,90,32
250 rem *******************************
300 data0,0,2,0,184,0,185,0,186,0,187,254,253,251,247,239,223
301 data191,127,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0
302 data0,0,0,0,0,44,1,161,48,62,32,185,163,169,128,141,1
303 data161,169,46,160,165,141,143,2,140,144,2,169,0,133,198,141,141
304 data2,141,142,2,141,27,161,141,30,161,141,37,161,141,38,161,169
305 data64,133,203,133,197,141,28,161,141,29,161,169,255,162,7,157,19
306 data161,202,16,250,32,110,163,173,38,161,208,17,173,30,161,208,20
307 data169,0,141,0,220,173,1,220,201,255,208,8,162,254,32,55,163
308 data76,150,161,169,8,141,31,161,32,156,161,32,207,162,169,127,141
309 data0,220,96,206,31,161,16,1,96,174,31,161,189,11,161,141,0
310 data220,173,1,220,205,1,220,208,248,93,19,161,141,32,161,172,32
311 data161,240,222,174,31,161,136,152,45,32,161,168,77,32,161,141,33
312 data161,140,32,161,93,19,161,45,33,161,141,34,161,240,15,206,30
313 data161,173,33,161,93,19,161,29,19,161,76,7,162,173,30,161,205
314 data2,161,176,199,173,141,2,41,3,201,3,240,190,238,30,161,173
315 data33,161,93,19,161,61,19,161,157,19,161,173,31,161,10,10,10
316 data168,173,33,161,162,255,142,36,161,238,36,161,74,144,250,152,77
317 data36,161,141,36,161,10,10,168,173,3,161,133,245,173,4,161,133
318 data246,177,245,170,172,36,161,224,5,176,76,224,3,240,72,77,141
319 data2,141,141,2,141,142,2,41,4,240,34,173,141,2,41,2,240
320 data11,169,128,77,138,2,141,138,2,76,185,161,173,141,2,41,1
321 data240,31,77,37,161,141,37,161,76,185,161,173,141,2,41,3,201
322 data3,208,13,173,145,2,48,8,173,24,208,73,2,141,24,208,76
323 data185,161,173,34,161,240,29,196,197,208,6,169,64,133,203,133,197
324 data152,160,2,136,48,10,217,28,161,208,248,169,64,153,28,161,76
325 data185,161,32,76,163,169,64,172,27,161,173,36,161,153,28,161,152
326 data73,1,141,27,161,169,16,141,140,2,169,4,141,139,2,32,48
327 data163,76,185,161,173,30,161,240,91,173,141,2,41,3,201,3,240
328 data82,44,138,2,48,2,112,75,173,140,2,240,5,206,140,2,208
329 data65,206,139,2,208,60,169,4,141,139,2,169,2,141,35,161,206
330 data35,161,48,45,174,35,161,189,28,161,201,64,240,241,141,36,161
331 data32,76,163,44,138,2,48,18,41,127,201,20,240,12,201,32,240
332 data8,201,29,240,4,201,17,208,212,32,48,163,76,253,162,96,173
333 data36,161,133,203,133,197,108,143,2,224,224,176,13,138,166,198,236
334 data137,2,176,5,157,119,2,230,198,96,173,36,161,10,10,168,173
335 data141,2,10,201,8,144,2,169,6,170,189,3,161,133,245,189,4
336 data161,133,246,177,245,170,172,36,161,96,32,234,255,165,204,208,41
337 data198,205,208,37,169,20,133,205,164,211,70,207,174,135,2,177,209
338 data176,17,230,207,133,206,32,36,234,177,243,141,135,2,174,134,2
339 data165,206,73,128,32,28,234,165,1,41,16,240,10,160,0,132,192
340 data165,1,9,32,208,8,165,192,208,6,165,1,41,31,133,1,96
341 data173,0,161,208,44,162,63,189,129,235,157,0,160,202,16,247,162
342 data63,189,194,235,157,64,160,202,16,247,162,63,189,3,236,157,128
343 data160,202,16,247,162,63,189,120,236,157,192,160,202,16,247,173,0
344 data161,16,3,76,116,164,162,228,142,199,160,232,142,194,160,232,142
345 data255,160,232,142,252,160,232,142,192,160,232,142,193,160,232,142,243
346 data160,169,0,133,245,169,184,133,246,32,117,164,189,0,160,145,245
347 data136,136,136,136,202,16,244,169,0,133,245,169,185,133,246,32,117
348 data164,189,64,160,145,245,136,136,136,136,202,16,244,169,0,133,245
349 data169,186,133,246,32,117,164,189,128,160,145,245,136,136,136,136,202
350 data16,244,169,0,133,245,169,187,133,246,32,117,164,189,192,160,145
351 data245,136,136,136,136,202,16,244,162,31,138,157,224,183,202,16,249
352 data96,160,255,169,0,145,245,136,16,251,162,63,160,252,96,252,167
353 data79,165,78,165,235,167,105,165,119,166,16,167,43,168,120,168,158
354 data168,139,168,78,165,78,165,78,165,78,165,78,165,78,165,78,165
355 data78,165,78,165,78,165,78,165,78,165,78,165,78,165,78,165,78
356 data165,78,165,78,165,78,165,78,165,78,165,0,0,188,189,190,191
357 data83,84,82,73,78,71,32,63,157,67,79,78,71,73,71,32,63
358 data157,85,83,69,82,32,63,157,32,65,76,76,32,85,83,69,68
359 data32,85,78,68,79,78,69,32,79,46,75,46,78,85,76,76,32
360 data75,69,89,32,65,66,79,82,84,83,65,86,69,32,80,71,83
361 data65,86,69,32,84,66,157,95,254,226,157,255,1,255,228,0,184
362 data8,0,185,30,224,191,46,165,78,165,0,0,0,0,0,0,32
363 data52,165,76,58,163,138,224,224,176,2,169,224,41,31,10,168,185
364 data131,164,141,195,164,185,132,164,141,196,164,108,195,164,96,32,114
365 data169,32,188,169,174,24,165,36,157,16,242,169,78,141,38,165,169
366 data165,141,39,165,76,239,168,169,131,141,143,2,169,165,141,144,2
367 data169,201,133,245,169,164,133,246,169,9,32,226,168,76,78,170,224
368 data254,240,110,176,8,224,227,176,107,224,13,240,113,32,114,169,32
369 data133,169,32,188,169,173,26,165,201,226,240,87,32,152,169,169,0
370 data141,22,165,224,225,240,47,160,32,136,16,16,169,226,133,245,169
371 data164,133,246,169,9,32,226,168,76,98,166,185,224,183,201,255,240
372 data230,141,21,165,142,20,165,169,255,153,224,183,169,225,141,19,165
373 data32,226,169,174,20,165,224,255,208,3,32,8,170,32,58,163,169
374 data18,141,143,2,169,166,141,144,2,162,61,76,58,163,162,63,32
375 data58,163,162,157,76,58,163,169,255,133
400 data245,169,164,133,246,169,6,32,226,168,76,98,166,224,254,240,41
401 data224,227,176,222,224,225,208,9,32,114,169,32,188,169,174,24,165
402 data224,13,240,26,173,21,165,32,207,168,172,22,165,138,145,245,200
403 data238,22,165,192,32,240,3,76,58,163,32,58,163,173,22,165,208
404 data18,173,21,165,168,153,224,183,173,20,165,141,19,165,32,22,170
405 data208,3,32,36,170,32,226,169,173,40,165,141,138,2,169,46,141
406 data143,2,169,165,141,144,2,162,141,76,58,163,169,145,141,143,2
407 data169,166,141,144,2,169,210,133,245,169,164,133,246,169,9,32,226
408 data168,76,78,170,224,254,240,68,176,7,224,225,144,3,76,248,165
409 data224,13,208,3,76,2,166,32,114,169,32,133,169,32,188,169,32
410 data152,169,173,22,165,201,226,240,8,142,20,165,169,226,141,22,165
411 data174,20,165,224,255,208,3,32,8,170,32,58,163,169,220,141,143
412 data2,169,166,141,144,2,162,61,76,58,163,224,254,240,249,224,227
413 data144,3,76,248,165,32,114,169,32,188,169,224,225,240,7,173,26
414 data165,201,226,208,3,174,24,165,224,13,208,8,169,0,141,22,165
415 data76,81,166,142,19,165,32,58,163,76,92,166,169,42,141,143,2
416 data169,167,141,144,2,169,219,133,245,169,164,133,246,169,7,32,226
417 data168,76,78,170,224,254,240,82,176,18,224,224,144,7,224,227,240
418 data10,76,248,165,224,13,208,3,76,2,166,32,114,169,32,133,169
419 data32,188,169,32,152,169,224,227,240,8,142,20,165,169,227,141,19
420 data165,169,0,141,21,165,141,22,165,174,20,165,224,255,208,3,32
421 data8,170,32,58,163,169,0,141,41,165,169,131,141,143,2,169,167
422 data141,144,2,162,61,76,58,163,224,254,240,249,224,228,144,3,76
423 data248,165,224,225,144,9,32,114,169,32,188,169,174,24,165,224,13
424 data208,3,76,81,166,138,201,48,144,65,201,64,240,61,144,7,201
425 data71,176,55,24,105,9,41,15,238,41,165,172,41,165,192,4,240
426 data8,192,2,240,4,10,10,10,10,192,3,176,9,13,22,165,141
427 data22,165,76,223,167,13,21,165,141,21,165,192,4,240,3,76,58
428 data163,32,58,163,76,92,166,76,248,165,32,114,169,32,188,169,174
429 data24,165,36,157,16,3,108,25,165,96,36,157,16,18,169,1,45
430 data37,161,240,11,224,20,208,8,162,29,32,58,163,162,20,96,224
431 data32,144,19,224,128,144,4,224,160,144,11,142,20,165,162,148,32
432 data58,163,174,20,165,96,36,157,16,72,169,183,160,224,162,192,44
433 data42,165,48,6,169,161,160,0,162,171,133,252,132,251,169,192,133
434 data254,160,0,132,253,177,251,145,253,200,208,249,230,252,230,254,228
435 data252,208,241,44,42,165,48,10,169,0,141,1,192,32,50,170,208
436 data3,32,64,170,169,128,77,42,165,141,42,165,162,141,96,36,157
437 data16,14,172,43,165,136,16,2,160,15,140,43,165,140,33,208,96
438 data36,157,16,14,172,45,165,136,16,2,160,15,140,45,165,140,32
439 data208,96,36,157,16,42,172,44,165,136,16,2,160,15,140,44,165
440 data140,134,2,152,160,216,132,246,160,0,132,245,145,245,200,208,4
441 data230,246,208,247,192,232,208,243,166,246,224,219,208,237,162,255,96
442 data168,10,10,10,10,10,133,245,152,74,74,74,168,185,197,164,133
443 data246,96,141,41,165,160,0,32,10,169,208,251,162,255,96,173,26
444 data165,141,41,165,173,25,165,32,207,168,160,0,76,27,169,32,10
445 data169,208,248,162,255,108,38,165,177,245,201,141,208,2,169,13,170
446 data32,58,163,200,206,41,165,96,165,198,205,137,2,144,222,165,245
447 data141,34,165,165,246,141,35,165,140,33,165,173,143,2,141,36,165
448 data173,144,2,141,37,165,169,77,141,143,2,169,169,141,144,2,162
449 data255,142,38,161,76,58,163,165,198,208,244,173,34,165,133,245,173
450 data35,165,133,246,172,33,165,173,36,165,141,143,2,173,37,165,141
451 data144,2,169,0,141,38,161,76,0,169,173,36,161,10,10,141,30
452 data165,165,245,141,31,165,165,246,141,32,165,96,173,30,165,141,27
453 data165,173,31,165,141,28,165,173,32,165,141,29,165,96,173,23,165
454 data141,19,165,173,24,165,141,20,165,173,25,165,141,21,165,173,26
455 data165,141,22,165,96,173,28,165,133,245,173,29,165,133,246,96,173
456 data31,165,133,245,173,32,165,133,246,173,30,165,168,177,245,141,23
457 data165,200,177,245,141,24,165,200,177,245,141,25,165,200,177,245,141
458 data26,165,96,173,28,165,133,245,173,29,165,133,246,173,27,165,168
459 data173,19,165,145,245,200,173,20,165,145,245,200,173,21,165,145,245
460 data200,173,22,165,145,245,96,169,247,133,245,169,164,133,246,169,8
461 data32,226,168,96,169,235,133,245,169,164,133,246,169,7,32,226,168
462 data96,169,242,133,245,169,164,133,246,169,5,32,226,168,96,169,5
463 data133,245,169,165,133,246,169,7,32,226,168,96,169,12,133,245,169
464 data165,133,246,169,7,32,226,168,96,173,138,2,141,40,165,169,64
465 data141,138,2,96,1,255,1,255,1,255