home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
s85xx
/
s8505.d64
/
menuesteuerung
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
2KB
|
74 lines
2 REM ****** MENUE-DEMO ******
4 POKE53280,0:POKE53281,0:PRINTCHR$(147)
5 REM * * * MENUE-WORTE EINLESEN * * *
6 AM=12:DIMD$(AM+1):DIMAA(AM+1):REM AM=MAX. ANZAHL DER WORTE
7 I=1
8 READD$(I):D$(I)=CHR$(32)+D$(I)+CHR$(32):IFD$(I)<>" _ "THENI=I+1:GOTO8
9 DATASTART,HELP,GOTO,RENUM,LIST
10 DATAOLD,FIND,CTRL,CLR,NEW,RUN,ENDE,_
13 REM * * * * * * * * * * * * * * * *
14 POKE214,15:PRINT:PRINTTAB(10)"<= CRSR => UND RETURN"
15 REM BEISPIEL
16 AN=1:AZ=5:GOSUB1000:REM 1.MENUE
17 ONKKGOSUB27,27,27,27,27
18 :
19 AN=6:AZ=7:GOSUB1000:REM 2.MENUE
20 ONKKGOSUB27,27,27,27,27,27,30
22 GOTO16
25 :
26 REM ANZEIGE
27 POKE214,15:PRINT:PRINTTAB(18)" "
28 POKE214,15:PRINT:PRINTTAB(10)"GEWAEHLT:";D$(AN+KK-1);"(";KK;")":RETURN
29 :
30 PRINTCHR$(147):END
32 :
1000 REM ******************************
1010 REM **** MENUE UNTERPROGRAMM ****
1020 REM ******************************
1030 REM **** (C) MARIO SCHACHT ****
1040 REM **** (030)4968872 ****
1050 REM ******************************
1060 REM **** AUFRUF (BEISPIEL) ****
1070 REM **** AN=1:AZ=4:GOSUB1000 ****
1080 REM **** ON KK GOSUB11,22,... ****
1090 REM ****- - - - - - - - - - - ****
1100 REM **** AN: ANFANG MIT AN-TEN****
1110 REM **** STRING ****
1120 REM **** AZ: ANZAHL DER MENUE-****
1130 REM **** PUNKTE ****
1140 REM **** KK: 1 BIS AZ WIRD ****
1150 REM **** UEBERGEBEN ****
1160 REM ******************************
1170 REM **** VERWENDETE VARIABLEN ****
1180 REM **** D$(AM);AA(AM);A$ ****
1190 REM **** AM;AZ;AN;AL;DI;AY;KK ****
1200 REM **** ****
1210 REM ******************************
1220 AL=0
1230 FORI=ANTO(AN+AZ-1):AL=AL+LEN(D$(I)):NEXT:REM AL=GESAMTLAENGE
1240 IFAL>38+AZTHENPOKE214,22:PRINT:PRINT" MENUE-WORTE KUERZEN !":RETURN
1250 IFAL<39THEN1290
1260 REM WORTE KUERZEN
1270 DI=AL-39:FORI=ANTO(AN+DI):D$(I)=LEFT$(D$(I),LEN(D$(I))-1):NEXT:AL=38
1280 REM MENUE DARSTELLEN
1290 POKE214,22:PRINT:PRINTTAB((40-AL)/2)
1300 FORI=ANTO(AN+AZ-1)
1310 PRINTCHR$(18)CHR$(30);D$(I);:NEXT
1330 REM ANZEIGE
1340 AA(AN)=(40-AL)/2:REM ERSTE STELLE
1350 FORI=ANTO(AN+AZ-2)
1360 AA(I+1)=AA(I)+LEN(D$(I)):NEXT
1380 REM STARTPOSITION
1390 KK=INT(AZ/2):FL=0:FR=158:GOSUB1550
1400 REM ABFRAGE
1410 GETA$:IFA$=""THEN1410
1420 IFA$<>CHR$(29)ANDA$<>CHR$(157)ANDA$<>CHR$(13)THEN1410
1430 IFA$=CHR$(29)THENKK=KK+1:FL=-1:FR=30:GOSUB1550:IFKK=AZTHENKK=0
1440 IFA$=CHR$(157)THENKK=KK-1:FL=1:FR=30:GOSUB1550:IFKK<0THENKK=AZ-1
1450 FL=0:FR=158:GOSUB1550
1460 IFA$<>CHR$(13)THEN1410
1470 POKE214,22:PRINT:PRINT" ":REM MENUE LOESCHEN
1500 KK=KK+1:RETURN:REM RUECKSPRUNG MIT PARAMETER KK
1540 REM ANZEIGE GELB
1550 POKE214,22:PRINT:PRINTTAB(AA(KK+AN+FL))CHR$(18)CHR$(FR);D$(KK+AN+FL):RETURN