Commodore 128 Tips & Tricks


Go to content

Miscellaneous

Here are two very rare keyboard layouts:

Belgian-French keyboard

Swiss-German keyboard

CMD Hardware checking

This is source code how to check CMD-RAMLink, CMD-RAMDrive, CMD-FD and CMD-HD:
(it's executatble by SYS 8192,,device)

by GoDot

// I/O variables
.var toscreen = $ffd2 // BSOUT
.var listn = $ffb1
.var secnd = $ff93
.var ciout = $ffa8
.var unlsn = $ffae
.var talk = $ffb4
.var tksa = $ff96
.var acptr = $ffa5
.var untlk = $ffab

.pc=$2000 "CMD-HW CHECK"// sys8192,,devnr

starthere:
lda #<commandbuf
sta $bb // address of filename or command for floppy os, lobyte
lda #>commandbuf
sta $bc // hibyte
lda #6
sta $b7 // length of command string
// ldx drivenumber

txa
ldy #$6f
jsr listn // LISTEN
tya
jsr secnd // send secondary address after LISTEN
ldy #0
lp1:
lda ($bb),y
jsr ciout // send command bytes
iny
cpy $b7 // until length of command
bcc lp1
jsr unlsn // UNLISTEN

txa // recall drivenumber
ldy #$6f
jsr talk // TALK
tya
jsr tksa // send secondary address after TALK

jsr acptr // read bytes from drive
sta results // this is the contents of location $fea4, byte 1: h, f, or r
jsr acptr
sta results+1 // byte 2: d, d, or l
jsr untlk // UNTALK

lda results
jsr toscreen
lda results+1
jsr toscreen
rts

commandbuf:
.text "M-R"
.word $fea4
.byte $02

drivenumber:
.byte 8

results:
.byte $00,$00

Results on screen seems:
RL = RAMLink
RD = RAMDrive
FD = CMD-FD
HD = CMD-HD

If is result other it's not CMD-hardware

Detecting CMD SuperCPU in BASIC 7.0:

10 print"SuperCPU: ";:bank15
20 if(peek(53433)and128)<>128thenprint"yes, now at";peek(53432);"MHz":goto40
30 print"no, current CPU speed:";(peek(53296)-251);"MHz"
40 poke53370,0:poke53371,0:end



qWERTY CAPS LOCK bug fix:

CAPS LOCK key, in older versions of Commodore 128 (1985), it doesn't appear to affect the Q key. Actually, the problem is that whoever prepared the CAPS LOCK decoding table used the wrong value for the Q key entry. The following shows how to fix the CAPS-Q bug by setting up a new copy of the decoding table for that shift pattern:

100 REM ** COPY CAPS LOCK TABLE TO RAM
110 FOR 1=0 TO 88:POKE 6912 + I,PEEK(64484 + I):NEXT
120 REM ** CHANGE INCORRECT CHARACTER CODE FOR Q
130 POKE 6912 + 62,209
140 REM ** REDIRECT POINTER TO NEW TABLE
150 POKE 840,0:POKE 841,27


A custom table should consist of
89 values in matrix code order.


List of hardware supporting RTC (Real-Time-Clock)


Back to content | Back to main menu