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%