Wrap-Around und Statuszeile implementiert
This commit is contained in:
parent
8686b70601
commit
8fb2fdc1fa
16
README.md
16
README.md
@ -15,13 +15,21 @@ die bei 00 beginnt.
|
||||
|
||||
Nachdem ZPoint gestartet wurde, zeigt es sofort die erste Datei (``ZP00.TXT``) an.
|
||||
|
||||
Die Taste + lädt die nächste Datei
|
||||
Die Taste - lädt die vorige Datei (es passiert nichts, wenn man bei der ersten Datei ist)
|
||||
Die Taste 0 geht zur ersten Datei zurück (ZP00.TXT)
|
||||
Mit der Taste q kann das Programm beendet werden.
|
||||
In Zeile 24 wird die aktuelle Foliennummer in der Form "1/10" angezeigt sowie
|
||||
ein "Prompt", der kurz die möglichen Tasten angibt:
|
||||
|
||||
``+`` lädt die nächste Datei
|
||||
``-`` lädt die vorige Datei
|
||||
``0`` sprint zur ersten Datei (00)
|
||||
``q`` beendet das Programm und kehrt zu CP/M zurück
|
||||
|
||||
Zwischen den Dateien wird der Bildschirm gelöscht und der Cursor in Position 0;0 gesetzt (VT100-Sequenzen).
|
||||
|
||||
Es findet ein "Wrap-Around" statt, d.h. bei Folie 0 geht es mit - zur Folie mit der größten Nummer
|
||||
und umgekehrt von dort mit + zu Folie 0.
|
||||
Hierfür wird beim Start des Programms geprüft, bis zu welcher Dateinummer Dateien existieren, sobald also
|
||||
eine "Lücke" in der Numerierung ist, wird die letzte existierende Datei als höchste Nummer definiert.
|
||||
|
||||
## Dateien
|
||||
|
||||
``zpoint.bas`` ist die per SAVE abgespeicherte (tokenized) Datei des Programms
|
||||
|
BIN
zpoint.bas
BIN
zpoint.bas
Binary file not shown.
69
zpointa.bas
69
zpointa.bas
@ -3,37 +3,66 @@
|
||||
12 REM Zeigt Dateien mit dem Namensschema ZPxx.TXT an
|
||||
13 REM Navigation mit + und -, mit 1 zurueck zum Anfang
|
||||
14 REM -----------
|
||||
30 DEFINT I
|
||||
30 DEFINT I,C
|
||||
31 REM i ist aktuelle Folie
|
||||
32 REM max ist die letzte Folie (max. Folienzahl)
|
||||
40 I=0
|
||||
41 C=0
|
||||
50 BELL$=CHR$(7)
|
||||
51 CLS$=CHR$(27)+"[2J"+CHR$(27)+"[0;0H"
|
||||
51 ESC$=CHR$(27)
|
||||
52 CLS$=ESC$+"[2J"+ESC$+"[0;0H"
|
||||
60 REM Pruefe, wie viele Dateien es gibt
|
||||
70 GOTO 2000
|
||||
100 REM ---START Schleife
|
||||
101 PRINT CLS$
|
||||
110 IF I<10 THEN F$="ZP0"+MID$(STR$(I),2,1)+".TXT"
|
||||
120 IF I>=10 THEN F$="ZP"+MID$(STR$(I),2,2)+".TXT"
|
||||
129 ON ERROR GOTO 1000
|
||||
130 OPEN "i",1,F$
|
||||
131 ON ERROR GOTO 0
|
||||
140 WHILE NOT EOF(1)
|
||||
150 LINE INPUT #1,L$
|
||||
160 PRINT L$
|
||||
170 WEND
|
||||
180 CLOSE 1
|
||||
200 REM ----Tastendruecke verarbeiten
|
||||
210 K$=INPUT$(1)
|
||||
220 IF K$="+" THEN I=I+1
|
||||
230 IF K$="-" THEN I=I-1
|
||||
240 IF I<0 OR K$="0" THEN I=0
|
||||
250 IF K$="q" THEN GOTO 999
|
||||
260 GOTO 100
|
||||
261 REM ---ENDE Schleife
|
||||
999 END
|
||||
130 ON ERROR GOTO 1000
|
||||
140 OPEN "i",1,F$
|
||||
150 ON ERROR GOTO 0
|
||||
160 WHILE NOT EOF(1)
|
||||
170 LINE INPUT #1,L$
|
||||
180 PRINT L$
|
||||
190 WEND
|
||||
200 CLOSE 1
|
||||
300 REM ----Foliennummer anzeigen
|
||||
310 PRINT ESC$+"[24;0H"+ESC$+"0m"+STR$(I)+"/"+STR$(MAX)+" +-0q >";
|
||||
500 REM ----Tastendruecke verarbeiten
|
||||
510 K$=INPUT$(1)
|
||||
520 IF K$="+" THEN I=I+1
|
||||
530 IF K$="-" THEN I=I-1
|
||||
540 IF K$="0" THEN I=0
|
||||
550 IF K$="q" THEN SYSTEM
|
||||
551 IF K$="Q" THEN SYSTEM
|
||||
560 IF I<0 THEN I=MAX
|
||||
570 GOTO 100
|
||||
580 REM ---ENDE Schleife
|
||||
1000 REM Fehlerbehandlung hier: Wenn Datei nicht gefunden
|
||||
1001 REM ----------
|
||||
1010 IF ERR=53 THEN GOTO 1100
|
||||
1020 IF ERR=53 THEN RESUME 200
|
||||
1020 IF ERR=53 THEN RESUME 500
|
||||
1030 PRINT "Error"+STR$(ERR)+" in Zeile "+STR$(ERL)
|
||||
1040 END
|
||||
1100 PRINT BELL$
|
||||
1110 I=0
|
||||
1120 RESUME 100
|
||||
2000 REM Durchzaehlen, welche Dateien vorhanden sind
|
||||
2001 REM um Wraparound moeglich zu machen
|
||||
2010 REM ---- Schleifenbeginn
|
||||
2019 PRINT C
|
||||
2020 IF C<10 THEN F$="ZP0"+MID$(STR$(C),2,1)+".TXT"
|
||||
2030 IF C>=10 THEN F$="ZP"+MID$(STR$(C),2,2)+".TXT"
|
||||
2040 ON ERROR GOTO 2500
|
||||
2050 OPEN "i",1,F$
|
||||
2060 CLOSE 1
|
||||
2070 ON ERROR GOTO 0
|
||||
2080 C=C+1
|
||||
2090 GOTO 2010
|
||||
2110 REM ----ENDE Schleife
|
||||
2500 REM Fehlerbehandlung zur Bestimmung der
|
||||
2501 REM max. Dateizahl
|
||||
2502 REM ----------
|
||||
2510 IF ERR<>53 GOTO 1030
|
||||
2511 REM - bei anderem Fehler diesen anzeigen und dann beenden
|
||||
2520 MAX=C-1
|
||||
2530 RESUME 100
|
||||
|
Loading…
Reference in New Issue
Block a user