-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDisVar80toEmuWriter.bas
52 lines (52 loc) · 1.61 KB
/
DisVar80toEmuWriter.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
100 REM ********************
110 REM ** XB PROGRAM **
120 REM CONVERT DIS/VAR 80
130 REM TO EMU-WRITER FILES
140 REM *******************
150 DOCHEADER$="DocOfEmuWriter"&CHR$(1)&CHR$(2)
160 PGWIDTH$=CHR$(80)
170 PGHEIGHT$=CHR$(66)
180 REM ** Empty list of margin data **
190 EMPTYMARG$=CHR$(0)&CHR$(0)&CHR$(0)&CHR$(3)
200 ENDOFTEXT$=CHR$(3)
210 PRINT "SOURCE DIS/VAR 80 FILE:"
220 INPUT SOURCE$
230 PRINT "DESTINATION EMUWRITER FILE:"
240 INPUT DEST$
250 OPEN #1:SOURCE$,DISPLAY ,VARIABLE 80,INPUT
260 OPEN #2:DEST$,DISPLAY ,FIXED 64,OUTPUT
270 OUTPUTLINE$=DOCHEADER$
280 LINPUT #1:INPUTLINE$
290 REM ** Add a space between lines **
300 REM ** Except at the beginning of a paragraph **
310 IF LEN(OUTPUTLINE$)=0 THEN 340
320 LASTCHR$=SEG$(OUTPUTLINE$,LEN(OUTPUTLINE$),1)
330 IF LASTCHR$=CHR$(13)OR LASTCHR$=" " THEN 360
340 OUTPUTLINE$=OUTPUTLINE$&" "
350 REM ** Copy all visible characters to the output **
360 FOR I=1 TO LEN(INPUTLINE$)
370 ONECHR$=SEG$(INPUTLINE$,I,1)
380 IF ASC(ONECHR$)=13 THEN 410
390 IF ASC(ONECHR$)<32 THEN 420
400 IF ASC(ONECHR$)>126 THEN 420
410 OUTPUTLINE$=OUTPUTLINE$&ONECHR$
420 NEXT I
430 GOSUB 540
440 IF EOF(1)=0 THEN 280
450 CLOSE #1
460 REM ** Loaded the entire input file **
470 REM ** Now finish writing output file **
480 OUTPUTLINE$=OUTPUTLINE$&ENDOFTEXT$&PGWIDTH$&PGHEIGHT$&EMPTYMARG$
490 GOSUB 540
500 IF LEN(OUTPUTLINE$)=0 THEN 520
510 PRINT #2:OUTPUTLINE$
520 CLOSE #2
530 END
540 REM ** OUTPUT FIXED 64 RECORD **
550 IF LEN(OUTPUTLINE$)<64 THEN 610
560 REC$=SEG$(OUTPUTLINE$,1,64)
570 PRINT #2:REC$
580 PRINT REC$
590 REMAINING=LEN(OUTPUTLINE$)-64
600 OUTPUTLINE$=SEG$(OUTPUTLINE$,65,REMAINING)
610 RETURN