A few weeks ago, I remembered this program that I wrote because hex
paper was so expensive, especially the stuff with the big hexes that is
used to draw subsector maps. If you have a wide-carriage printer, you
can print whole sector maps, if you modify this program or if you ask me
to send you the wide-carriage version of this. As listed below, this
prints a quadrant of four sectors that can be filled in by hand.
Unfortunately, I haven't written any software that will take a list of
UPP's and hex numbers and print a map with that information in graphical
form. Hopefully, I'll get around to writing that in a year or so, as
soon as some of my other programming projects are completed.
If you have any questions or comments, I'd like to hear them. I can be
reached at [email removed]
1000 REM PROGRAM QUAD2
1010 REM
1020 REM Written by John Wilber for the Atari 800 computer on 12 May 1984
1030 REM Translated to BASICA for a PC compatible on 15 May 1988
1040 REM
1050 REM This program prints out a quadrant of four subsectors on an
1060 REM Epson LX-800 printer or compatible for use with the role-playing
1070 REM game Traveller.
1080 REM
1090 REM
1100 WIDTH 80:SCREEN 0,1,0:CLS:KEY OFF 'Reset screen to defaults
1110 OPTION BASE 1
1120 DEFSTR A,E,I,Q
1130 DEFINT X,Y
1140 DIM XC(9,409)
1150 FOUR = 0: DIVD = 0
1160 LOCATE 12,32,0:COLOR 3:PRINT "Quadrant Printer"
1170 LOCATE 14,34:COLOR 9:PRINT "Version 1.0"
1180 LOCATE 24,28:PRINT "Press any key to continue";
1190 LOCATE 17,34:PRINT"Written by:"
[address removed]
1250 LOCATE 1,32:PRINT "Quadrant Printer":COLOR 7:PRINT:PRINT
1260 PRINT " This program will print either a quadrant of four subsectors or one subsector for the game Traveller."
1270 PRINT
1280 PRINT "Do you want a ";:COLOR 12:PRINT "Q";:COLOR 7:PRINT "uadrant or ";:COLOR 12:PRINT "S";:COLOR 7:PRINT "ubsector? ";
1290 Q = INKEY$
1300 IF Q > "S" THEN Q = CHR$(ASC(Q) - 32)
1310 IF Q = "S" THEN 1400
1320 IF Q <> "Q" THEN 1290
1330 FOUR = -1
1340 PRINT Q: PRINT
1350 PRINT "Do you want lines dividing the subsectors? ";
1360 Q = INKEY$
1370 IF Q > "Y" THEN Q = CHR$(ASC(Q) - 32)
1380 IF Q = "Y" THEN DIVD = -1: GOTO 1400
1390 IF Q <> "Q" THEN 1360
1400 PRINT Q: PRINT
1410 PRINT "Ready your printer that is connected to LPT1:. Press 'Q' to abort the print andany other key to start."
1420 PRINT:PRINT
1430 Q = INKEY$
1440 IF Q = "" THEN 1430 ELSE IF Q = "Q" OR Q = "q" THEN END
1450 A1$ = CHR$(1) + CHR$(6) + CHR$(8) + "0" + CHR$(192):A2$ = CHR$(192) + "0" + CHR$(8) + CHR$(6) + CHR$(1) ' Initialize strings for printing
1460 A3$ = CHR$(3) + CHR$(12) + CHR$(16) + CHR$(96) + CHR$(128):A4$ = CHR$(128) + CHR$(96) + CHR$(16) + CHR$(12) + CHR$(3)
1470 E$ = CHR$(27) ' Escape character
1480 I$ = E$ + "K" + CHR$(153) + CHR$(1) ' This puts printer into graphics mode
1490 ON ERROR GOTO 2180 ' Error trapping for the printer
1500 OPEN "LPT1:" FOR OUTPUT AS #1
1510 WIDTH #1,255
1520 PRINT #1,
1530 PRINT #1,E$;"x1";E$;"k";CHR$(1);"Subsector A: ____________________ B: ____________________" ' Put printer in sans serif NLQ and print title
1540 PRINT #1,
1550 PRINT #1," C: ____________________ D: ____________________";E$;"x0"
1560 PRINT #1,
1570 PRINT #1,E$;"A";CHR$(8) ' Changes line spacing for graphics
1580 PRINT #1,I$;STRING$(4,0); ' Line A
1590 FOR X = 1 TO 8
1600 PRINT #1,A1$;STRING$(16,128);A2$;STRING$(24,0);
1610 NEXT X
1620 PRINT #1,STRING$(5,0)
1630 PRINT #1,I$; ' Line B
1640 FOR X = 1 TO 8
1650 PRINT #1,A3$;STRING$(24,0);A4$;STRING$(16,0);
1660 NEXT X
1670 PRINT #1,STRING$(9,0)
1680 FOR Y = 1 TO 19
1690 PRINT #1,I$; ' Line C
1700 FOR X = 1 TO 8
1710 PRINT #1,A2$;STRING$(24,0);A1$;STRING$(16,128);
1720 NEXT X
1730 PRINT #1,A2$;STRING$(4,0)
1740 PRINT #1,I$;STRING$(4,0); ' Line D
1750 FOR X = 1 TO 8
1760 PRINT #1,A4$;STRING$(16,0);A3$;STRING$(24,0);
1770 NEXT X
1780 PRINT #1,A4$
1790 PRINT #1,I$;STRING$(4,0); ' Line E
1800 FOR X = 1 TO 8
1810 PRINT #1,A1$;STRING$(16,128);A2$;STRING$(24,0);
1820 NEXT X
1830 PRINT #1,A1$
1840 PRINT #1,I$; ' Line F
1850 FOR X = 1 TO 8
1860 PRINT #1,A3$;STRING$(24,0);A4$;STRING$(16,0);
1870 NEXT X
1880 PRINT #1,A3$;STRING$(4,0)
1890 NEXT Y
1900 PRINT #1,I$; ' Line C
1910 FOR X = 1 TO 8
1920 PRINT #1,A2$;STRING$(24,0);A1$;STRING$(16,128);
1930 NEXT X
1940 PRINT #1,A2$;STRING$(4,0)
1950 PRINT #1,I$;STRING$(4,0); ' Line D
1960 FOR X = 1 TO 8
1970 PRINT #1,A4$;STRING$(16,0);A3$;STRING$(24,0);
1980 NEXT X
1990 PRINT #1,A4$
2000 PRINT #1,I$;STRING$(8,0);CHR$(0); ' Line G
2010 FOR X = 1 TO 8
2020 PRINT #1,STRING$(16,128);A2$;STRING$(24,0);A1$;
2030 NEXT X
2040 PRINT #1,
2050 PRINT #1,I$;STRING$(5,0); ' Line H
2060 FOR X = 1 TO 8
2070 PRINT #1,STRING$(24,0);A4$;STRING$(16,0);A3$;
2080 NEXT X
2090 PRINT #1,STRING$(4,0)
2100 PRINT #1,I$;CHR$(0); ' Line I
2110 FOR X = 1 TO 8
2120 PRINT #1,STRING$(32,0);STRING$(18,128);
2130 NEXT X
2140 PRINT #1,CHR$(0);" &!!!";CHR$(190);CHR$(0)
2150 PRINT #1,E$;"2";CHR$(12);
2160 CLOSE #1
2170 END
2180 LOCATE 16,33,0:COLOR 12:PRINT "Printer Error"
2190 LOCATE 17,19:PRINT "Fix Printer and Press any Key to Continue"
2200 IF INKEY$ = "" THEN 2200
2210 LOCATE 16,33:COLOR 7:PRINT STRING$(13,32):PRINT STRING$(42,32)
2220 RESUME