1 REM +++++++++++++++++++++++++++++++++
2 REM ! Program ....   RAK4
4 REM ! av             Magnus Lundberg 
5 REM ! {ndrat av      Sven Wickberg <1384>
6 REM ! Minne 16 Kbytes
7 REM ! Ins{nt av      Sven Wickberg 
8 REM +++++++++++++++++++++++++++++++++
10 REM ... save RAK4  84 10 18 SW  f|r FX80  med elitestil m m
11 REM just printerrutin 84 05 01 SW
20 GOTO 390
30 REM +--------------------------------------+
40 REM !  A$   - TEXTRAD                      !
50 REM !  B$   - LOKAL GET, READ FILE         !
60 REM !  C$() - STYRTECKEN TILL PRINTER      !
70 REM !  D$   - DATUM ]]MMDD                 !
80 REM !  D1$()- DATUM ]]MMDD I FILEN         !
90 REM !  D2$  - DATUM ]]MMDD K\RDAGEN        !
100 REM ! F$() - FILNAMN                      !
110 REM ! S$   - STYRTECKEN I TEXTEN          !
120 REM ! A%   - LOKAL SLASK ADRESS DATUM CUR !
125 REM ! B%   - LOKAL SLASK INSTR            !
130 REM ! C%   - LOKAL SLASK DATUM CUR        !
132 REM ! C0%  - L[GE P] MELLANSLAG           !
135 REM ! C1%  - ANTAL EXTRA SKARVBITAR       !
137 REM ! C9%  - FLAGGA f|rsta/andra varvet   !
140 REM ! D1%  - LOKAL SLASK DATUM CUR        !
150 REM ! D2%  - LOKAL SLASK DATUM CUR        !
160 REM ! E%   - ERRCODE                      !
170 REM ! F%   - SPOOLING                     !
175 REM ! G%   - ANTAL STEG ATT SKARVA        !
178 REM ! H%   - sidnr                        !
180 REM ! I%   - LOKAL LOOPVARIABEL, DATUM    !
190 REM ! L%   - FILNUMMER PRINTER            !
200 REM ! M%() - MARGINAL                     !
210 REM ! N%   - LOOPVARIABEL, UPPLAGA        !
220 REM ! N1%  - UPPLAGA                      !
230 REM ! P%   - ORDNINGSNR P] TEXTFIL        !
232 REM ! P$   - printerkod                   !
235 REM ! Q%   - FLAGGA F\R RAK H\GER         !
240 REM ! R%   - AKTUELLT RADANTAL            !
245 REM ! R5%  - RADL[NGD VID RAK H\GER
250 REM ! R9%  - MAX RADER F\RE FORMFEED      !
260 REM ! S%   - GETSVAR 1%=JA, 2%=NEJ        !
265 REM ! S0%  - S\KNING B\RJAR               !
270 REM +-------------------------------------+
280 DEFFNX%=PEEK(884%+2%*PEEK(65011%))+SWAP%(PEEK(885%+2%*PEEK(65011%)))
290 DEFFNY%=FNX%+PEEK(65012%)
300 REM --------------------------------------+
310 GOTO 1050 : REM GET DATE                  !
320 GOTO 920 : REM PREPARE AND TEST PRINTER   !
330 GOTO 1100 : REM OPEN FILE AND READ FIRST  !
340 GOTO 1130 : REM READ FILE                 !
350 GOTO 1210 : REM TOP OF PAGE, HEADLINES    !
360 GOTO 1280 : REM GET YES/NO                !
370 GOTO 1370 : REM FELSIGNAL                 !
380 REM --------------------------------------+
390 DIM A$=256% : R%=0% : R9%=60% : REM Max rader/sida
395 DIM C$(20%),S$=20%
400 I%=120% : DIM F$(I%)=20%,M%(I%),D1$(I%)=6%
410 L%=2% : H1%=-1% : H2%=-1% : N1%=1%
420 Q$=CHR$(13%)+SPACE$(PEEK(623%))+CHR$(13%)
430 S$='DdCcEeGgRrXxTt8Pp'
440 S$(1%)='YES' : S$(2%)='NO'
450 C$(1%)=CHR$(14%) : REM D start DOUBLE WIDTH
460 C$(2%)=CHR$(20%) : REM d slut
470 C$(3%)=CHR$(15%) : REM C start CONDENSED
480 C$(4%)=CHR$(18%) : REM c slut
490 C$(5%)=CHR$(27%,69%) : REM E start EMPHASIZED
500 C$(6%)=CHR$(27%,70%) : REM e slut
510 C$(7%)=CHR$(27%,71%) : REM G start BOLD, DOUBLE PRINTING
520 C$(8%)=CHR$(27%,72%) : REM g slut
530 C$(9%)=CHR$(27%,50%) : REM R start NORMAL LINESPACING
540 C$(10%)=CHR$(27%,65%,10%)+CHR$(27%,72%) : REM r slut
545 GOSUB 5000 : REM fill{gg f|r FX
550 A%=65041% : GOSUB 1050 : D2$=D$ : REM DAGENS DATUM
560 REM === INIT PROGRAM ===
570 ; CHR$(12%);'* SKRIVUT *'TAB(40%);
580 ; 'UTSKRIFT AV TEXTER 'D2$ : ; STRING$(PEEK(623%),61%)
590 GOSUB 920 : REM PREPARE AND TEST PRINTER
600 ; 'INFIL >'; : INPUTLINE B$ : B$=LEFT$(B$,LEN(B$)-2%)
610 IF B$='' P1%=P% : GOTO 700 : REM START PRINT 
620 IF INSTR(1%,B$,'.')=0% B$=B$+'.TXT' : ; '.TXT';
630 P%=P%+1% : IF LEN(B$)>12% 650 ELSE F$(P%)=B$
640 ONERRORGOTO 650 : GOSUB 1100 : GOTO 660 : REM OPEN FILE AND READ FIRST
650 B$='Finns ej!' : P%=P%-1% : C%=5% : GOSUB 1370 : GOTO 690 : REM FELSIGNAL
660 IF LEN(A$)>9% IF LEFT$(A$,9%)='1 REM /*/' M%(P%)=0% : GOTO 690 : REM ORD
670 IF INSTR(1%,A$,'VMARG') M%(P%)=ASC(A$)-48% : GOTO 690
680 ONERRORGOTO 690 : M%(P%)=10% : ; ' VMARG'; : INPUT M%(P%)
690 ; : ; 'N[STA '; : GOTO 600
700 ; : REM - START PRINT - == MAIN LOOP ==
710 FOR N%=1% TO N1% : REM UPPLAGAN 
720 FOR P%=1% TO P1% : REM TEXTFILER
730 GOSUB 1100 : REM OPEN FILE AND READ FIRST
740 IF LEN(A$)>9% IF LEFT$(A$,9%)='1 REM /*/' A%=-1%
750 IF INSTR(1%,A$,'VMARG') A%=-1%
760 IF A%=-1% GOSUB 1130 : REM Read next
770 GOSUB 1220 : REM PRINT HEADINGS
780 REM == NEW FILE ==
790 IF A$=SPACE$(LEN(A$)) A$=''
800 IF A$='^' GOSUB 1200 : GOTO 840 : REM NY SIDA
815 IF Q% G%=R5%-LEN(A$) : IF G%