home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
86xx
/
8604.d64
/
lms.bas
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
6KB
|
195 lines
100 REM ------ LMS-AUSWERTEPROGRAMM V2.0
101 REM ------- 11/85 (C) FRANZ STOIBER
110 PRINT CHR$(14);CHR$(8): POKE 808,225: ZF=6
120 E$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192] [197]NDE [192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
130 POKE 53280,15: POKE 53281,15: POKE 646,ZF: GOSUB 1440
140 BL$=" "
150 RA=53248: PU=253: L=22: CL=985.248: R=.05
160 K0=2^8: K1=2^16: K2=2^24: K3=2^32: K4=K1-1: K5=63999: K6=10
170 RD=40679: AT=40710: AB=40535: NR=40918
180 P1=40926: P2=P1+1: P3=P1+2: P4=P1+3: P5=P1+4: P6=P1+5: P7=P1+6: P8=P1+7
200 J=0: K=80: P=RA
210 KZ$=" [206]R [193]NZ MSEK MSEK/[193]NZ"
220 SYS AT,6,5,"[205]ESSUNG .............. M"
230 SYS AT,6,7,"[193]NZEIGE AB [206]R ........ A"
240 SYS AT,6,9,"[214]ORHERGEHENDE [211]EITE .. ^"
250 SYS AT,6,11,"[206]AECHSTE [211]EITE ....... RETURN"
260 SYS AT,6,13,"[211]UMME ................ S"
270 SYS AT,6,15,"[196]RUCKEN .............. D"
280 SYS AT,6,17,"[200]ILFE ................ H"
290 SYS AT,6,19,"[197]NDE ................. E"
300 POKE 198,0: SYS AT,0,24," [215]EITER MIT: M/A/^/RETURN/S/D/H/E [146]";
310 POKE 2023,160: POKE 56295,ZF
320 GET A$: IF A$="" THEN 320
330 IF A$="M" THEN 430
340 IF A$="A" THEN 450
350 IF A$="^" THEN 490
360 IF A$=CHR$(13) THEN 540
370 IF A$="S" THEN 570
380 IF A$="D" THEN 720
390 IF A$="H" THEN 1010
400 IF A$="E" THEN 1030
410 GOTO 300
420 REM ------------------------ MESSUNG
430 POKE 808,237: PRINT CHR$(9);"[147]";: SYS 40160
440 REM --------------------- ANZEIGE AB
450 GOSUB 1930: IF F THEN 300
460 GOSUB 1440: GOSUB 1480
470 P=P-8: GOSUB 1130: GOTO 300
480 REM ------------------------ ZURUECK
490 GOSUB 1930: IF F THEN 300
500 P=P-(ZZ+L-1)*8
510 IF P<RA THEN P=RA
520 GOSUB 1130: GOTO 300
530 REM ---------------------------- VOR
540 GOSUB 1930: IF F THEN 300
550 GOSUB 1130: GOTO 300
560 REM -------------------------- SUMME
570 GOSUB 1930: IF F THEN 300
580 GOSUB 1440
590 SYS AT,5,4,"[211]UMME": SYS AT,5,5,"[163][163][163][163][163]"
600 GOSUB 1480: GOSUB 1580
610 P=P-8: S=0
620 GOSUB 1080
630 IF Z>ZB THEN 670
640 GOSUB 1370
650 S=S+T: SYS AT,30,10,Z
660 GOTO 620
670 SYS AT,30,10," "
680 T=S: T$="": GOSUB 1400
690 SYS AT,5,17,"[211]UMME =";T$;" MSEK"
700 P=RA: GOTO 300
710 REM ------------------------ DRUCKEN
720 GOSUB 1930: IF F THEN 300
730 GOSUB 1440
740 SYS AT,5,4,"[196]RUCKEN": SYS AT,5,5,"[163][163][163][163][163][163][163]"
750 GOSUB 1480: GOSUB 1580: P=P-8: S=0
760 SYS AT,5,15,"[196]RUCKER [207].[203]. ?"
770 SYS AT,5,16,"[215]EITER MIT BELIEBIGER [212]ASTE"
780 POKE 198,0: WAIT 198,1: POKE 198,0
790 OPEN 4,4,7: POKE 768,185: PRINT#4,"";: POKE 768,139
800 IF ST THEN SYS AT,8,22," [196]RUCKER NICHT BEREIT [146]": CLOSE 4: GOTO 300
810 IF K<80 THEN PL$="": GOSUB 1830: GOTO 830
820 SYS AT,0,15,BL$;: SYS AT,0,16,BL$;
830 F=0: PL$=""
840 GOSUB 1080
850 IF Z>ZB THEN 960
860 GOSUB 1320
870 GOSUB 1370
880 S=S+T: T$="": B$=" "
890 GOSUB 1400
900 IF AZ<2 THEN 920
910 B$="": T=T/AZ: AZ=0: GOTO 890
920 PL$=PL$+" "+Z$+AZ$+T$+B$
930 IF F=0 THEN F=1: GOTO 840
940 GOSUB 1830
950 GOTO 830
960 IF F THEN GOSUB 1830
970 T=S: T$="": GOSUB 1400
980 PL$=" [211]UMME ="+T$+" MSEK": GOSUB 1830
990 CLOSE 4: P=RA: GOTO 300
1000 REM ------------------------- HILFE
1010 GOSUB 1440: GOTO 220
1020 REM -------------------------- ENDE
1030 GOSUB 1440: SYS AT,5,13,"[194]ITTE [197]NDE BESTAETIGEN (J/N): [146]";
1040 GET A$: IF A$="" THEN 1040
1050 IF A$="J" THEN SYS AT,35,13,"J": SYS 64738
1060 SYS AT,0,13,BL$;: GOTO 220
1070 REM ---------- WERTE AUS RAM LESEN
1080 P=P+8: PH=INT(P/K0): PL=P-PH*K0
1090 POKE PU,PL: POKE PU+1,PH: SYS RD
1100 Z=PEEK(P1)+PEEK(P2)*K0
1110 RETURN
1120 REM ----------- AUSGABE BILDSCHIRM
1130 PRINT "[147] [206]R [193]NZ MSEK MSEK/[193]NZ "
1140 M1=0: M2=0: C1$=" ": C2$=" "
1150 FOR ZZ=1 TO L
1160 :GOSUB 1080
1170 :IF Z=K4 THEN P=P-8: PRINT E$;: GOTO 1280
1180 :GOSUB 1320
1190 :GOSUB 1370
1200 :IF T>M1 THEN M1=T: L1=ZZ: C1$="_"
1210 :T$=""
1220 :GOSUB 1400
1230 :IF AZ<2 THEN 1260
1240 :T=T/AZ: IF T>M2 THEN M2=T: L2=ZZ: C2$="_"
1250 :AZ=0: GOTO 1220
1260 :PRINT Z$;AZ$;T$
1270 NEXT
1280 IF C1$="_" THEN SYS AT,24,L1+1,C1$;
1290 IF C2$="_" THEN SYS AT,36,L2+1,C2$;
1300 RETURN
1310 REM ---------- AUFBEREITUNG NR,ANZ
1320 Z$=RIGHT$(" "+STR$(Z),6)
1330 AZ=PEEK(P3)+PEEK(P4)*K0
1340 AZ$=RIGHT$(" "+STR$(AZ),6)
1350 RETURN
1360 REM --------------- ZEIT ERRECHNEN
1370 T=(PEEK(P5)+PEEK(P6)*K0+PEEK(P7)*K1+PEEK(P8)*K2)/CL
1380 RETURN
1390 REM ------------ AUFBEREITUNG ZEIT
1400 TR=T+R: TH=INT(TR): TL=INT((TR-TH)*K6)
1410 T$=T$+RIGHT$(" "+STR$(TH),10)+"."+RIGHT$(STR$(TL),1)
1420 RETURN
1430 REM ------------------- KOPFZEILEN
1440 PRINT "[147] [204]AUFZEIT - [205]ESS - [211]YSTEM [214]2.0 ";
1450 PRINT " (C) 11/85 [160][198]RANZ [211]TOIBER "
1460 RETURN
1470 REM ---------- EINGABE ZEILENNR AB
1480 RO=8: SYS AT,5,RO,"[193]B [206]R ? ";: GOSUB 1650
1490 IF A$=" " THEN ZA=0: SYS AT,14,RO,ZA: GOTO 1520
1500 ZA=VAL(A$): IF ZA<=K5 THEN SYS AT,0,22,BL$;: GOTO 1520
1510 SYS AT,6,22," [218]EILENNUMMER ZU GROSS [146]";: GOTO 1480
1520 ZH=INT(ZA/K0): ZL=ZA-ZH*K0: POKE NR,ZL: POKE NR+1,ZH
1530 SYS AB: P=PEEK(PU)+PEEK(PU+1)*K0
1540 P=P-8: GOSUB 1080
1550 IF Z<K4 THEN RETURN
1560 SYS AT,6,22," [218]EILENNUMMER NICHT GEFUNDEN [146]";: GOTO 1480
1570 REM --------- EINGABE ZEILENNR BIS
1580 RO=10: SYS AT,5,RO,"[194]IS [206]R ? ";: GOSUB 1650
1590 IF A$=" " THEN ZB=K5: SYS AT,14,RO,ZB: RETURN
1600 ZB=VAL(A$): IF ZB>=ZA THEN 1620
1610 SYS AT,5,22," [218]EILENNR BIS < [218]EILENNR AB [146]";: GOTO 1580
1620 IF ZB>K5 THEN ZB=K5
1630 SYS AT,0,22,BL$;: RETURN
1640 REM ---------------- ZAHL EINGEBEN
1650 N=1: RC=1024+14+40*RO: CO=RC+54272: POKE 198,0
1660 FOR I=1 TO 5: POKE CO+I,ZF: NEXT
1670 IF N>5 THEN N=5
1680 IF N<1 THEN N=1
1690 PO=RC+N: POKE PO,PEEK(PO)+128
1700 GET C$: IF C$="" THEN 1700
1710 IF C$>="0" AND C$<="9" THEN POKE PO,ASC(C$): N=N+1: GOTO 1670
1720 IF C$=CHR$(157) THEN POKE PO,PEEK(PO)-128: N=N-1: GOTO 1670
1730 IF C$=CHR$(29) THEN POKE PO,PEEK(PO)-128: N=N+1: GOTO 1670
1740 IF C$=CHR$(20) THEN SYS AT,15,RO," ";: GOTO 1650
1750 IF C$=CHR$(13) THEN POKE PO,PEEK(PO)-128: GOTO 1770
1760 GOTO 1700
1770 A$=""
1780 FOR I=1 TO 5
1790 :A$=A$+CHR$(PEEK(RC+I))
1800 NEXT
1810 RETURN
1820 REM ---------------- ZEILE DRUCKEN
1830 IF K<68 THEN 1900
1840 IF K<73 THEN PRINT# 4,"": K=K+1: GOTO 1840
1850 J=J+1: PRINT# 4,"": PRINT# 4,""
1860 PRINT# 4," [204]AUFZEIT - [205]ESS - [211]YSTEM [214]2.0";
1870 PRINT# 4," (C) [198]RANZ [211]TOIBER 11/85 [211]EITE: ";RIGHT$(STR$(J+100),2)
1880 PRINT# 4,"": PRINT# 4,"": PRINT# 4,KZ$;KZ$: PRINT# 4,""
1890 K=8
1900 PRINT# 4,PL$: K=K+1
1910 RETURN
1920 REM -------------- TEST AUF MESSUNG
1930 PP=P: F=0: P=RA-8: A$=""
1940 GOSUB 1080
1950 FOR I=P1 TO P8: A$=A$+CHR$(PEEK(I)): NEXT
1960 IF A$="LMS-F.S." THEN 1990
1970 SYS AT,6,22," [203]EINE [205]ESSUNG GELAUFEN ! [146]"
1980 F=1: RETURN
1990 GOSUB 1080
2000 IF Z<K4 THEN P=PP: RETURN
2010 SYS AT,6,21," [215]AEHREND DER [205]ESSUNG WAR "
2020 SYS AT,6,22," KEIN [208]ROGRAMM GELADEN! [146]"
2030 GOTO 1980