'*********************************
'*      Bit anno 11 - n° 97      *
'* ITA-KEYMAP  keyboard debugger *
'* Corregge il layout della tas- *
'* tiera italiana		 *
'*********************************
print "Inserisci Workbench-disk nel drive 0 e premi return."
while inkey$<>chr$(13): wend
def fnbyte(l)=asc(mid$(map$,1,1))
def fnword(l)=fnbyte(l)*256+fnbyte(l+1)
' Memorizza file-tastiera nella stringa map$
open "df0:devs/keymaps/i" for input as #1
map$=input$(lof(1),1): close 1
table0=fnword(49)+33 ' Tavola attributi
table1=fnword(53)+33 ' Tavola tastiera
table2=fnword(45)+33 ' Tavola di rilocazione
' Legge il tipo di tasto per Y e Z
Ykey=fnbyte(table0+21)
Zkey=fnbyte(table0+49)
swap Ykey,Zkey ' Scambia i tipi
mid$=(map$,table0+21)=chr$(Ykey)
mid$=(map$,table0+49)=chr$(Zkey)
' Rilocazione del tasto Y
Yreg=instr(table2,map$,chr$(1)+chr$(136))
mid$(map$,Yreg+1,1)=chr$(24)
' Legge il set-istruzioni di Y e Z
Ykey$=mid$(map$,table1+21*4,4)
Zkey$=mid$(map$,table1+49*4,4)
swap Ykey$,Zkey$ ' Scambia i set-istruzioni
mid$(map$,table1+21*4,4)=Ykey$
mid$(map$,table1+49*4,4)=Zkey$
' Cambia tasto ^ da deadable in normale
epadd=fnword(table1+12*4+2)+33
mid$(map$,epadd*2,2)=chr$(0)+chr$(94)
open "df0:devs/keymaps/Ita" for output as #1
print #1,map$;: close 1
print: print "Fatto : tastiera italiana corretta"
print "(CLI: SetMap Ita)"
