@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr 1000 ; DLI routine voor1010 ; keyboard controller1020 ; Versie 21 juni 19961030 ALLPOT = $D2081040 PACTL = $D302105}0 PORTA = $D3001060 POTGO = $D20B1070 SKCTL = $D20F1080 STRING = $06001090 TRIG0 = $D0101100 TRIG1 = $D}0111110 VCOUNT = $D40B1120 *=$40001130 ;1140 ; Display List Interrupt1150 ; Wordt 4 maal per beeld gedaan116}0 ;1170 ; Alle registers bewaren1180 DLI PHP1190 PHA1200 TYA1210 PHA1220 TXA1}230 PHA1240 ; Bepaal schermlijn nummer1250 LDA VCOUNT1260 CMP #191270 BNE RIJ21280 ; } Vierde DLI1290 ; Meet eerste rij1300 ;1310 RIJ1 LDA #$031320 STA SKCTL1330 LDA #$071340 } STA SKCTL1350 STA POTGO1360 LDX ALLPOT1370 LDA TRIG11380 BNE RIJ1KOL21390 }LDA #'31400 LDY #31410 STA STRING,Y1420 STA STRING1430 RIJ1KOL2 TXA1440 AND #$04145 }0 BEQ RIJ1KOL11460 LDA #'21470 LDY #21480 STA STRING,Y1490 STA STRING1500 R }IJ1KOL1 TXA1510 AND #$081520 BEQ RIJ1END1530 LDA #'11540 LDY #11550 STA STR}ING,Y1560 STA STRING1570 ; Activeer vierde rij1580 RIJ1END LDA #$771590 STA PORTA1600 EINDE1 BNE EI}NDE21610 ; Derde DLI1620 ; Meet tweede rij1630 ;1640 RIJ2 CMP #151650 BNE RIJ31660 LDA #$031670 } STA SKCTL1680 LDA #$071690 STA SKCTL1700 STA POTGO1710 LDX ALLPOT1720 } LDA TRIG11730 BNE RIJ2KOL21740 LDA #'61750 LDY #61760 STA STRING,Y1770 }STA STRING1780 RIJ2KOL2 TXA1790 AND #$041800 BEQ RIJ2KOL11810 LDA #'51820 LDY #5183}0 STA STRING,Y1840 STA STRING1850 RIJ2KOL1 TXA1860 AND #$081870 BEQ RIJ2END1880 } LDA #'41890 LDY #41900 STA STRING,Y1910 STA STRING1920 ; Activeer eerste rij1930 RIJ2END} LDA #$EE1940 STA PORTA1950 EINDE2 BNE EINDE31960 ; Tweede DLI1970 ; Meet derde rij1980 ;1990 RIJ3 CMP }#112000 BNE RIJ42010 LDA #$032020 STA SKCTL2030 LDA #$072040 STA SKCTL2050} STA POTGO2060 LDX ALLPOT2070 LDA TRIG12080 BNE RIJ3KOL22090 LDA #'92100 } LDY #92110 STA STRING,Y2120 STA STRING2130 RIJ3KOL2 TXA2140 AND #$042150 BEQ }RIJ3KOL12160 LDA #'82170 LDY #82180 STA STRING,Y2190 STA STRING2200 RIJ3KOL1 TXA221}0 AND #$082220 BEQ RIJ3END2230 LDA #'72240 LDY #72250 STA STRING,Y2260 } STA STRING2270 ; Activeer tweede rij2280 RIJ3END LDA #$DD2290 STA PORTA2300 EINDE3 BNE EINDEDLI2310 ; E}erste DLI2320 ; Zet joystick poort op output2330 ; Meet vierde rij2340 ;2350 RIJ4 LDA #$382360 STA PACTL23}70 LDA #$F02380 STA PORTA2390 LDA #$3C2400 STA PACTL2410 LDA #$032420 } STA SKCTL2430 LDA #$072440 STA SKCTL2450 STA POTGO2460 LDX ALLPOT2470 L}DA TRIG12480 BNE RIJ4KOL22490 LDA #'#2500 LDY #122510 STA STRING,Y2520 STA }STRING2530 RIJ4KOL2 TXA2540 AND #$042550 BEQ RIJ4KOL12560 LDA #'02570 LDY #112580 !} STA STRING,Y2590 STA STRING2600 RIJ4KOL1 TXA2610 AND #$082620 BEQ RIJ4END2630 "} LDA #'*2640 LDY #102650 STA STRING,Y2660 STA STRING2670 ; Activeer derde rij2680 RIJ4END L#}DA #$BB2690 STA PORTA2700 EINDEDLI PLA2710 TAX2720 PLA2730 TAY2740 PLA275$}0 PLP2760 RTI700 EINDEDLI PLA2710 TAX2720 PLA2730 TAY2740 PLA275!10 OPEN #3,4,0,"D:DLI.OBJ"20 OPEN #4,8,0,"D:DLI.LST"30 TRAP 16040 GET #3,BYTE:GET #3,BYTE50 GET #3,BYTE:GET #3,BYTE60 GE&}T #3,BYTE:GET #3,BYTE70 REGEL=900080 BYTES=090 GET #3,BYTE100 IF BYTES>0 THEN PRINT #4;",";:GOTO 120110 PRINT #4;REGEL;"'} DATA ";120 PRINT #4;BYTE;130 BYTES=BYTES+1140 IF BYTES<8 THEN GOTO 90150 PRINT #4:REGEL=REGEL+10:GOTO 80160 IF BYTES>0 (}THEN PRINT #4170 CLOSE #3180 CLOSE #4190 END IF BYTES<8 THEN GOTO 90150 PRINT #4:REGEL=REGEL+10:GOTO 80160 IF BYTES>0 110 GOSUB 8000:GOSUB 7000:GOSUB 200020 KB$=LEEG$:P=230 GOSUB 100040 IF KB$=LEEG$ THEN GOTO 4050 POSITION P,22:PRINT KB$(1,*}1);60 P=P+1:IF P>39 THEN P=270 OUD$=KB$80 GOSUB 100090 KB$=LEEG$100 FOR WACHT=1 TO 20:NEXT WACHT110 IF KB$=OUD$ THEN GO+}TO 90120 GOTO 301000 REM KB$ Toetsen op scherm tonen1010 POSITION 22,71020 PRINT KB$(2,2);" ";1030 PRINT KB$(3,3);" ";1,}040 PRINT KB$(4,4);1050 POSITION 22,91060 PRINT KB$(5,5);" ";1070 PRINT KB$(6,6);" ";1080 PRINT KB$(7,7);1090 POSITION 2-}2,111100 PRINT KB$(8,8);" ";1110 PRINT KB$(9,9);" ";1120 PRINT KB$(10,10)1130 POSITION 22,131140 PRINT KB$(11,11);" ";1.}150 PRINT KB$(12,12);" ";1160 PRINT KB$(13,13);1170 RETURN 2000 REM Teken een controller2010 POKE 752,12020 POSITION 20,/}32030 PRINT ""2040 FOR LOOP=4 TO 142050 POSITION 20,LOOP2060 PRINT "| |"2070 NEXT LOOP2080 POSITION 20,10}52090 PRINT ""2100 RETURN 7000 REM Zet DLI routine in string7010 KB=ADR(KB$)7020 ML=ADR(ML$)7030 POKE 512,ML-I1}NT(ML/256)*2567040 POKE 513,INT(ML/256)7050 RESTORE 90007060 READ BYTE7070 IF BYTE<0 THEN GOTO 70907080 POKE ML,BYTE:ML=2}ML+1:GOTO 70607090 IF BYTE=-1 THEN GOTO 72007100 POKE ML,KB-INT(KB/256)*2567110 ML=ML+1:POKE ML,INT(KB/256)7120 ML=ML+1:G3}OTO 70607200 REM Zet DLI bits in Display List7210 DL=PEEK(560)+PEEK(561)*2567220 POKE DL,240:POKE DL+1,2407230 POKE DL+2,4}240:POKE DL+3,1947240 POKE 54286,1927250 RETURN 8000 REM Initialisatie8010 DIM ML$(512),KB$(13),OUD$(13)8020 DIM LEEG$(15}3)8030 LEEG$=" 123456789*0#"8040 PRINT CHR$(125);"KEYBOARD"8050 PRINT "controller"8060 PRINT "demo"8070 POSITION 20,3806}80 PRINT "Momentje!"8090 RETURN 9000 DATA 8,72,152,72,138,72,173,119010 DATA 212,201,19,208,68,169,3,1419020 DATA 15,210,7}169,7,141,15,210,1419030 DATA 11,210,174,8,210,173,17,2089040 DATA 208,10,169,179,160,3,153,-29050 DATA 141,-2,138,41,4,248}09060 DATA 10,169,178,160,2,153,-29070 DATA 141,-2,138,41,8,240,109080 DATA 169,177,160,1,153,-2,1419090 DATA -2,169,119,9}141,0,211,2089100 DATA 70,201,15,208,68,169,3,1419110 DATA 15,210,169,7,141,15,210,1419120 DATA 11,210,174,8,210,173,17,20:}89130 DATA 208,10,169,182,160,6,153,-29140 DATA 141,-2,138,41,4,2409150 DATA 10,169,181,160,5,153,-29160 DATA 141,-2,138,;}41,8,240,109170 DATA 169,180,160,4,153,-2,1419180 DATA -2,169,238,141,0,211,2089190 DATA 70,201,11,208,68,169,3,1419200 D<}ATA 15,210,169,7,141,15,210,1419210 DATA 11,210,174,8,210,173,17,2089220 DATA 208,10,169,185,160,9,153,-29230 DATA 141,-2,=}138,41,4,2409240 DATA 10,169,184,160,8,153,-29250 DATA 141,-2,138,41,8,240,109260 DATA 169,183,160,7,153,-2,1419270 DATA >}-2,169,221,141,0,211,2089280 DATA 81,169,56,141,2,211,169,2409290 DATA 141,0,211,169,60,141,2,2119300 DATA 169,3,141,15,21?}0,169,7,1419310 DATA 15,210,141,11,210,174,8,2109320 DATA 173,17,208,208,10,169,163,1609330 DATA 12,153,-2,141,-2,1389340@} DATA 41,4,240,10,169,176,160,119350 DATA 153,-2,141,-2,138,419360 DATA 8,240,10,169,170,160,10,1539370 DATA -2,141,-2,169A},187,1419380 DATA 0,211,104,170,104,168,104,409390 DATA 64,-19360 DATA 8,240,10,169,170,160,10,1539370 DATA -2,141,-2,169@?B!DLI ASMB%OBJDATA LSTB)DEMO LST