home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib29a.dsk
/
NOVEMBER.1986
/
CODE.SAMPLE.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
44 lines
10 REM **********************
20 REM * CODE.SAMPLE *
30 REM * BY LOREN W. WRIGHT *
40 REM * COPYRIGHT (C) 1986 *
50 REM * BY MICROSPARC, INC *
60 REM * CONCORD, MA 01742 *
70 REM **********************
80 D$ = CHR$(4):PS = 1: DIM PC$(14,1)
90 ONERR GOTO 380
100 REM READ PRINTER CODES FROM FILE
110 HOME : VTAB 12
120 PRINT "CODE FILE NAME (? FOR CATALOG):": INPUT "";NA$: IF NA$ = "?" THEN PRINT D$ LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76)): GOTO 120
130 PRINT D$"VERIFY"NA$
140 HOME : VTAB 12: PRINT "READING "NA$
150 PRINT D$"OPEN"NA$: PRINT D$"READ"NA$
160 FOR I = 1 TO 14: FOR J = 0 TO 1:
170 INPUT QX$
180 GOSUB 430
190 PC$(I,J) = PX$
200 NEXT J,I
210 PRINT D$"CLOSE"NA$
220 B$ = PC$(1,1):BZ$ = PC$(1,0):C$ = PC$(3,1):CZ$ = PC$(3,0):E$ = PC$(4,1):EZ$ = PC$(4,0)
230 HOME : VTAB 12: PRINT "PRINTER SLOT: "PS; CHR$(8);: INPUT "";PS$: IF PS$ = "" GOTO 250
240 PS = VAL(PS$): IF PS <1 OR PS >7 THEN PRINT CHR$(7): GOTO 230
250 VTAB 23: HTAB 8: PRINT "PRESS <RETURN> TO CONTINUE";: GET Z$: PRINT
260 PRINT D$"PR#"PS: PRINT CHR$(9)"80N"
270 PRINT "THIS IS A TEST OF THE CODES READ FROM"
280 PRINT "A FILE GENERATED BY PRINT.MASTER."
290 PRINT "THREE CODES ARE USED IN THIS EXAMPLE:"
300 PRINT B$"BOLDFACE"BZ$
310 PRINT C$"COMPRESSED"CZ$
320 PRINT E$"EXPANDED"EZ$
330 PRINT B$E$"BOLDFACE EXPANDED"BZ$EZ$
340 PRINT "OR "B$"MIXED "BZ$C$"ON THE SAME"CZ$E$" LINE!"EZ$
350 PRINT D$"PR#0"
360 HOME : INPUT "ANOTHER RUN? ";YN$: IF YN$ = "Y" OR YN$ = CHR$(121) GOTO 230
370 END
380 HOME : VTAB 12: PRINT "ERROR " PEEK(222)" IN LINE " PEEK(218) +256 * PEEK(219)
390 VTAB 23: HTAB 8: PRINT "PRESS <RETURN> TO CONTINUE";: GET Z$: PRINT : GOTO 90
400 REM CHANGE HEX PAIR (HX$) TO ASCII (N)
410 N = 16 *( ASC( LEFT$(HX$,1)) -48 -7 *(HX$ >"A")) + ASC( RIGHT$(HX$,1)) -48 -7 *( RIGHT$(HX$,1) >"9"): RETURN
420 REM DECODE HEX STRING QX$ TO ASCII STRING PX$
430 LQ = LEN(QX$): IF (LQ <2) OR (LQ/2 - INT(LQ/2)) THEN RETURN
440 PX$ = "": FOR K = 1 TO LQ -1 STEP 2:HX$ = MID$ (QX$,K,2): GOSUB 410:PX$ = PX$ + CHR$(N): NEXT K: RETURN