1 REM Ins{nd av Bengt Holgersson <559> 1986-02-02 23.42.40
10 REM -Vad {r nu detta d} ?
20 REM -Ett ABC80 program utan n}n funktion.
30 REM -Vad} ??
40 REM -Bara en beskrivning av en id`.
50 REM Har ni sett programmet SIDEKICK
60 REM p} PC-maskinerna s} fattar ni galoppen.
70 REM Jag menar en interruptstyrd hj{lpare
80 REM som man kan hoppa in i medan man k|r ett
90 REM annat program. Med Hex-,Dec-,Ascii-
100 REM omvandling,en enkel kalkylator m.m.
110 REM Detta program beskriver bara principen
120 REM f|r hanteringen av sk{rmen.
130 REM Naturligtvis skulle en riktig grej
140 REM vara skriven i assembler.
150 REM N}nting f|r OWOCO kanske ?
160 REM M|jligheterna att vidareutveckla
170 REM smartaidarna {r ingalunda utt|mda.
180 REM
190 REM Initiering
200 DIM A$(23%)=0% : REM M}ste vara f|rsta variabel
210 H%=9% : B%=17% : REM H|jd och Bredd
220 DIM B$(H%)=B%,C$=B%
230 IF PEEK(885%)=88% W%=80% ELSE W%=40%
240 K%=(W%-B%)/2% : R%=(23-H%)/2%
250 REM A$() = sk{rmen
260 P%=PEEK(65065%)+SWAP%(PEEK(65066%))
270 P%=PEEK(P%+4%)+SWAP%(PEEK(P%+5%))
280 FOR I%=0% TO 23% : POKE P%+I%*6%,W%,0%,PEEK(884%+I%*2%),PEEK(885%+I%*2%),W%,0% : NEXT I%
290 REM B$() = Menyn
300 B$(0%)=CHR$(23%,55%)+STRING$(B%-4%,35%)+CHR$(107%,7%)
310 FOR I%=1% TO H%-1%
320 ONERRORGOTO 330 : C$='' : READ C$
330 B$(I%)=CHR$(23%,53%)+C$+SPACE$(B%-4%-LEN(C$))+CHR$(106%,7%)
340 NEXT I%
350 B$(H%)=CHR$(23%,117%)+STRING$(B%-4%,112%)+CHR$(122%,7%)
360 DATA ' MENY',,' W','A S FLYTTA',' Z',,'RETURN P]','SPACE AV'
370 ; CUR(23%,0%)'Tryck return f|r MENY'CHR$(0%,8%);
380 REM Main loop
390 GET T$ : IF T$=' ' AND M% GOSUB 610
400 ON INSTR(1%,'WZAS'+CHR$(13%),CHR$(ASC(T$) AND 95%))+1% GOTO 390,410,450,490,530,570
410 REM Flytta upp meny
420 IF M% GOSUB 610
430 IF R% R%=R%-1%
440 GOTO 590
450 REM Flytta ned meny
460 IF M% GOSUB 610
470 IF R%<23%-H% R%=R%+1%
480 GOTO 590
490 REM Flytta meny v{nster
500 IF M% GOSUB 610
510 IF K% K%=K%-1%
520 GOTO 590
530 REM Flytta meny h|ger
540 IF M% GOSUB 610
550 IF K%