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.
|
Nachdem ZPoint gestartet wurde, zeigt es sofort die erste Datei (``ZP00.TXT``) an.
|
||||||
|
|
||||||
Die Taste + lädt die nächste Datei
|
In Zeile 24 wird die aktuelle Foliennummer in der Form "1/10" angezeigt sowie
|
||||||
Die Taste - lädt die vorige Datei (es passiert nichts, wenn man bei der ersten Datei ist)
|
ein "Prompt", der kurz die möglichen Tasten angibt:
|
||||||
Die Taste 0 geht zur ersten Datei zurück (ZP00.TXT)
|
|
||||||
Mit der Taste q kann das Programm beendet werden.
|
``+`` 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).
|
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
|
## Dateien
|
||||||
|
|
||||||
``zpoint.bas`` ist die per SAVE abgespeicherte (tokenized) Datei des Programms
|
``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
|
12 REM Zeigt Dateien mit dem Namensschema ZPxx.TXT an
|
||||||
13 REM Navigation mit + und -, mit 1 zurueck zum Anfang
|
13 REM Navigation mit + und -, mit 1 zurueck zum Anfang
|
||||||
14 REM -----------
|
14 REM -----------
|
||||||
30 DEFINT I
|
30 DEFINT I,C
|
||||||
31 REM i ist aktuelle Folie
|
31 REM i ist aktuelle Folie
|
||||||
|
32 REM max ist die letzte Folie (max. Folienzahl)
|
||||||
40 I=0
|
40 I=0
|
||||||
|
41 C=0
|
||||||
50 BELL$=CHR$(7)
|
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
|
100 REM ---START Schleife
|
||||||
101 PRINT CLS$
|
101 PRINT CLS$
|
||||||
110 IF I<10 THEN F$="ZP0"+MID$(STR$(I),2,1)+".TXT"
|
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"
|
120 IF I>=10 THEN F$="ZP"+MID$(STR$(I),2,2)+".TXT"
|
||||||
129 ON ERROR GOTO 1000
|
130 ON ERROR GOTO 1000
|
||||||
130 OPEN "i",1,F$
|
140 OPEN "i",1,F$
|
||||||
131 ON ERROR GOTO 0
|
150 ON ERROR GOTO 0
|
||||||
140 WHILE NOT EOF(1)
|
160 WHILE NOT EOF(1)
|
||||||
150 LINE INPUT #1,L$
|
170 LINE INPUT #1,L$
|
||||||
160 PRINT L$
|
180 PRINT L$
|
||||||
170 WEND
|
190 WEND
|
||||||
180 CLOSE 1
|
200 CLOSE 1
|
||||||
200 REM ----Tastendruecke verarbeiten
|
300 REM ----Foliennummer anzeigen
|
||||||
210 K$=INPUT$(1)
|
310 PRINT ESC$+"[24;0H"+ESC$+"0m"+STR$(I)+"/"+STR$(MAX)+" +-0q >";
|
||||||
220 IF K$="+" THEN I=I+1
|
500 REM ----Tastendruecke verarbeiten
|
||||||
230 IF K$="-" THEN I=I-1
|
510 K$=INPUT$(1)
|
||||||
240 IF I<0 OR K$="0" THEN I=0
|
520 IF K$="+" THEN I=I+1
|
||||||
250 IF K$="q" THEN GOTO 999
|
530 IF K$="-" THEN I=I-1
|
||||||
260 GOTO 100
|
540 IF K$="0" THEN I=0
|
||||||
261 REM ---ENDE Schleife
|
550 IF K$="q" THEN SYSTEM
|
||||||
999 END
|
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
|
1000 REM Fehlerbehandlung hier: Wenn Datei nicht gefunden
|
||||||
|
1001 REM ----------
|
||||||
1010 IF ERR=53 THEN GOTO 1100
|
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)
|
1030 PRINT "Error"+STR$(ERR)+" in Zeile "+STR$(ERL)
|
||||||
1040 END
|
1040 END
|
||||||
1100 PRINT BELL$
|
1100 PRINT BELL$
|
||||||
1110 I=0
|
1110 I=0
|
||||||
1120 RESUME 100
|
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