You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
202A 2e2A 0000<br />
202C 0000 000£1<br />
202E 2e2E 0000 00£10<br />
20302 03£1 0000 £1£1£10<br />
2032 0000 £1£1£10<br />
}···ERROR }***ERROR -<br />
2034 21!l34<br />
5-UNDEFINED<br />
5990<br />
.PAGE • "<br />
The soft key strings"<br />
6000 61H'0 ;<br />
6010 tr: 1 r i; r r :: stiiirttTT<br />
I : 1111 r I: I;:::;;: I:; f: I;:;: 11:' I;;:':<br />
6020<br />
6030 f The actual strings<br />
6040<br />
6050 6£150<br />
6060<br />
we need supply strings only for<br />
the desired softkeys<br />
6070<br />
6080<br />
6090 611190<br />
6100<br />
6110<br />
Note that inverse Inverse video is not<br />
allowed, except that the last<br />
character of a string has its<br />
MSBit on, , same as inverse video<br />
6120<br />
6130 613111<br />
614£1 6140<br />
Note that zero bytes ('NUL1) ') get<br />
converted to RETURN (S9B) ($9B) characters<br />
6150<br />
6160 ; :;::::; :;;;: ;::;;;;;:;;:::::::;:::;::::;;:;<br />
6170<br />
6200 SD SO .BYTE "CLOSE 17:0PEN #7:OPEN #7,6,0," '7,6,0,"<br />
6210 .BYTE -BYTE QUOTE,"D!*.*",QUOTE<br />
QUOTE,"D:·.· ",QUOTE<br />
6220<br />
6230<br />
6240<br />
.BYTE -BYTE ":FOR 1-0 1=0 TO 256:GET 17,1"<br />
#7,1"<br />
.BYTE ":PRINT CHRS(I);:NEXT CHR$(I)::NEXT I"<br />
.BYTE NUL+KQUIT<br />
NbL+KQUIT<br />
6250<br />
6260<br />
SP ..BYTE "PRINT ",KQUIT+'#<br />
,<br />
6270<br />
6280 SS 55 .BYTE "SETCOLO",KQUIT+'R<br />
6290<br />
6300 630111<br />
6310<br />
6320<br />
Note the methods of getting quoted strings<br />
in .BYTE . statements and turning on the<br />
MSBitB MSBits of a character<br />
7000<br />
7010 finally, , we set up for LOAD-AND-G0<br />
LOAD-AND-GO<br />
7020 711120<br />
7030<br />
•- • • S2E0 $2E0<br />
7040<br />
7050<br />
9999<br />
-WORD .WORD<br />
. END<br />
HOOKUP<br />
Program 2.<br />
1000 •••••••••••••••••••••••••••••••••<br />
1000<br />
REM *********************************<br />
1010<br />
REH REM ■•<br />
1020<br />
REM *•<br />
EASYLOAD —--<br />
1030<br />
REM *•<br />
A BASIC PROGRAM THAT ALLOWS<br />
1040 U40<br />
REM *•<br />
THE USER TO MAKE HIS/HER HER OWN<br />
1050<br />
REM • SET OF "SOFTKEYS" FOR USE<br />
1060<br />
REM· * WITH THE "EASYKEY" PROGRAM<br />
1070<br />
REM *•<br />
1080<br />
■ — "■■""""•■•■*■**••*•■••■■■■••■■■•<br />
REM •••••••••••••••••••••••••••••••••<br />
1090<br />
REM<br />
1100<br />
REM :BEFORE : RUNNING THIS PROGRAM, BE SURE<br />
1110<br />
REM<br />
:THAT "EASYKEY" "EJ\SYKEY" HAS BEEN LOADED LOA.DED AND<br />
112111 1120<br />
REM sRUN. :RUN . YOU MAY VERIFY THIS BY CHECKING<br />
1130<br />
REM<br />
1140<br />
REM<br />
1150<br />
REM<br />
:THE VALUE OF PEEK(744) —-- IT SHOULD<br />
:MA.TCH MATCH THE NEWLOMEM PAGE VALUE IN<br />
: THE LISTING OF EASYKEY<br />
1160<br />
REM:( [ PEEK(744) = - 34 IF EASYKEY IS<br />
1170<br />
REM : ASSEMBLED AS GIVEN HERE IIERE ]<br />
1180<br />
REM<br />
1190<br />
REM == -- FIRST, SET UP ADDRESSES, ETC. ==<br />
12"0 1200 STABLE=8192iREM 8192:REM STABLE. = $2000<br />
121" 1210 STRINGS=STABLE+(2*26)<br />
STRINGS- STABLE+(2·26)<br />
1220<br />
REM<br />
123" 1230<br />
DIM KEY$(130)<br />
KEYS(130)<br />
124" 1240 REM<br />
1250<br />
REM FIRST, CLEAR OUT OLD SOFTKEY DEFINITIONS<br />
1260<br />
REM<br />
1270<br />
FOR ADDR=STABLE TO STRINGS-1:POKE STRINGS-l : ADDR,0:NEXT ADDR<br />
1280<br />
REM<br />
1290<br />
PRINT CHRS{125)r<br />
CHR$(125);<br />
130" 1300 PRINT "When " prompted, enter a softkey string"<br />
1310<br />
PRINT "for the given control-key."<br />
. "<br />
1320<br />
PRINT<br />
1330<br />
PRINT "Remember: : no inverse keys and use"<br />
1340<br />
PRINT "control-comma (the heart) to request"<br />
1358 1350 PRINT "a RETURN key code- code.<br />
Actual use of the"<br />
1360<br />
PRINT "Return key terminates the string for"<br />
1378 1370 PRINT "the given softkey."<br />
1380 13B0 PRINT :PRINT "(just "[just RETURN will undefine that key]"<br />
1390<br />
PRINT :PRINT<br />
140" 1400 ADDR=STRINGS:REM ADDRa : REM WHERE WE START STORING SOFTKEY STRINGS<br />
2000<br />
REM MAIN LOOP<br />
2010 2810<br />
FOR KEY=0 KEY".0 TO 25<br />
2020<br />
PRINT "ConTRoL-";CHR$(65+KEY);:INPUT "ConTRoL-":CHR${65+KEY)::INPUT KEYS KEY$<br />
2030 KLEN=LEN(KEY$):IF KLEN~LEN(KEY$)'IF NOT KLEN THEN 2290<br />
2040 KEY$(KLEN)"CHRS(ASC(KEY5(KLEN))+128):REM KEY${KLEN) - CHR$(ASC(KEY$(KLEN»+128):REM SET MSB HSB OF LAST CHARACTER<br />
2050 2"50 IF ADDR+KLEN>=STABLE+512 THEN PRINT "too much defined!";CHRS(253):END<br />
I ":CHR$(253):ENO<br />
2070<br />
REM SET ADDRESS OF STRING IN STABLE<br />
20B0 2080 TEMP=lNT(ADDR/256):POKE TEMP=INT(ADDR/256):POKE STABLE+KEY+KEY+1,TEMP<br />
STABLE+KEY+KEY+l,TEMP<br />
2090<br />
POKE STABLE+KEY+KEY,ADDR-256*TEMP<br />
STABLE+KEY+KEY,ADOR-256·TEMP<br />
2100<br />
FOR KPT=1 KPTul TO KLEN<br />
2110 2118<br />
POKE ADDR,ASC(KEY$(KPT))<br />
2120<br />
ADDR=ADDR+1<br />
ADDR_ADDR+ 1<br />
2130 2138<br />
NEXT KPT<br />
2200 2208<br />
REM END OF PROCESSING FOR THAT KEY<br />
2290 NEXT KEY<br />
3000<br />
REM *•****•**************♦♦•**•••***•<br />
•••••••••••••••••••••••••••••••••<br />
3010<br />
REM<br />
3020<br />
REM NOW WE ALLOW YOU TO SAVE THIS NEWLY DEFINED SET ON DISK<br />
3030<br />
REM<br />
3040<br />
REM SIMPLY HIT BREAK AT THE QUESTION IF YOU DON'T WANT TO SAVE<br />
3050 3850<br />
REM<br />
3100 31"0<br />
PRINT !PRINT :PRINT :PRINT "What set of softkeya should we save"<br />
3110<br />
PRINT" " this definition under (1-999) ";:INPUT ": : SET<br />
3120<br />
IF SETINT(SET) THEN 3100<br />
3150 KEYS="D:SOFTKEY.":KEYS(LEN{KEY$)+1)=STR$(SET)<br />
KEY$a"D:SOFTKEY.":KEY$(LEN{KEY$)+l)-STR$(SET)<br />
3200 3208<br />
OPEN 11,8,8,KEY$<br />
#1,8,0,KEYS<br />
3210<br />
FOR KPT=STABLE KPT- TO ADDR<br />
3220<br />
PUT #1,PEEK(KPT)<br />
U,PEEK{KPT)<br />
3230<br />
NEXT KPT<br />
3250<br />
CLOSE #1 U<br />
3280 32B"<br />
PRINT :PRINT "==== "m.. normal end ====" ......."<br />
3290<br />
END<br />
Program 3.<br />
Program 3.<br />
30000<br />
REM **********************'**********<br />
•••••••••••••••••••••••••••••••••<br />
30010<br />
REM<br />
30020<br />
REM THIS PROGRAM OR PROGRAM FRAGMENT IS<br />
30030 30038<br />
REM<br />
INTENDED TO BE USED TO RELOAD ONE<br />
30040<br />
REM THE SETS Of' OF SOFTKEYS Sm'TKEYS CREATED BY<br />
30050<br />
REM "EASYLOAD".<br />
30060<br />
REM<br />
30100 STABLE=8192:REM STABLE-B192 : STABLE=S2000<br />
30110<br />
DIM NAME$f20)<br />
NAME$(20)<br />
30200<br />
PRINT "What set of softkeys should be"<br />
30210<br />
PRINT" " reloaded from disk (1-999) ";:INPUT " SET<br />
30220<br />
NAMES-"D: NAME$ : SOFTKEY." ":NAMES(LEN( : NAME$(LEN(NAME$)+l) NAMES ) + D-STRS - STR$(SET)<br />
30250 OPEN #1,4,0,NAMES 'l,4,0 ,NAME $<br />
30290<br />
TRAP 30400<br />
30300<br />
FOR KPT=STABLE TO STABLE+512<br />
30310<br />
GET #1,KEY:POKE 'l,KEY:POKE KPT,KEY<br />
, KEY<br />
30320<br />
NEXT KPT<br />
30400 3040"<br />
CLOSE 'I #1<br />
30500<br />
REM COULD RETURN FROM SUBROUTINE, IF DESIRED ©<br />
f<br />
~<br />
'" g<br />
~<br />
8<br />
..<br />
31:<br />
c<br />
~<br />
!!!<br />
§