00000000: D8 1F F5 1F 64 00 3B 20 2A 2A 2A 20 31 30 45 52 |....d.; *** 10ER|
00000010: 2D 54 41 53 54 20 2E 31 32 38 20 2A 2A 2A 00 14 |-TAST .128 ***..|
00000020: 20 6E 00 3B 20 4E 55 54 5A 55 4E 47 20 44 45 53 | n.; NUTZUNG DES|
00000030: 20 43 31 32 38 2D 5A 45 48 4E 45 52 2D 00 2F 20 | C128-ZEHNER-./ |
00000040: 78 00 3B 20 42 4C 4F 43 4B 53 20 49 4D 20 36 34 |x.; BLOCKS IM 64|
00000050: 45 52 20 4D 4F 44 55 53 00 35 20 82 00 3B 00 4D |ER MODUS.5 ..;.M|
00000060: 20 8C 00 20 2E 4F 42 22 31 30 45 52 2D 54 41 53 | .. .OB"10ER-TAS|
00000070: 54 2C 50 2C 57 22 00 60 20 96 00 20 2E 45 51 43 |T,P,W".` .. .EQC|
00000080: 49 41 31 3D 24 44 43 30 30 00 73 20 A0 00 20 2E |IA1=$DC00.s .. .|
00000090: 45 51 50 4F 52 54 41 3D 43 49 41 31 00 88 20 AA |EQPORTA=CIA1.. .|
000000A0: 00 20 2E 45 51 50 4F 52 54 42 3D 43 49 41 31 2B |. .EQPORTB=CIA1+|
000000B0: 31 00 9C 20 B4 00 20 2E 45 51 44 52 52 42 3D 43 |1.. .. .EQDRRB=C|
000000C0: 49 41 31 2B 33 00 B2 20 BE 00 20 2E 45 51 56 49 |IA1+3.. .. .EQVI|
000000D0: 43 50 4F 52 54 3D 24 44 30 32 46 00 C7 20 C8 00 |CPORT=$D02F.. ..|
000000E0: 20 2E 45 51 4B 45 59 4F 55 54 3D 24 45 42 33 35 | .EQKEYOUT=$EB35|
000000F0: 00 D9 20 D2 00 20 2E 45 51 49 52 51 3D 24 45 41 |.. .. .EQIRQ=$EA|
00000100: 33 31 00 EC 20 DC 00 20 2E 45 51 42 55 46 46 45 |31.. .. .EQBUFFE|
00000110: 52 3D 24 46 46 00 00 21 E6 00 20 2E 45 51 4C 41 |R=$FF..!.. .EQLA|
00000120: 53 54 4B 45 59 3D 24 46 45 00 06 21 E9 00 3B 00 |STKEY=$FE..!..;.|
00000130: 0C 21 EA 00 3B 00 2E 21 F0 00 20 2E 42 41 24 43 |.!..;..!.. .BA$C|
00000140: 30 30 30 3B 20 53 54 41 52 54 41 44 52 45 53 53 |000; STARTADRESS|
00000150: 45 20 34 39 31 35 32 00 34 21 F5 00 3B 00 48 21 |E 49152.4!..;.H!|
00000160: FA 00 49 4E 49 54 20 53 45 49 3B 20 4E 45 55 45 |..INIT SEI; NEUE|
00000170: 4E 00 66 21 04 01 20 4C 44 41 23 3C 28 53 54 41 |N.f!.. LDA#<(STA|
00000180: 52 54 29 3B 20 49 4E 54 45 52 52 55 50 54 2D 00 |RT); INTERRUPT-.|
00000190: 80 21 0E 01 20 4C 44 59 23 3E 28 53 54 41 52 54 |.!.. LDY#>(START|
000001A0: 29 3B 20 56 45 4B 54 4F 52 00 96 21 18 01 20 53 |); VEKTOR..!.. S|
000001B0: 54 41 24 30 33 31 34 3B 20 53 45 54 5A 45 4E 00 |TA$0314; SETZEN.|
000001C0: A5 21 22 01 20 53 54 59 24 30 33 31 35 3B 00 BA |.!". STY$0315;..|
000001D0: 21 2C 01 20 43 4C 49 3B 20 55 4E 44 20 52 55 45 |!,. CLI; UND RUE|
000001E0: 43 4B 2D 00 CB 21 36 01 20 52 54 53 3B 20 53 50 |CK-..!6. RTS; SP|
000001F0: 52 55 4E 47 00 D1 21 40 01 3B 00 D7 21 4A 01 3B |RUNG..!@.;..!J.;|
00000200: 00 EF 21 54 01 53 54 41 52 54 20 53 45 49 3B 20 |..!T.START SEI; |
00000210: 4B 45 49 4E 20 49 52 51 00 0E 22 5E 01 20 4C 44 |KEIN IRQ.."^. LD|
00000220: 41 23 24 46 46 3B 20 4E 4F 52 4D 41 4C 45 20 54 |A#$FF; NORMALE T|
00000230: 41 53 54 41 54 55 52 00 25 22 68 01 20 53 54 41 |ASTATUR.%"h. STA|
00000240: 50 4F 52 54 41 3B 20 53 50 45 52 52 45 4E 00 3A |PORTA; SPERREN.:|
00000250: 22 72 01 20 4C 44 41 23 30 3B 20 50 4F 52 54 20 |"r. LDA#0; PORT |
00000260: 42 20 3D 00 50 22 7C 01 20 53 54 41 44 52 52 42 |B =.P"|. STADRRB|
00000270: 3B 20 45 49 4E 47 41 4E 47 00 76 22 86 01 20 53 |; EINGANG.v".. S|
00000280: 54 41 56 49 43 50 4F 52 54 3B 20 41 4C 4C 45 20 |TAVICPORT; ALLE |
00000290: 33 20 5A 45 49 4C 45 4E 20 54 45 53 54 45 4E 00 |3 ZEILEN TESTEN.|
000002A0: 94 22 90 01 20 4C 44 41 50 4F 52 54 42 3B 20 53 |.".. LDAPORTB; S|
000002B0: 50 41 4C 54 45 4E 4D 45 4C 44 55 4E 47 00 AA 22 |PALTENMELDUNG.."|
000002C0: 9A 01 20 43 4D 50 23 24 46 46 3B 20 50 52 55 45 |.. CMP#$FF; PRUE|
000002D0: 46 45 4E 00 CA 22 A4 01 20 42 45 51 4E 4F 54 41 |FEN..".. BEQNOTA|
000002E0: 53 54 3B 20 24 46 46 3D 4B 45 49 4E 45 20 54 41 |ST; $FF=KEINE TA|
000002F0: 53 54 45 00 DF 22 AE 01 20 4C 44 58 23 32 3B 20 |STE..".. LDX#2; |
00000300: 33 20 5A 45 49 4C 45 4E 00 FD 22 B8 01 20 4C 44 |3 ZEILEN..".. LD|
00000310: 41 23 24 46 45 3B 20 56 49 43 50 4F 52 54 20 44 |A#$FE; VICPORT D|
00000320: 45 46 41 55 4C 54 00 18 23 C2 01 4C 4F 4F 50 31 |EFAULT..#..LOOP1|
00000330: 20 4C 44 59 23 37 3B 20 38 20 53 50 41 4C 54 45 | LDY#7; 8 SPALTE|
00000340: 4E 00 38 23 CC 01 20 53 54 41 56 49 43 50 4F 52 |N.8#.. STAVICPOR|
00000350: 54 3B 20 31 20 42 49 54 20 4C 4F 45 53 43 48 45 |T; 1 BIT LOESCHE|
00000360: 4E 00 5E 23 D6 01 45 4E 54 50 52 45 4C 4C 20 4C |N.^#..ENTPRELL L|
00000370: 44 41 50 4F 52 54 42 3B 20 53 50 41 4C 54 45 4E |DAPORTB; SPALTEN|
00000380: 4D 45 4C 44 55 4E 47 00 75 23 E0 01 20 43 4D 50 |MELDUNG.u#.. CMP|
00000390: 50 4F 52 54 42 3B 20 50 52 55 45 46 45 4E 00 96 |PORTB; PRUEFEN..|
000003A0: 23 EA 01 20 42 4E 45 45 4E 54 50 52 45 4C 4C 3B |#.. BNEENTPRELL;|
000003B0: 20 55 4E 44 20 45 4E 54 50 52 45 4C 4C 45 4E 00 | UND ENTPRELLEN.|
000003C0: BA 23 F4 01 4C 4F 4F 50 32 20 52 4F 52 3B 20 31 |.#..LOOP2 ROR; 1|
000003D0: 20 42 49 54 20 49 4E 53 20 43 41 52 52 59 2D 46 | BIT INS CARRY-F|
000003E0: 4C 41 47 00 E8 23 FE 01 20 42 43 43 44 45 43 4F |LAG..#.. BCCDECO|
000003F0: 44 45 3B 20 43 41 52 52 59 3D 30 2C 20 44 41 4E |DE; CARRY=0, DAN|
00000400: 4E 20 54 41 53 54 45 20 47 45 44 52 55 45 43 4B |N TASTE GEDRUECK|
00000410: 54 00 05 24 08 02 20 44 45 59 3B 20 4E 41 45 43 |T..$.. DEY; NAEC|
00000420: 48 53 54 45 53 20 53 50 41 4C 54 45 4E 2D 00 1F |HSTES SPALTEN-..|
00000430: 24 12 02 20 42 50 4C 4C 4F 4F 50 32 3B 20 42 49 |$.. BPLLOOP2; BI|
00000440: 54 20 54 45 53 54 45 4E 00 41 24 1C 02 20 4C 44 |T TESTEN.A$.. LD|
00000450: 41 56 49 43 50 4F 52 54 3B 20 41 4C 54 45 53 20 |AVICPORT; ALTES |
00000460: 5A 45 49 4C 45 4E 2D 42 49 54 00 64 24 26 02 20 |ZEILEN-BIT.d$&. |
00000470: 41 4E 44 23 37 3B 20 48 4F 4C 45 4E 20 55 4E 44 |AND#7; HOLEN UND|
00000480: 20 41 55 53 4D 41 53 4B 49 45 52 45 4E 00 7D 24 | AUSMASKIEREN.}$|
00000490: 2B 02 20 52 4F 4C 3B 20 4C 49 4E 4B 53 2D 53 43 |+. ROL; LINKS-SC|
000004A0: 48 49 45 42 45 4E 00 A4 24 30 02 20 44 45 58 3B |HIEBEN..$0. DEX;|
000004B0: 20 5A 45 49 4C 45 4E 5A 41 45 48 4C 45 52 20 44 | ZEILENZAEHLER D|
000004C0: 45 4B 52 45 4D 45 4E 54 49 45 52 45 4E 00 CC 24 |EKREMENTIEREN..$|
000004D0: 3A 02 20 42 50 4C 4C 4F 4F 50 31 3B 20 41 4C 4C |:. BPLLOOP1; ALL|
000004E0: 45 20 5A 45 49 4C 45 4E 20 42 45 41 52 42 45 49 |E ZEILEN BEARBEI|
000004F0: 54 45 54 20 3F 00 F1 24 44 02 20 4A 4D 50 4E 4F |TET ?..$D. JMPNO|
00000500: 54 41 53 54 3B 20 4B 45 49 4E 45 20 54 41 53 54 |TAST; KEINE TAST|
00000510: 45 20 47 45 46 55 4E 44 45 4E 00 0E 25 4E 02 44 |E GEFUNDEN..%N.D|
00000520: 45 43 4F 44 45 20 43 4C 43 3B 20 41 55 53 20 58 |ECODE CLC; AUS X|
00000530: 3D 53 50 41 4C 54 45 00 24 25 58 02 20 54 58 41 |=SPALTE.$%X. TXA|
00000540: 3B 20 55 4E 44 20 59 3D 5A 45 49 4C 45 00 3A 25 |; UND Y=ZEILE.:%|
00000550: 62 02 20 41 53 4C 3B 20 44 49 45 20 41 44 52 45 |b. ASL; DIE ADRE|
00000560: 53 53 45 00 55 25 6C 02 20 41 53 4C 3B 20 49 4E |SSE.U%l. ASL; IN|
00000570: 20 44 45 52 20 54 41 53 54 41 54 55 52 2D 00 67 | DER TASTATUR-.g|
00000580: 25 76 02 20 41 53 4C 3B 20 54 41 42 45 4C 4C 45 |%v. ASL; TABELLE|
00000590: 00 81 25 80 02 20 53 54 41 42 55 46 46 45 52 3B |..%.. STABUFFER;|
000005A0: 20 42 45 52 45 43 48 4E 45 4E 00 93 25 8A 02 20 | BERECHNEN..%.. |
000005B0: 54 59 41 3B 20 55 4E 44 20 49 4E 53 00 AA 25 94 |TYA; UND INS..%.|
000005C0: 02 20 41 44 43 42 55 46 46 45 52 3B 20 58 2D 52 |. ADCBUFFER; X-R|
000005D0: 45 47 2E 00 BE 25 9E 02 20 54 41 58 3B 20 53 43 |EG...%.. TAX; SC|
000005E0: 48 52 45 49 42 45 4E 00 E2 25 A8 02 20 4C 44 41 |HREIBEN..%.. LDA|
000005F0: 4B 45 59 53 2C 58 3B 20 5A 45 49 43 48 45 4E 20 |KEYS,X; ZEICHEN |
00000600: 41 55 53 20 54 41 42 45 4C 4C 45 00 06 26 B2 02 |AUS TABELLE..&..|
00000610: 20 43 4D 50 4C 41 53 54 4B 45 59 3B 20 3D 20 4C | CMPLASTKEY; = L|
00000620: 45 54 5A 45 53 20 5A 45 49 43 48 45 4E 20 3F 00 |ETZES ZEICHEN ?.|
00000630: 26 26 BC 02 20 42 45 51 54 4F 49 52 51 3B 20 4A |&&.. BEQTOIRQ; J|
00000640: 41 2C 20 44 41 4E 4E 20 5A 55 4D 20 49 52 51 00 |A, DANN ZUM IRQ.|
00000650: 48 26 C6 02 20 53 54 41 4C 41 53 54 4B 45 59 3B |H&.. STALASTKEY;|
00000660: 20 4E 45 49 4E 20 44 41 4E 4E 20 4D 45 52 4B 45 | NEIN DANN MERKE|
00000670: 4E 00 65 26 D0 02 20 4A 53 52 4B 45 59 4F 55 54 |N.e&.. JSRKEYOUT|
00000680: 3B 20 55 4E 44 20 41 55 53 47 45 42 45 4E 00 8A |; UND AUSGEBEN..|
00000690: 26 DA 02 54 4F 49 52 51 20 4C 44 41 23 24 37 46 |&..TOIRQ LDA#$7F|
000006A0: 3B 20 53 54 41 4E 44 41 52 44 2D 54 41 53 54 41 |; STANDARD-TASTA|
000006B0: 54 55 52 00 AA 26 E4 02 20 53 54 41 50 4F 52 54 |TUR..&.. STAPORT|
000006C0: 41 3B 20 57 49 45 44 45 52 48 45 52 53 54 45 4C |A; WIEDERHERSTEL|
000006D0: 4C 45 4E 00 C0 26 EE 02 20 4C 44 41 23 24 46 46 |LEN..&.. LDA#$FF|
000006E0: 3B 20 56 49 43 50 4F 52 54 00 DE 26 F8 02 20 53 |; VICPORT..&.. S|
000006F0: 54 41 56 49 43 50 4F 52 54 3B 20 44 45 41 4B 54 |TAVICPORT; DEAKT|
00000700: 49 56 49 45 52 45 4E 00 FA 26 02 03 20 4A 4D 50 |IVIEREN..&.. JMP|
00000710: 49 52 51 3B 20 5A 55 4D 20 4B 45 52 4E 41 4C 2D |IRQ; ZUM KERNAL-|
00000720: 49 52 51 00 24 27 0C 03 4E 4F 54 41 53 54 20 4C |IRQ.$'..NOTAST L|
00000730: 44 41 23 24 30 30 3B 20 4B 45 49 4E 45 20 54 41 |DA#$00; KEINE TA|
00000740: 53 54 45 4E 20 47 45 46 55 4E 44 45 4E 00 43 27 |STEN GEFUNDEN.C'|
00000750: 16 03 20 53 54 41 4C 41 53 54 4B 45 59 3B 20 30 |.. STALASTKEY; 0|
00000760: 2D 42 59 54 45 20 4D 45 52 4B 45 4E 00 63 27 20 |-BYTE MERKEN.c' |
00000770: 03 20 4A 4D 50 54 4F 49 52 51 3B 20 5A 55 4D 20 |. JMPTOIRQ; ZUM |
00000780: 53 54 41 4E 44 41 52 44 2D 49 52 51 00 69 27 2A |STANDARD-IRQ.i'*|
00000790: 03 3B 00 6F 27 2F 03 3B 00 75 27 34 03 3B 00 A1 |.;.o'/.;.u'4.;..|
000007A0: 27 3E 03 4B 45 59 53 20 2E 42 59 24 31 33 2C 24 |'>.KEYS .BY$13,$|
000007B0: 31 44 2C 24 39 44 2C 24 31 31 2C 24 39 31 2C 24 |1D,$9D,$11,$91,$|
000007C0: 32 43 2C 24 33 30 2C 24 38 44 00 C9 27 48 03 20 |2C,$30,$8D..'H. |
000007D0: 2E 42 59 24 33 33 2C 24 33 39 2C 24 33 36 2C 24 |.BY$33,$39,$36,$|
000007E0: 30 44 2C 24 30 41 2C 24 32 44 2C 24 32 42 2C 24 |0D,$0A,$2D,$2B,$|
000007F0: 31 42 00 F1 27 52 03 20 2E 42 59 24 33 31 2C 24 |1B..'R. .BY$31,$|
00000800: 33 37 2C 24 33 34 2C 24 33 32 2C 24 30 39 2C 24 |37,$34,$32,$09,$|
00000810: 33 35 2C 24 33 38 2C 24 33 46 00 FA 27 5C 03 20 |35,$38,$3F..'\. |
00000820: 2E 45 4E 00 00 00 |.EN... |
X...D.; *** 10ER-TAST .128 ***.. N.; NUT
ZUNG DES C128-ZEHNER-./ X.; BLOCKS IM 64
ER MODUS.5 ..;.M .. .OB"10ER-TAST,P,W".`
.. .EQCIA1=$DC00.S . .EQPORTA=CIA1.. .
. .EQPORTB=CIA1+1.. .. .EQDRRB=CIA1+3..
.. .EQVICPORT=$D02F.G H. .EQKEYOUT=$EB35
.Y R. .EQIRQ=$EA31.. .. .EQBUFFER=$FF..!
.. .EQLASTKEY=$FE..!..;..!..;..!.. .BA$C
000; STARTADRESSE 49152.4!..;.H!..INIT S
EI; NEUEN.F!.. LDA#<(START); INTERRUPT-.
.!.. LDY#>(START); VEKTOR..!.. STA$0314;
SETZEN..!". STY$0315;..!,. CLI; UND RUE
CK-.K!6. RTS; SPRUNG.Q!@.;.W!J.;..!T.STA
RT SEI; KEIN IRQ.."^. LDA#$FF; NORMALE T
ASTATUR.%"H. STAPORTA; SPERREN.:"R. LDA#
0; PORT B =.P"|. STADRRB; EINGANG.V".. S
TAVICPORT; ALLE 3 ZEILEN TESTEN..".. LDA
PORTB; SPALTENMELDUNG..".. CMP#$FF; PRUE
FEN.J".. BEQNOTAST; $FF=KEINE TASTE.."..
LDX#2; 3 ZEILEN..".. LDA#$FE; VICPORT D
EFAULT..#B.LOOP1 LDY#7; 8 SPALTEN.8#L. S
TAVICPORT; 1 BIT LOESCHEN.^#V.ENTPRELL L
DAPORTB; SPALTENMELDUNG.U#.. CMPPORTB; P
RUEFEN..#.. BNEENTPRELL; UND ENTPRELLEN.
.#..LOOP2 ROR; 1 BIT INS CARRY-FLAG..#..
BCCDECODE; CARRY=0, DANN TASTE GEDRUECK
T..$.. DEY; NAECHSTES SPALTEN-..$.. BPLL
OOP2; BIT TESTEN.A$.. LDAVICPORT; ALTES
ZEILEN-BIT.D$&. AND#7; HOLEN UND AUSMASK
IEREN.}$+. ROL; LINKS-SCHIEBEN..$0. DEX;
ZEILENZAEHLER DEKREMENTIEREN.L$:. BPLLO
OP1; ALLE ZEILEN BEARBEITET ?..$D. JMPNO
TAST; KEINE TASTE GEFUNDEN..%N.DECODE CL
C; AUS X=SPALTE.$%X. TXA; UND Y=ZEILE.:%
B. ASL; DIE ADRESSE.U%L. ASL; IN DER TAS
TATUR-.G%V. ASL; TABELLE..%.. STABUFFER;
BERECHNEN..%.. TYA; UND INS..%.. ADCBUF
FER; X-REG...%.. TAX; SCHREIBEN..%.. LDA
KEYS,X; ZEICHEN AUS TABELLE..&.. CMPLAST
KEY; = LETZES ZEICHEN ?.&&.. BEQTOIRQ; J
A, DANN ZUM IRQ.H&F. STALASTKEY; NEIN DA
NN MERKEN.E&P. JSRKEYOUT; UND AUSGEBEN..
&Z.TOIRQ LDA#$7F; STANDARD-TASTATUR..&..
STAPORTA; WIEDERHERSTELLEN..&.. LDA#$FF
; VICPORT..&.. STAVICPORT; DEAKTIVIEREN.
.&.. JMPIRQ; ZUM KERNAL-IRQ.$'..NOTAST L
DA#$00; KEINE TASTEN GEFUNDEN.C'.. STALA
STKEY; 0-BYTE MERKEN.C' . JMPTOIRQ; ZUM
STANDARD-IRQ.I'*.;.O'/.;.U'4.;..'>.KEYS
.BY$13,$1D,$9D,$11,$91,$2C,$30,$8D.I'H.
.BY$33,$39,$36,$0D,$0A,$2D,$2B,$1B..'R.
.BY$31,$37,$34,$32,$09,$35,$38,$3F..'\.
.EN...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL