80 kolumnowa przeglądarka plików tekstowych
80 kolumnowa przeglądarka plików tekstowych
Poniżej kod kolejnej przeglądarki plików. ACT Viewer pierwotnie służył mi do szybkiego podglądania plików ACT utworzonych w języku Action! Jako że są to pliki tekstowe to nic nie stoi na przeszkodzie, aby używać go do przeglądania dowolnych plików tekstowych. Zamierzonym graniczeniem jest wyświetlanie 80 znaków w wierszu, nawet jeśli linie wczytywanego tekstu są dłuższe.
Program wykorzystuje kartę VBXE w trybie tekstowym 80×30 znaki i korzysta ze sterownika S_VBXE.SYS. Jak w poprzednich przeglądarkach można (i zachęcam) w pliku RUNEXT.CFG dodać linijki skojarzeń typów pliku z przeglądarką. W podanym niżej przykładzie przeglądarka została umieszczona w folderze A:\DOS
RUNEXT.CFG:
ACT:TXT:LST:DOC,A:\DOS\VIEWACT.COM
;ACT Viewer, AtariFan, http://atari8.eu 200818
BYTE KX=85,KY=84,COL=711
CARD X,Y,L,BUF=10
BYTE ARRAY P=0,LINE(129),F(15)
Proc KEY()
P(764)=255 WHILE P(764)=255 DO OD
Return
PROC START()
CLOSE(6) OPEN(6,”S2:”,8,7)
P(710)=2 KX=0 KY=0
COL=138 PRINTD(6,” ACT Viewer 200824 beta „)
COL=0 PRINTD(6,”████████████”) ;12 znakow spacji w inverse
COL=138 PRINTD(6,” file: „)
COL=0 PRINTD(6,”█”) ;1 znak spacji w inverse
COL=138 PRINTD(6,” line: „)
COL=0 PRINTD(6,”█”) ;1 znak spacji w inverse
COL=138 PRINTD(6,” key or esc „)
COL=0 KY=1
FOR X=0 TO 79 DO PRINTD(6,”▀”) OD ;1 znak CTRL+N w inverse
; DEKODUJ NAZWE PLIKU
X=BUF+63 DO IF P(X)=32 THEN EXIT FI X==+1 OD
X==+1 Y=X DO Y==+1 IF P(Y)=155 THEN EXIT FI OD
Y=Y-X F(0)=Y+2 MOVEBLOCK(F+3,X,Y) F(1)=$44 F(2)=$3A
CLOSE(2) OPEN(2,F,4,0)
F(0)=Y MOVEBLOCK(F+1,F+3,Y)
COL=15 KX=42 KY=0 PRINTD(6,F)
L=1
WHILE EOF(2)=0
DO
FOR X=1 TO 29
DO
KX=0 KY=31
INPUTSD(2,LINE)
IF LINE(0)>79 THEN LINE(0)=79 FI
PRINTD (6,LINE)
XIO(6,0,97,12,2,”S2:”)
KX=62 KY=0 PRINTCD(6,L) L==+1
OD
Key()
IF P(764)=28 THEN EXIT FI
OD
CLOSE(2)
P(711)=$26 KX=30 KY=0
PRINTD(6,” eof „)
CLOSE(6)
Key()
PUTD(0,125) ;czysc ekran
P(764)=255 ;skasuj klawisz
[$6C$0A$00] ;powrot do SDX
Biblioteka: