C128_SFK_Information_V1.05 {Set Function Key for Edass 128 Assembler & Editor by Frank U. Mueller } This, SFK.BAS, is a very basic version, but doing what it has to do just fine! SFK0.BAS and SFK1.BAS { SFK128ML.BL } are doing the same, just a bit more fancy style and are using more basic space and SFK1.BAS is also taking some RAM memory from $0ac5 to $0bff away. In this version, file ending .asm is added to the file name. Beside being smaller and more Edass 128 compatible, this is the major change in this latest version 1.05 This funcionality was added to older versions { SFK0.BAS and SFK1.BAS } So they are all doing the same and are now all working { according to my tests } without issues when using high resolution screens { GRAPHIC x } Just note that with Edass in memory you only have limited Basic space free. { Check Edass 128 Guide for more knowledge } ------------------------------------------------- File: SFK.BAS Use this in case you'll also need BASIC memory from your side. I kept this version as short as possible to still have some extras, but in can be made even smaller for pure purists. That's the plan for the next version. To give you max. BASIC space, and still have SFK because working with Edass 128 without this is pain in the butt. 0 bank15:graphic 1:graphic0:dimm$(8) 1 a$="!begin":b$="!edit":c$="!exit" 2 d$="!assembler":e$="!go$1300":color5,2 3 f$="!display":g$="!load":h$="!save" 4 x=11:s$=chr$(13):j$=chr$(34):scnclr0 5 p$="sfk name : ":printp$;:dountili$=s$ 6 getkeyi$:t$=t$+i$:n=n+1:color 5,15 7 printtab(n)i$;:ifn>11thenn=n+1:goto9 8 loop 9 n=n-1:t$=left$(t$,n):u$=".asm" 10 z$=j$+t$+u$+j$:color5,9:m$(1)=a$+z$ 11 m$(2)=b$+z$:m$(3)=c$:m$(4)=d$+z$ 12 m$(5)=e$:m$(6)=f$:m$(7)=g$+z$ 13 m$(8)=h$+z$:forl=1to8:keyl,m$(l) 14 w$="f"+chr$(48+l)+":"+m$(l) 15 char0,0,1+l,w$:next:print ------------------------------------------------- File: SFK0.BAS 0 bank15:graphic1:graphic0 1 dim fl$(8):color5,8 2 v$="!adios!":color0,12:color4,13 3 q$=chr$(13):fe$=".asm" 4 a$="!begin":b$="!edit":c$="!exit" 5 d$="!assembler":e$="!go$1300" 6 f$="!display":g$="!load":h$="!save" 7 gosub 45 8 v=34:co=0:poke2599,0:char0,0,2,"" 9 dowhilen$<>q$ 10 getkeyn$:color 5,15 11 nb=nb+1:if nb>99 goto 31 12 ifn$=chr$(20)thengoto39 13 ifn$=chr$(17)thengoto39 14 ifn$=chr$(145)thengoto39 15 co=co+1 16 ifco>12thengoto21 17 ifn$<>q$thenna$=na$+n$ 18 char0,0,2,na$ 19 gosub37 20 loop 21 m$="confirm:[ "+(na$)+fe$+" ] (c/n)" 22 char0,0,4,m$ 23 dowhilepl<>1 24 getkeyi$ 25 ifi$=chr$(67)thenpl=1 26 ifi$=chr$(78)thengoto39 27 loop 28 rem ifna$<>""thengoto35 29 ifna$=""thengoto30:elsegoto32 30 char0,0,6,v$:print:end 31 nb=0:char0,0,6,v$:print:end 32 gosub40 33 forl=1to8:keyl,fl$(l):next:color5,9 34 poke2599,1:xh=0:forl=1to8 35 vz$="f"+chr$(48+l)+":"+fl$(l) 36 char0,xh,5+l,vz$:next:end 37 ifn$=q$thenco=co-1 38 return 39 co=0:n$="":na$="":i$="":goto7 40 k$=chr$(v):z$=k$+na$+fe$+k$ 41 fl$(1)=a$+z$:fl$(2)=b$+z$ 42 fl$(3)=c$:fl$(4)=d$+z$ 43 fl$(5)=e$:fl$(6)=f$:fl$(7)=g$+z$ 44 fl$(8)=h$+z$:return 45 scnclr 46 uv$="edass 128 project name:" 47 uz$="sfk version 1.0,5"+q$+uv$ 48 poke2599,1:printuz$:sleep1:return ------------------------------------------------- File: SFK1.BAS and assembly part SFK128ML.BL 0 bank15:graphic1:graphic0 1 dim fl$(8):printchr$(142) 2 v$="!adios muchacho!" 3 vp$="!stop playing around!" 4 r=2830:u=2599:z=peek(r):q$=chr$(13) 5 scnclr:gosub75:hh$="sfk128ml.bl" 6 hh$="sfk128ml.bl":fe$=".asm" 7 ifz=50thenbload(hh$),b15,p2758 8 poker,96:sys3015:gosub 73 9 a$="!begin":b$="!edit":c$="!exit" 10 d$="!assembler":e$="!go$1300" 11 f$="!display":g$="!load":h$="!save" 12 sys3008:v=34:co=0:sys2832:sys3050 13 pokeu,0:char0,40/2,5,"" 14 dowhilen$<>q$ 15 getkeyn$:color5,6 16 nb=nb+1:if nb>99 goto 44 17 ifn$=chr$(20)thengoto57 18 ifn$=chr$(17)thengoto57 19 ifn$=chr$(145)thengoto57 20 ifn$=chr$(148)thengoto57 21 ifn$=chr$(19)thengoto57 22 ifn$=chr$(157)thengoto57 23 ifn$=chr$(29)thengoto57 24 pokeu,0:sound1,5000,1,,,,3:co=co+1 25 ifco>12thengoto32 26 ifn$<>q$thenna$=na$+n$ 27 rr=(len(na$))/2 28 char0,40/2-rr,5,na$ 29 gosub53 30 loop 31 color5,14 32 m$="confirm:'"+(na$)+fe$+"' (c/n)" 33 tr=len(m$)/2 34 char0,40/2-(tr),9,m$ 35 dowhilepl<>1 36 getkeyi$ 37 ifi$=chr$(67)thenpl=1 38 ifi$=chr$(78)thenpokeu,1:goto57 39 loop 40 ifna$<>""thenpokeu,1:goto46 41 ifna$=""thengoto42 42 color5,8:char0,12,10,v$ 43 end 44 color5,4:nb=0:char0,10,16,vp$ 45 end 46 gosub63 47 forl=1to8:keyl,fl$(l):next 48 xh=0:color 5,9:forl=1to8 49 char0,xh,12+l,"f"+chr$(48+l)+":"+fl$(l):next 50 rem edass 51 sys3030 52 print:end 53 ifn$=q$thenco=co-1 54 xx=(len(na$))/2:color5,1+cv 55 cv=cv+1:ifcv>10thencv=1 56 return 57 co=0:n$="":na$="":i$="":rem clear 58 sys2792:sys3035 59 color5,8 60 sys3050:rem title 61 goto13 62 rem sys 2816 freset 63 k$=chr$(v) 64 fl$(1)=a$+k$+na$+fe$+k$ 65 fl$(2)=b$+k$+na$+fe$+k$ 66 fl$(3)=c$ 67 fl$(4)=d$+k$+na$+fe$+k$ 68 fl$(5)=e$ 69 fl$(6)=f$ 70 fl$(7)=g$+k$+na$+fe$+k$ 71 fl$(8)=h$+k$+na$+fe$+k$ 72 return 73 uz$="(c) lived.ch 2023":sys3008 74 print uz$:sleep1:return 75 color 0,7:color4,7:color 5,8 76 ifz=0thenprint"* boot edass 128 1st * ":end:elseprint"loading!" 77 ifz=96thenprint"ready and steady for our next mission...":sleep1 78 return ------------------------------------------------- File: DEF-SFK.BL This is setting all function keys to default values. From Basic, bload"def-sfk.bl" and start with sys 2024 monitor monitor pc sr ac xr yr sp ; fb000 00 00 00 00 f8 d 07e8 07f5 . 007e8 a2 00 ldx #$00 . 007ea bd a8 ce lda $cea8,x . 007ed 9d 00 10 sta $1000,x . 007f0 e8 inx . 007f1 e4 4d cpx $4d . 007f3 d0 f5 bne $07ea . 007f5 60 rts