01.03.2014 Views

Section 2 - Commodore Computers

Section 2 - Commodore Computers

Section 2 - Commodore Computers

SHOW MORE
SHOW LESS

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 />

§

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!