home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_14_1986_Transactor_Publishing.d64
/
ke.pf
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
73 lines
10 rem -------------------------------
12 rem keyboard expander profile prog
14 rem ke.pf
16 rem -------------------------------
18 rem (program variables)
20 zx=0:zy=0:zd=0:zi=0:zj=0:zb=0:zp=0
22 rem
24 rem (factor for repositioned keys)
26 sf=64:cf=128:tf=192:rem shft,c=,ctrl
28 rem
30 rem (array dimensions source keys)
32 nd=0:sd=1:cd=2:td=3:rem *norm,shft,c=,ctrl
34 rem
36 rem (used in strings for keys)
38 rem
40 s$="":l$=chr$(0):i$=chr$(0):rem new,link and i'active
42 q$=chr$(34):r$=chr$(13):n$=chr$(141):rem quote,ret,shft+ret
44 ln$=chr$(3):ls$=chr$(1):lc$=chr$(2):lt$=chr$(4):rem norm,shft,c=,ctrl
46 rem
48 rem (variables for keys)
50 a=10:b=28:c=20:d=18:e=14:f=21:g=26:h=29:i=33:j=34:k=37:l=42:m=36
52 n=39:o=38:p=41:q=62:r=17:s=13:t=22:u=30:v=31:w=9 :x=23:y=25:z=12
54 n0=35:n1=56:n2=59:n3=8:n4=11:n5=16:n6=19:n7=24:n8=27:n9=32
56 f1=4:f3=5:f5=6:f7=3:de=0:re=1:ho=51:ri=2:do=7:ua=54:la=57
58 pl=40:mi=43:eq=53:po=48:at=46:as=49:sl=55
60 pe=44:co=45:se=50:cm=47:sp=60
62 rem
64 rem (jmp vector and command line)
66 zv=0:zc=0:rem addresses, 0=none
68 rem
70 rem (key definition array storage)
72 dim zs$(3,62),zp(3,62),zr(3,62)
74 rem
76 rem ------------------------------
78 rem -define your keyboard profile-
80 rem - between lines 100 and 799 -
82 rem **dont def any new variables**
84 rem ------------------------------
86 rem
800 rem
802 rem (relocate tables)
804 rem
806 zi=fre(0):zp=peek(55)+256*peek(56):rem prog start
808 zb=peek(zp+7)+256*peek(zp+8):rem dscr base
810 ifpeek(zp+3)=75andpeek(zp+4)=69andpeek(zp+5)=88andpeek(zp+6)=80then814
812 print"error: cannot locate keyboard expander":end
814 zx=(peek(47)+256*peek(48))+9:rem array defs
816 forzi=0to62:forzj=0to3
818 zd=zb+(zi*16)+(zj*4)
820 ifzp(zj,zi)thenpokezd,zp(zj,zi)
822 zy=zr(zj,zi):ifzythenpokezd+2,zy-int(zy/256)*256:pokezd+3,int(zy/256)
824 iflen(zs$(zj,zi))=0then830
826 zy=zx+(zi*12)+(zj*3)
828 pokezd+1,peek(zy):pokezd+2,peek(zy+1):pokezd+3,peek(zy+2)
830 nextzj:nextzi
832 rem
834 ifzvthenpoke785,zv-int(zv/256)*256:poke786,int(zv/256):poke784,0
836 ifzcthenpokezb-7,zc-int(zc/256)*256:pokezb-6,int(zc/256)
838 zy=(peek(51)+256*peek(52))-9:rem new start
840 forzi=0to8:pokezy+zi,peek(zp+zi):next:pokezb-1,255
842 pokezb-5,zy-int(zy/256)*256:pokezb-4,int(zy/256)
844 poke55,peek(zb-5):poke56,peek(zb-4):clr:rem new top mem
846 rem
848 rem (store absolute version)
850 rem
852 input"create an absolute version - y/n";f$
854 iff$<>"y"andf$<>"n"then852
856 iff$="n"then864
858 input"filename for profile";f$
860 sys57812f$,8
862 poke174,0:poke175,160:poke193,peek(55):poke194,peek(56):sys62954
864 clr:end