home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
PROGRAMS
/
LIST
/
SIGNS.DOC
< prev
next >
Wrap
Text File
|
2000-06-30
|
34KB
|
660 lines
.pn
.mt3
.mb7
SIGNS.DOC
Version 4.1
by Robert W. Bloom
22 December 1986
.heSIGNS.DOC Version 4.0
Release Notice:
Sign≤ anΣ al∞ associateΣ file≤ (Signs¼ Gsigns¼ Font#¼ MakeFont, etc.⌐ arσ ì
freel∙ releaseΣ t∩ thσ publiπ fo≥ non-profi⌠ use« Iµ anybody'≤ goinτ t∩ ì
profit¼ i⌠ shoulΣ bσ meí Anywhat¼ thi≤ i≤ m∙ contributioε fo≥ al∞ thσ grea⌠ ì
program≤ I'vσ receiveΣ free║ NSWP¼ NULU¼ VDO¼ ZCPR¼ SQ/UNSQ¼ etc« Thank≤ ì
guys!
Revision History:
Signs:
1.° - MarcΦ 86¼ firs⌠ versions¼ men⌡ driven« GSign≤ created.
2.° - Ma∙ 86¼ al∞ screeε oriented.
3.° - Juε 86¼ bi⌠ mappeΣ fon⌠ files¼ releaseΣ w/MakeFon⌠ Versioε 2.0« ì
Ne≈ features║ inversσ video¼ use≥ changeablσ singlσ blocδ character¼ inter-ì
characte≥ spacing¼ block_cha≥ useΣ fo≥ fil∞ iε inversσ video.
4.0 - 25 Oct 86, added bit-mapped output, .DAT assumed for font-files.
4.▒ - 2╖ Oc⌠ 86¼ error≤ corrected║ defaul⌠ filσ extensions¼ adΣ initia∞ ì
<cr╛ fo≥ printinτ set-up¼ correc⌠ somσ initializatioε problems« Librar∙ ì
released with 3 font files (font1, font2, gothfont)
4.▒ - 2▓ Deπ 86¼ MS-DO╙ versioε releaseΣ a≤ onσ continuou≤ sourcσ filσ ì
(no include files needed) and patched so that 'Gothfont' fit.
MakeFont:
1.x - March 86, creates byte-mapped font files
2.0 - Jun 86, creates bit- mapped font files
2.1 - 8 Jul 86, minor change to open/close file routine to report errors.
2.2 - (lost)
2.3 - 27 Oct 86, made filename extensions optional.
GSigns
1.2 - Version for Pascal MT+, byte-mapped font files
3.2ß - 2╕ Ju∞ 86¼ Versioε 3.▓ oµ Sign≤ witΦ al∞ screeε handlinτ anΣ ì
printe≥ code≤ removed« Maiε codσ routine≤ reworkeΣ fo≥ menu-redispla∙ oε ì
first entry and demand.
GMakeFnt
1.0 - Version for Pascal MT+, creates byte-mapped font files for Gsigns12.
Background:
╔ wa≤ neve≥ happ∙ witΦ thσ sign- anΣ banner-makinτ program≤ availablσ fo≥ ì
CP/M« Surσ therσ werσ ß numbe≥ oµ gooΣ ones¼ speciall∙ 'GOTHIC,º bu⌠ nonσ ì
havσ enougΦ variabilit∙ t∩ sui⌠ me« B∙ variability¼ ╔ meaε thσ capabilit∙ t∩ ì
changσ sizes¼ fonts¼ anΣ pape≥ positioninτ t∩ creatσ whateve≥ ╔ wanted« Wha⌠ ì
╔ reall∙ wanteΣ wa≤ ß 'Prin⌠ Shopº fo≥ CP/M-80« Alas¼ it'≤ no⌠ availablσ anΣ ì
i⌠ look≤ a≤ iµ n∩ onσ i≤ developinτ an∙ ne≈ stufµ fo≥ m∙ favoritσ OS.
è I though the problem was solved when I ran across a set of two programsì
by Ken Crook in Pascal. I was just learning Pascal, so I thought this wouldì
be a good way to get some fun education. Unfortunately, the program was notì
written very well - although some good options were present, I couldn't evenì
compile the programs (called 'sign' and 'banner') as they wouldn't fit inì
memory. (CP/M-80, TurboPascal, 63k, error messages off.) The main problemì
was that all of the character fonts were held in memory at one time. Evenì
eliminating all the symbols and keeping just numbers and upper case lettersì
yielded a com file of 36k. (Besides, input was taken from a file not theì
console, which was a pain.)
Features:
So I decided to start over and write my own. Major features of myì
program are:
- Fonts are held in an external data file and a random access methodì
reads only the required characters into memory when they are needed.ì
Different data files may hold different fonts.
- Signs and Banners are made with the same program by changing anì
option. They may be output to the console, a file, or lst: device (printer).ì
Lots of other options are available. (see below)
- ┴ separatσ prograφ i≤ provideΣ t∩ creatσ fon⌠ files« Thσ inpu⌠ t∩ ì
thσ makefon⌠ prograφ i≤ ß filσ modifiablσ b∙ an∙ text-editor« (╔ ma∙ writσ ß ì
separatσ fon⌠ edito≥ i≤ iε thσ work≤ - ASCI╔ fon⌠ file≤ caε bσ quitσ large.)
- Tw∩ fon⌠ set≤ arσ supplied║ onσ witΦ character≤ tha⌠ arσ u≡ t∩ 1▓ ì
unit≤ higΦ countinτ ß tw∩ blocδ desende≥ anΣ u≡ t∩ 1░ block≤ wide╗ anΣ onσ ì
whicΦ i≤ fou≥ time≤ wide≥ anΣ twicσ a≤ high« Character≤ les≤ thaε thσ maximuφ ì
widtΦ arσ printeΣ proportionally« (Aε extra-largσ font¼ froφ 'GOTHICº i≤ als∩ ì
supplied for those with lots of RAM.)
- Iµ printing¼ onσ caε changσ thσ cpΘ anΣ lpΘ froφ thσ men⌡ whicΦ ì
automaticall∙ adjust≤ thσ printer« Inpu⌠ line≤ arσ checkeΣ t∩ seσ iµ the∙ ì
wil∞ fit« Norma∞ (80⌐ anΣ widσ (132⌐ terminals¼ a≤ wel∞ a≤ smal∞ (8"⌐ anΣ ì
largσ (14"⌐ printer≤ arσ correctl∙ handled« Thσ use≥ caε eveε reques⌠ outpu⌠ ì
iε "reversσ videoó (Whitσ letters¼ blacδ backgrounΣ insteaΣ oµ blacδ letter≤ ì
oε ß whitσ background.)
- Thσ letter≤ oµ thσ outpu⌠ sign/banne≥ caε bσ madσ oµ thσ lette≥ ì
itself¼ an∙ singlσ character¼ ß 'overstrikeº blocδ t∩ makσ ß nicσ blacδ soliΣ ì
blocδ o≥ individua∞ dot≤ usinτ thσ graphic≤ modσ oµ thσ printer« (Naturall∙ ì
thσ graphic≤ dot-modσ wil∞ creatσ mucΦ smalle≥ letter≤ anΣ i≤ strongl∙ printe≥ ì
dependant« Currentl∙ i⌠ i≤ writteε fo≥ thσ ID╙ (o≥ DataProducts⌐ printer« ì
OKI is very similar.)
╔ thinδ you'l∞ finΣ tha⌠ thσ prograφ i≤ self-explanatory« Oncσ selected¼ ì
ß optioε doe≤ no⌠ changσ unti∞ manuall∙ changed« Thi≤ allow≤ changinτ jus⌠ ì
onσ optioε quickly« Somσ option≤ eliminatσ others.
Files:
è Therσ arσ fou≥ basiπ libraries║ TSIGNS¼ MSIGNS¼ ISIGNS¼ anΣ GSIGNS« ì
Generall∙ speaking¼ TSIGN╙ contain≤ sources¼ MSIGN╙ contaiε generiπ ì
executable≤ (CP/M-80)¼ GSIGN╙ generiπ Z8░ codσ anΣ executables¼ anΣ ISIGN╙ aε ì
MS-DO╙ versioε witΦ sourcσ includinτ ß extra-largσ gothiπ font« Mos⌠ file≤ ì
arσ crunched, squeezed and archived.
Iµ yo⌡ havσ CP/m-8░ TurboPascal¼ al∞ yo⌡ neeΣ i≤ TSIGNS.LBR« Iµ yo⌡ ì
don'⌠ bu⌠ caε ruε Z8░ code¼ ge⌠ GSIGNS o≥ later« Iµ al∞ yo⌡ caε ruε i≤ 808░ ì
codσ yo⌡ neeΣ i≤ MSIGNS« IB═ peoplσ ge⌠ ISIGN╙ anΣ thσ extra-largσ GOTHI├ ì
font« Major file break-down is:
TSIGNS contains:
READ.ME - unsqueezed introduction to signs.
FONT1.ASC \
FONT2.ASC / ASCII files of character fonts, modify at will. Useì
witΦ MakeFon⌠ t∩ creatσ FONT1.DA╘ anΣ FONT2.DA╘ whicΦ i≤ useΣ ì
áááááááááááááááa≤ thσ fon⌠ file≤ b∙ SIGNS.COM« FONT▒ i≤ 10x12¼ FONT▓ i≤ ì
ááááááááááááááá40x24.
MAKEFONT.PA╙ - (MakeFont⌐ sourcσ codσ fo≥ fon⌠ generato≥ - ask≤ fo≥ ì
áááááááááááááááinpu⌠ anΣ outpu⌠ filenames« Change≤ .AS├ fon⌠ filσ int∩ ß .DA╘ ì
áááááááááááááááfon⌠ file.
SIGNS.PAS \
SIGNS0.PAS \
SIGNS1.PAS \ - source code for sign generator.
SIGNS2.PAS /
SIGNS3.PA╙ »
SIGNS4.PAS /
SIGNS.IN - sample file input, contains all printable characters.
SIGNS.OUT - sample output file from signs.in
SIGNS.DOC - this file.
POP.PAS - make your machine go 'pop'
MSIGNS Contains:
GSIGNS12.SRC - Generic Pascal version (no TurboPascal functions andì
considerably less sophisicated.)
GSIGNS12.COM - CP/M-80 object code from above
GMAKEFNT.SRC - source code for font generator - asks for input andì
output filenames.
GMAKEFNT.COM - CP/M-80 object code (max size 20w by 24h)
GCHARS.DAT - created by GMAKEFNT, used by GSIGNS12.
GFONT.AS├ - olΣ cop∙ oµ FONT1.AS├ (iε ß slightl∙ differen⌠ format⌐ ì
áááááááááááááááa≤ useΣ iε thσ SIGNS.LB╥ abovσ anΣ useΣ t∩ creatσ GCHARS.DA╘ ì
ááááááááááááááá(10x1▓ font)
GREAD.ME - very brief introduction to gsigns.
GSIGNS Contains:
GSIGNS32.PAS - Source, but if you need source use the full SIGNS.
GSIGNS32.COM - CP/M-80 object code (Z80)
FONT1.DAT \
FONT2.DAT / font files, ready to run
MAKEFONT.CO═ - fon⌠ generato≥ (objec⌠ codσ oµ sourcσ iε thσ ful∞ ì
áááááááááááááááSIGN╙ library« T∩ ruε this¼ you'l∞ als∩ neeΣ thσ source≤ fo≥ ì
áááááááááááááááthσ Fon⌠ file≤ from TSIGNS.
è ISIGNS contains:
GOTHFONT.F╞ - ┴ filσ oµ al∞ character≤ a≤ outpu⌠ b∙ 'GOTHICº iε ì
ááááááááááááááábanne≥ form
GOTHMASC.PA╙ - ß Pasca∞ prograφ t∩ conver⌠ thσ GOTHFONT.F╞ filσ t∩ ß ì
áááááááááááááááGOTHFONT.AS├ filσ whicΦ MakeFon⌠ coulΣ read« (Note║ this .AS├ ì
áááááááááááááááfile still needs some touch up before converting to .DAT)
GOTHFONT.ASC - the ASCII font file after being touched-up
GOTHSN.PAS - Signs source patched for the gothic font
GOTHMF.PAS - MakeFont source patched for the gothic font
POP.PAS - make your machine go 'pop'
Compiling:
Executablσ file≤ arσ includeΣ fo≥ GSIGNS¼ MAKEFON╘ anΣ iε ISIGNS« ì
GSIGNS12.CO═ anΣ GMAKEFN╘ werσ createΣ fo≥ CP/M-8░ b∙ DR'≤ Pasca∞ MT½ s∩ ì
shoulΣ ruε oε nearl∙ anythinτ witΦ ß 8080¼ Z8░ o≥ compatible« Thσ ì
GSIGNS32.CO═ versioε wa≤ compileΣ witΦ TurboPasca∞ anΣ s∩ need≤ ß Z80« Thσ ì
ful∞ Sign≤ versioε ha≤ t∩ bσ compilσ fo≥ you≥ hardwarσ usinτ ß Pasca∞ ì
compiler« TurboPasca∞ wil∞ worδ bes⌠ a≤ severa∞ Turbo-specifiπ function≤ arσ ì
used« Yo⌡ wil∞ als∩ havσ t∩ creatσ ß ne≈ FONT#.DA╘ file≤ froφ FONT#.AS├ usinτ ì
MakeFon⌠ beforσ runninτ SIGNS« Seσ belo≈ fo≥ hardwarσ anΣ versioε specifiπ ì
comments« Notσ tha⌠ thσ font.DA╘ file≤ arσ NO╘ interchangeablσ accros≤ ì
differen⌠ Pasca∞ compilers« GSIGNS1▓ use≤ differen⌠ font.da⌠ file≤ thaε ì
GSIGNS3▓ anΣ SIGNS40« Likewise¼ thσ MS-DO╙ font.da⌠ file≤ arσ differen⌠ thaε ì
CP/M's. COM files in ISIGNS were created on a full-up Zenith 248.
GSIGNS1▓ i≤ als∩ considerabl∙ les≤ capable╗ ╔ haΣ t∩ creatσ thσ generiπ ì
versioε fo≥ ß homeworδ assignmen⌠ fo≥ ß clas≤ I'φ took╗ it'≤ throwε iε herσ ì
'fo≥ free.º Somσ SIGN╙ function≤ NO╘ includeΣ iε GSIGN╙12 are║
« He° input¼
. bit-mapped font files,
« font≤ witΦ greate≥ thaε 9╡ characters¼
. reporting of font size,
« direc⌠ lis⌠ devicσ outpu⌠ no≥ an∙ printe≥ code≤ at all,
. screen-orienteΣ menus¼
. concurren⌠ paramete≥ editinτ anΣ tex⌠ input.
I⌠ ha≤ ▓ menus║ ß contro∞ anΣ ß paramete≥ menu« Notσ tha⌠ thσ .DA╘ fon⌠ file≤ ì
arσ *not¬ compatiblσ witΦ Signs« Gsign≤ arσ bytσ mapped¼ Sign≤ arσ bi⌠ ì
mapped« Thσ .DA╘ file≤ createΣ b∙ GmakeFn⌠ wil∞ bσ ╕ time≤ largerí Thσ .AS├ ì
file≤ arσ compatible« Excuteablσ versioε havσ beeε compileΣ witΦ ß maximuφ 2░ ì
widσ b∙ 2┤ higΦ fon⌠ size« Thσ Gchars.DA╘ filσ includeΣ i≤ 10x12¼ anΣ wa≤ ì
createΣ froφ FONT1.AS├ oµ Signs« Somσ Gsign≤ option≤ havσ differencσ cal∞ ì
letter≤ thaε Signs« Suggestion║ bu∙ TurboPascal!
GSIGNS3▓ ha≤ mos⌠ oµ thσ functionalit∙ oµ SIGNS4░ witΦ severa∞ ì
significan⌠ omissions« N∩ screeε anΣ printe≥ code≤ arσ included¼ anΣ bit-ì
mappeΣ output≤ arσ no⌠ supported« Onσ caε d∩ practicall∙ al∞ thσ samσ ì
operation≤ witΦ botΦ (excep⌠ thσ bit-mappeΣ outpu⌠ oµ course)¼ bu⌠ thσ prograφ ì
doesn'⌠ havσ a≤ mucΦ 'dashº anΣ 'flash'« Minima∞ bell≤ anΣ whistle≤ arσ ì
provided.
Notes:
è - Thσ AS├ fontfile≤ mus⌠ bσ iε ASCI╔ characte≥ orde≥ anΣ follo≈ ß ì
specifiπ forma⌠ a≤ detaileΣ belo≈ t∩ bσ successfull∙ converteΣ b∙ MakeFon⌠.
- somσ option≤ arσ disableΣ witΦ othe≥ options« Fo≥ instance¼ iµ onσ ì
select≤ consolσ output¼ yo⌡ don'⌠ seσ any printer options. O≥ iµ yo⌡ ente≥ ß ì
giveε lef⌠ margiε t∩ use¼ thσ outpu⌠ centerinτ optioε i≤ disabled« (T∩ cente≥ ì
thσ outpu⌠ afte≥ zeroinτ ß previously-giveε lef⌠ margin¼ onσ ha≤ t∩ manua∞ly ì
ente≥ 'yº t∩ centerinτ a≤ ß non-zer∩ lef⌠ margiε set≤ centerinτ t∩ 'no'.⌐ ì
Non-applicablσ men⌡ item≤ arσ no⌠ displayed.
- thσ sourcσ codσ (SIGNS.PA╙ anΣ thσ fivσ SIGNS#.PAS⌐ a≤ supplieΣ iε thσ ì
librar∙ wil∞ compilσ t∩ ß filσ witΦ TurboPasca∞ iε ß minimuφ 56δ CP/M-8░ ì
system« Alternatively¼ onσ caε edi⌠ SIGNS.PAS¼ removσ thσ includσ line≤ ì
(whicΦ looδ likσ {$╔ SIGNS#}⌐ anΣ cop∙ iε thσ SIGNS#.PA╙ file≤ a⌠ thosσ ì
location≤ t∩ makσ onσ lonτ sourcσ codσ file« Iµ combineΣ int∩ onσ lonτ sourcσ ì
i⌠ i≤ compileablσ directl∙ oε thσ 16-bi⌠ PC≤ witΦ TurboPascal« (╔ wil∞ *not¬ ì
sa∙ thσ magiπ threσ letters!)
- bewarσ oµ hardwarσ difference≤ iε printers« Iµ iε doubt¼ turε dum≡ ì
printer switch on and avoid bit-mapped graphics output.
Options:
Upoε entr∙ t∩ thσ prograφ onσ i≤ placeΣ directl∙ iε "changσ parametersó mode« ì
┴ option≤ men⌡ i≤ shown« (seσ below⌐ Upoε entr∙ oµ ß 'Xº o≥ <cr>¼ onσ i≤ ì
placeΣ iε "inpu⌠ textó mode« Iε thi≤ modσ oµ contro∞ character≤ i≤ shown« ì
Onσ can:
- send a formfeed to the printer ('^F' or '^L'),
- send a reverse formfeed to printer to return to TOF ('^T'),
- goto the options menu and change the program parameters ('^P'),
- exit program ('^C' or '^D'),
- backspace ('^H' or <del>),
- ask to redisplay the menu again ('^R'),
- delete entered line and start over ('^X'), or
- enter alternate input routine to enter hex characters ('^A')
- anything else is entered into the line to be printed.
(You CAN mix input and control characters, i.e. enter the input line, strikeì
ß ^╨ t∩ changσ thσ parameters¼ anΣ returε t∩ inpu⌠ linσ withou⌠ losinτ ì
anything.)
Thσ alternatσ inpu⌠ routinσ (^A⌐ prompt≤ yo⌡ t∩ ente≥ ß HE╪ codσ oµ ß ì
character« Thesσ caε bσ pu⌠ t∩ gooΣ usσ iµ yo⌡ havσ defineΣ morσ thaε thσ ì
standarΣ 9╢ character≤ iε thσ fontfile« Entrie≤ les≤ thaε 20╚ o≥ greate≥ thaε ì
FFΦ arσ rejected¼ other≤ arσ appendeΣ t∩ thσ inpu⌠ string« Thσ decima∞ valuσ ì
i≤ echoeΣ a≤ thσ characte≥ i≤ appended« Ente≥ ß <cr╛ t∩ returε t∩ norma∞ ì
input« ┴ run-timσ erro≥ occur≤ iµ thσ characte≥ requesteΣ ha≤ ß HE╪ codσ ì
large≥ thaε thσ number of records in the font file, so don't do that.
On the options menu one can change:
- Font_file:ô Onσ caε changσ thσ namσ oµ thσ fon⌠ filσ t∩ bσ useΣ a⌠ an∙ ì
time« Iµ thσ filenamσ entereΣ i⌠ no⌠ found¼ aε erro≥ messagσ anΣ '????º wil∞ ì
bσ showε fo≥ thσ filename« Iµ found¼ thσ sizσ oµ thσ fon⌠ wil∞ bσ shown« Aε ìèfilename extension of .DAT will be assumed for all entered filenames.
- Sign_type: Signs are horizontally printed across page, banners areì
vertically printed down page
- Block_type:ô Thσ characte≥ tha⌠ make≤ u≡ thσ sign≤ caε eithe≥ bσ thσ ì
lette≥ printed¼ soliΣ block¼ o≥ bit-mapped« Block≤ ma∙ bσ madσ tw∩ ways¼ b∙ ì
overstrikinτ severa∞ character≤ o≥ b∙ sendinτ ß printe≥ ß singlσ user-defineΣ ì
character« (Thσ defaul⌠ singlσ blocδ characte≥ i≤ ß 7╞ whicΦ print≤ ß blocδ ì
iε ß singlσ pas≤ oε m∙ ID╙ printe≥ - thi≤ probabl∙ wil∞ no⌠ worδ fo≥ othe≥ ì
typσ printers.⌐ Iµ onσ select≤ singlσ block¼ i⌠ wil∞ asδ wha⌠ characte≥ t∩ ì
send« Fo≥ bit-mapping¼ eacΦ 'blockº become≤ ß singlσ do⌠ iε thσ graphic≤ modσ ì
oε ß printer« Fo≥ m∙ printe≥ witΦ 8┤ dot/inch¼ thσ outpu⌠ linσ i≤ ╕ inche≤ o≥ ì
67▓ 'charactersº wide« Wheε enterinτ bi⌠ mode¼ thσ widtΦ oµ thσ outpu⌠ linσ ì
i≤ automaticall∙ se⌠ b∙ assigninτ Max_LengtΦ t∩ Given_width« Se⌠ Given_WidtΦ ì
bacδ t∩ zer∩ t∩ returε t∩ autosizing.
- Mult_w,Mult_h:ô Thσ outpu⌠ ma∙ bσ doubled¼ tripled¼ etc« iε botΦ widtΦ ì
anΣ height« Ente≥ you≥ choice¼ thσ prograφ wil∞ watcΦ fo≥ overflow.
- Given_offset:ô Ente≥ ho≈ man∙ character≤ sholΣ bσ sen⌠ beforσ printinτ ì
sign≤ o≥ banner« Thi≤ ha≤ thσ effec⌠ oµ ß lef⌠ margiε fo≥ sign≤ o≥ movinτ ì
banne≥ 'leftº o≥ 'rightº oε thσ outpu⌠ device« (B∙ playinτ witΦ thσ giveε ì
offse⌠ anΣ reversσ formfeed¼ onσ caε ge⌠ multiplσ line≤ iε Banne≥ format.)
- Given_width:ô Iµ no⌠ zero¼ thσ prograφ wil∞ usσ thi≤ figurσ fo≥ thσ ì
maximuφ numbe≥ oµ character≤ pe≥ outpu⌠ line« Als∩ centering¼ iµ on¼ wil∞ bσ ì
baseΣ oε thi≤ widtΦ iµ no⌠ zero« Automaticall∙ se⌠ t∩ Max_LengtΦ upoε ì
entering bit-mapped mode (block_type = bit).
- Centering:ô Iµ n∩ giveε offset¼ answe≥ iµ outpu⌠ bσ centereΣ oε pagσ o≥ ì
flusΦ t∩ lef⌠ margin.
- Intercharacter_spacing:ô Allow≤ onσ t∩ changσ thσ amoun⌠ oµ blanδ spacσ ì
betweeε character≤ output« (┴ norma∞ spacσ i≤ ╢ block≤ widσ [10x1▓ font]¼ anΣ ì
ß norma∞ inter-characte≥ spacσ i≤ ▒ blocδ wide.)
- Inverse_video:ô Doe≤ wha⌠ yo⌡ think║ space≤ arσ printeΣ a≤ thσ ì
character¼ anΣ thσ characte≥ i≤ printeΣ a≤ ß space« Sugges⌠ usinτ block≤ a≤ ì
outpu⌠ - banner≤ looδ strangσ witΦ letter≤ (tr∙ it!)« Sign≤ arσ madσ al∞ oµ ì
thσ firs⌠ characte≥ iε thσ line« Al∞ full∙ blanδ line≤ arσ filleΣ witΦ 'xº ì
anΣ al∞ line≤ arσ filleΣ ou⌠ t∩ thσ availablσ widtΦ les≤ one« No⌠ availablσ ì
in bit-mapped graphics output mode.
- Input_device:ô Onσ caε ente≥ thσ outpu⌠ line≤ onσ a⌠ ß timσ froφ thσ ì
keyboarΣ o≥ takσ theφ iε ß buncΦ froφ ß designateΣ tex⌠ file« Thσ defaul⌠ ì
filenamσ i≤ SIGNS.IN« Iµ inpu⌠ froφ ß file¼ onσ caε specif∙ ho≈ man∙ copie≤ ì
yo⌡ want« ┴ formfeeΣ i≤ sen⌠ betweeε copie≤ iµ outpu⌠ t∩ ß printer.
- Output_device:ô Specif∙ outpu⌠ shoulΣ bσ sen⌠ t∩ thσ consolσ screen¼ ß ì
tex⌠ file¼ o≥ thσ lst║ device« Iµ recordinτ outpu⌠ iε ß file¼ thσ defaul⌠ ì
namσ i≤ SIGNS.OUT« Iµ printing¼ onσ can║ ente≥ wha⌠ pitcΦ shoulΣ bσ useΣ (1░ ì
pica¼ 1▓ elite¼ 16.╡ squeezeΣ o≥ 2░ tin∙ [squeezeΣ give≤ 13▓ character≤ pe≥ 8ó ì
line])╗ ho≈ man∙ line≤ pe≥ incΦ shoulΣ bσ useΣ (6¼ 8¼ 10¼ o≥ 12)╗ anΣ colo≥ ì
(black¼ blue¼ greeε o≥ red).
è - Device_size:ô Iµ printing¼ indicatσ whethe≥ printe≥ i≤ 8ó widσ o≥ 14ó ì
wide« Iµ displayinτ oε screen¼ indicatσ whethe≥ termina∞ i≤ 8░ character≤ ì
widσ o≥ 132« Outpu⌠ widtΦ fo≥ filσ outpu⌠ i≤ whateve≥ wa≤ previousl∙ se⌠ witΦ ì
ß maximuε oµ Max_LengtΦ (672 characters.⌐ Specif∙ ß giveε widtΦ iµ yo⌡ wan⌠ ì
centerinτ t∩ ß different width.
- Dumb_Printer:ô Turninτ thi≤ flaτ oε eliminateΣ al∞ contro∞ code≤ sen⌠ ì
t∩ thσ printer« T∩ ge⌠ thσ variou≤ linσ anΣ characte≥ spacinτ onσ mus⌠ se⌠ u≡ ì
thσ printe≥ externa∞ t∩ thσ program« Thi≤ switcΦ ha≤ n∩ effec⌠ oε bit-mappinτ ì
output, i.e. all graphics codes are still sent to the printer.
- Quit:ô onσ caε qui⌠ froφ thσ option≤ men⌡ witΦ ß 'A'« Onσ migh⌠ neeΣ ì
thi≤ iµ yo⌡ forge⌠ thσ namσ oµ thσ fontfilσ t∩ usσ anΣ sign≤ won'⌠ le⌠ yo⌡ ì
exi⌠ unti∞ yo⌡ givσ i⌠ ß gooΣ name.
Notσ als∩ tha⌠ thσ sizσ oµ thσ fon⌠ iε usσ i≤ displayed¼ a≤ wel∞ a≤ thσ ì
calculateΣ availablσ outpu⌠ spacσ anΣ approximatσ numbe≥ oµ inpu⌠ character≤ ì
tha⌠ wil∞ fit« Thesσ arσ displayeΣ afte≥ thσ fon⌠ filσ ha≤ beeε opened.
Hardware:ä
Therσ i≤ hardware-specifiπ codσ iε thσ sourcσ iε severa∞ procedures:
Procedure set_up_prt contains all the character sequences necessary toì
set and reset the printer in the various modes (10, 12, 16.5, 20 pitch.) Theì
code included in the distribution copy is for the IDS MicroPrism (or Prism).ì
You will most likely have to change it for any other printer model. Note:ì
the IDS printers can't do 20 pitch, an entry is included for easy convertingì
to Epsons. A separate file of the set_up_prt for Epsons is included below.ì
(This has not been tested - I don't have an Epson!)
Procedure calc_width contains the actual pitches for the variousì
conditions. Squeezed print on the IDS is 16.5 pitch, Squeezed print on theì
Epson is 17 pitch. Tiny (20 pitch) is available on the Epson, not on the IDS.
Procedurσ out_cha≥ output≤ 'Block_Char'¼ (defineΣ a≤ #12╖ iε thσ CONS╘ ì
blocδ a≤ thσ default.⌐ Thi≤ printer≤ ß singlσ pas≤ blocδ fo≥ thσ ID╙ ì
printer« Apparentl∙ thσ standarΣ modσ oε thσ Epsoε printe≥ doesn'⌠ havσ ß ì
one-pas≤ blocδ characte≥ (onl∙ iε 'IBM-mode'.⌐ ╔ advisσ no⌠ t∩ usσ blocδ modσ ì
witΦ thσ Epson¼ usσ overstrikσ modσ t∩ prin⌠ block≤ o≥ definσ thσ singlσ pas≤ ì
'blockº characte≥ a≤ ß '*º o≥ 'X'.
Procedurσ maiε output≤ string≤ t∩ thσ printe≥ fo≥ formfeeΣ (^╠ - that'≤ ì
prett∙ standard⌐ anΣ reversσ formfeeΣ (<esc>H0$<esc>G0ñ - that'≤ no⌠ ì
standard).
Procedurσ gdum≡ output≤ onσ graphic≤ linσ t∩ thσ ID╙ printer« Thσ ì
graphic≤ linσ i≤ 67▓ character≤ (╕ inch⌐ anΣ i≤ containeΣ iε thσ cha≥ arra∙ ì
out_line« Thσ printe≥ i≤ pu⌠ iε graphic≤ mode¼ thσ linσ outputteΣ (control-ì
C'≤ beinτ doubleΣ a≤ necessary)¼ returneΣ t∩ norma∞ mode¼ anΣ finall∙ ß cr-lµ ì
fo≥ thσ nex⌠ line« Notσ tha⌠ botΦ sign_ou⌠ anΣ banner_ou⌠ mus⌠ cal∞ gdum≡ ì
directl∙ t∩ makσ surσ thσ bottoφ graphiπ line≤ arσ outputted.
Software:è
╔ useΣ lot≤ oµ built-iε procedure≤ t∩ savσ code« Probabl∙ no⌠ al∞ oµ thesσ ì
arσ standarΣ anΣ somσ migh⌠ bσ uniquσ t∩ TurboPascal:
String Procedures/Functions: LENGTH(str), VAL(str,#,err), CHR(#).
Built-in terminal control Procedures/Functions: GOTOXY(x,y), CLRSCR,ì
CLREOL.
Othe≥ Procedures/Functions║ IORESULT¼ RESET(file)¼ OPEN(file)¼ ì
CLOSE(file)¼ ASSIGN(file,fn)¼ SEEK(file,rec)¼ ROUND(real)¼ TRUNC(real)¼ ì
ORD(var)¼ HALT.
I also used Turbo's initialized 'constants' (really variables), {$I-} andì
{$I+² fo≥ i/∩ erro≥ control¼ {$c-² t∩ turε ofµ thσ ^╙ anΣ ^├ interrupts¼ ì
predefineΣ device≤ (kbd,con,lst⌐ fo≥ i/o¼ anΣ thσ #ε anΣ ^π conventioε t∩ ì
expres≤ ASCI╔ characters.
To change number or characters for creating the overstrike block, adjustì
the os-char string to the appropriate characters. The length of os_charì
determines the number of strikes (currently the maximum length is 5).
Creating new Font Files:
FONT1.DA╘ anΣ FONT2.DA╘ arσ ASCI╔ readablσ file≤ whicΦ have 'picturesº oµ ì
eacΦ oµ thσ printablσ ASCI╔ character≤ witΦ thei≥ widtΦ anΣ height« EacΦ ì
picturσ i≤ preceedeΣ b∙ ß linσ witΦ thσ characte≥ iε columε ▒ anΣ tw∩ integer≤ ì
separateΣ b∙ spaces« Thσ tw∩ integer≤ arσ respectivel∙ thσ widtΦ anΣ thσ ì
heigh⌠ oµ eacΦ character« Thσ characte≥ tha⌠ make≤ u≡ thσ picturσ ma∙ bσ an∙ ì
characte≥ ('Xº i≤ useΣ iε thσ samples⌐ a≤ i⌠ i≤ useΣ onl∙ a≤ ß marker« (Iµ ì
al∞ thσ samσ marke≥ characte≥ i≤ useΣ thσ filσ wil∞ squeezσ bette≥ fo≥ ì
archiving.)
Thσ firs⌠ linσ oµ thσ fontfilσ contain≤ thσ las⌠ revisioε date¼ i⌠ i≤ ì
outpu⌠ fo≥ informatioε bu⌠ ignoreΣ iε processing« Thσ seconΣ linσ ha≤ thσ ì
maximuφ heigh⌠ anΣ widtΦ oµ thσ characters« (AnΣ shoulΣ matcΦ thσ heigh⌠ anΣ ì
widtΦ oµ characte≥ recorΣ numbe≥ 96.)
Thσ FONT#.AS├ file≤ mus⌠ havσ a≤ ß minimuφ al∞ 9╢ printablσ ASCI╔ ì
character≤ ASCI╔ orde≥ startinτ froφ <space╛ t∩ <~╛ anΣ includinτ <del>« Thσ ì
actua∞ characte≥ picturσ shoulΣ star⌠ froφ thσ to≡ (iε FONT1¼ ß º ha≤ onl∙ │ ì
lines¼ ß ▀ ha≤ thσ maximuφ oµ 1▓ lines⌐ anΣ bσ paddeΣ witΦ space≤ s∩ tha⌠ i⌠ ì
i≤ rectangula≥ a⌠ leas⌠ thσ giveε widtΦ ° height« Wheε output¼ al∞ character≤ ì
wil∞ bσ ß constan⌠ (currentl∙ 12⌐ althougΦ thσ picture≤ iε thσ fon⌠ filσ neeΣ ì
no⌠ bσ tha⌠ higΦ (contaiε tha⌠ man∙ lines).
Fo≥ instance¼ <space╛ i≤ defineΣ a≤ ß ▒ higΦ b∙ ╢ widσ characte≥ iε ì
FONT1« I⌠ i≤ actuall∙ outpu⌠ a≤ Max_Height higΦ b∙ ╢ wide« Fo≥ convenience¼ ì
I'vσ endeΣ eacΦ linσ iε thσ .AS├ file≤ witΦ aε '.º s∩ tha⌠ onσ caε tel∞ tha⌠ ì
thσ picturσ ha≤ beeε correctl∙ blockeΣ anΣ filleΣ witΦ spaces« (AnΣ t∩ sto≡ ì
the TurboPasca∞ editor froφ deletinτ thσ norma∞ trailinτ spaces.)
ASCI╔ value≤ startinτ witΦ 12╖ anΣ highe≥ havσ n∩ commonl∙ defineΣ ì
printeΣ character« Yo⌡ ma∙ makσ u≡ you≥ own« Thσ fon⌠ filσ ma∙ havσ u≡ t∩ ì
22┤ character≤ defineΣ (256-32)« Characte≥ numbe≥ 12╖ mus⌠ bσ defineΣ a≤ thσ ìèequa∞ t∩ thσ larges⌠ characte≥ iε thσ fon⌠ filσ becausσ i⌠ i≤ useΣ t∩ ì
determinσ thσ widtΦ anΣ heigh⌠ of al∞ othe≥ output.
MakeFon⌠ take≤ thσ inpu⌠ fo≥ thσ AS├ filσ anΣ store≤ thσ outpu⌠ int∩ thσ ì
DA╘ file« Thσ DA╘ filσ ha≤ thσ informatioε iε recorΣ forφ anΣ ha≤ filleΣ ì
eacΦ recorΣ t∩ thσ maximuφ sizσ (1▓ higΦ b∙ 1░ wide)« N∩ characte≥ caε bσ ì
large≥ thaε that« (unles≤ thσ constant≤ arσ changeΣ botΦ iε thi≤ prograφ anΣ ì
signs!)
Fo≥ versioε 3.░ anΣ higher¼ thσ .DA╘ filσ contain≤ ß bi⌠ ma≡ recorΣ oµ ì
thσ fon⌠ rathe≥ thaε ß bytσ map« Withou⌠ changinτ thσ ma° widtΦ anΣ heigh⌠ ì
defaults¼ thσ font≤ caε bσ u≡ t∩ 4░ widσ b∙ 2┤ high« Iµ onσ DOE╙ changσ thσ ì
defaults¼ yo⌡ havσ t∩ changσ theφ iε botΦ SIGN╙ anΣ MAKEFONT╗ anΣ theε red∩ ì
al∞ oµ thσ fon⌠ files« Al∞ fon⌠ file≤ (.DA╘ versions⌐ shoulΣ bσ thσ samσ ì
size« (Unfortunately¼ ß 'largeº 40x2┤ fon⌠ wil∞ requirσ thσ samσ spacσ a≤ ß ì
'smallº 10x1▓ fon⌠ becausσ oµ thσ neeΣ fo≥ fixeΣ sizσ records.⌐ ┴ bit-mappeΣ ì
40x2┤ i≤ somewherσ arounΣ 12k¼ 56x12░ i≤ 72k¼ Byte-mappeΣ 10x1▓ i≤ 12k¼ 20x2┤ ì
i≤ 46k¼ anΣ 40x2┤ i≤ 72k.
Startinτ iε versioε 4.0¼ bit-mappeΣ outpu⌠ i≤ possible« Unfortunately¼ ì
bit-mappinτ take≤ *alot¬ oµ memory« M∙ presen⌠ 64δ TurboDO╙ (CP/M-like⌐ ì
systeφ onl∙ ha≤ 1.5δ lef⌠ assuminτ ß ma° 40x2┤ fon⌠ anΣ ╕ incΦ graphic≤ outpu⌠ ì
a⌠ 8┤ dpi« (Thσ prograφ mus⌠ allocatσ aε characte≥ arra∙ oµ Max_Heigh⌠ b∙ ì
Max_Length╗ thi≤ i≤ 16δ witΦ thσ presen⌠ parmeters.)
GOTHFONT:
╔ likσ thσ fon⌠ oµ thσ publiπ domaiε prograφ 'GOTHIC'« ╔ trieΣ t∩ creatσ ì
ß fon⌠ filσ oµ it« Unfortunately¼ tw∩ thinτ wen⌠ wronτ - GOTHI├ output≤ a≤ ì
banner≤ onl∙ (characte≥ printeΣ dowε page⌐ anΣ Makefon⌠ expect≤ ß Sign-typσ ì
inpu⌠ (characte≥ printeΣ across)╗ anΣ gothiπ i≤ ß *big¬ font« Somewherσ ì
around 105 high by 55 wide.
╔ captureΣ thσ GOTHI├ outpu⌠ iε ß disδ filσ anΣ cleaneΣ i⌠ u≡ b∙ removinτ ì
overstrikes« Theε createΣ ß prograφ t∩ conver⌠ thσ modifieΣ outpu⌠ t∩ aì
MAKEFON╘ .AS├ inpu⌠ file« CreateΣ thσ font¼ 55x105« TrieΣ t∩ recompilσ Sign≤ ì
fo≥ thσ large≥ font« N∩ wa∙ wil∞ i⌠ eve≥ fi⌠ iε memor∙ witΦ thσ presen⌠ ì
prograφ design« Thσ out-arra∙ fo≥ sigε outpu⌠ require≤ ß characte≥ arra∙ ì
55x67▓ fo≥ ß ╕ incΦ line« That'≤ ove≥ 36kí Maybσ yo⌡ MS-DO╙ peoplσ havσ ì
enougΦ RA═ - ╔ don't« AnΣ ╔ don'⌠ havσ an∙ reall∙ algorythym≤ t∩ reducσ thσ ì
spave requirements. The .DAT file itself is some 72k.
Therefore. the GOTHFON files are provided 'for information only'.
Bugs
╔ havσ detecteΣ onσ buτ tha⌠ thσ curσ i≤ worsσ thaε thσ bug« Iµ one ì
define≤ ß inpu⌠ strinτ that¼ wheε converteΣ witΦ thσ curren⌠ paramater≤ ì
*exactly¬ matche≤ thσ availablσ width¼ thσ outpu⌠ wil∞ probabl∙ bσ doublσ ì
spaced« Thi≤ i≤ becausσ mos⌠ printer≤ anΣ terminal≤ tha⌠ ╔ kno≈ d∩ ß ì
automatiπ <CRLF╛ wheε thσ las⌠ printinτ characte≥ oε ß linσ i≤ printed« Thσ ì
curσ i≤ t∩ reducσ thσ outpu⌠ widtΦ b∙ onσ whicΦ wil∞ givσ aε overflo≈ erro≥ iε ì
analysi≤ oµ thσ line« ╔ decideΣ i⌠ wasn'⌠ wortΦ it« Notσ tha⌠ durinτ ì
'inversσ videoº output¼ thσ line≤ arσ filleΣ t∩ thσ availablσ widtΦ minu≤ onσ ìèt∩ takσ carσ oµ jus⌠ thi≤ problem.
Gsigns1▓ doe≤ no⌠ outpu⌠ overstrikσ block≤ correctl∙ t∩ thσ screen« The∙ ì
arσ correc⌠ wheε outpu⌠ t∩ ß file« ╔ thinδ thi≤ i≤ ß MT½ Pasca∞ problem.
I don't plan to support the two Gsigns versions, Signs 'maybe'.
Notes on Programming Techniques:
╔ havσ ß tendenc∙ t∩ writσ m∙ Pasca∞ procedure≤ anΣ function≤ to∩ lonτ ì
accordinτ t∩ classica∞ thought« (S∩ mucΦ fo≥ classica∞ thought.⌐ However¼ ì
thσ lonτ procedure≤ al∞ contaiε jus⌠ onσ ideß (o≥ menu⌐ anΣ couldn'⌠ bσ easil∙ ì
anΣ clearl∙ broken« Main¼ out_sign¼ out_banner¼ anΣ check_sigε arσ als∩ to∩ ì
lonτ accordinτ b∙ m∙ Pasca∞ Perfesser« (Wha⌠ doe≤ hσ know¼ anyhow┐ - ho≈ t∩ ì
spel∞ professo≥ fo≥ one!⌐ Anywhat¼ I'l∞ somebod∙ elsσ figurσ ß gooΣ wa∙ t∩ ì
breaδ i⌠ up.
I'vσ eveε useΣ ß couplσ oµ GOTO'≤ (heresy!⌐ wherσ i⌠ wa≤ easie≥ t∩ usσ ì
onσ thaε t∩ figurσ ou⌠ ho≈ t∩ loo≡ it« Therσ's to∩ man∙ loop≤ a≤ i⌠ is« ì
Purist≤ wil∞ complaiε tha⌠ therσ arσ to∩ man∙ globa∞ variable≤ anΣ ╔ shoulΣ ì
have passed the record variable by pointer. Having learned by style from ì
FORTRAN, I'm a long ways from being a purist.
Speakinτ oµ style¼ m∙ stylσ oµ programminτ i≤ differen⌠ froφ most¼ ╔ d∩ ì
alo⌠ oµ dBasσ I╔ programminτ s∩ havσ pickeΣ u≡ it≤ stylσ anΣ translateΣ i⌠ t∩ ì
Pascal« Iε particular¼ BEGIN/EN─ pair≤ arσ *not¬ necessaril∙ matcheΣ u≡ iε ì
indenting¼ bu⌠ flo≈ contro∞ statement≤ morσ thaε tw∩ statement≤ apar⌠ *are¬ ì
anΣ ß terminato≥ i≤ used« Iµ there'≤ ß natura∞ 'ENDº there¼ fine╗ otherwisσ ß ì
{end² i≤ used« Tr∙ it¼ ╔ likσ it.
Onσ caε changσ m∙ default≤ b∙ changinτ thσ initizeΣ 'constantsº a⌠ thσ ì
to≡ oµ thσ file« Warning║ iµ yo⌡ makσ inpu⌠ froφ o≥ outpu⌠ t∩ ß filσ thσ ì
default¼ yo⌡ wil∞ somehow havσ t∩ opeε thσ filσ iε procedurσ maiε - ╔ openeΣ ì
the files when the user exits from ask_parameters.
Mos⌠ procedure≤ arσ iε 'natural'¼ i.e« FORTRAN¼ order« (Anothe≥ ì
throwback!⌐ Maiε come≤ first¼ followeΣ b∙ majo≥ subroutines¼ closeΣ ou⌠ witΦ ì
utilities« Thi≤ ha≤ thσ effec⌠ oµ causeinτ al∞ procedure≤ anΣ function≤ t∩ bσ ì
FORWAR─ declared« (O≥ almos⌠ al∞ - maiε doesn'⌠ a≤ beinτ thσ first.⌐ Thσ ì
rea∞ prograφ a⌠ thσ enΣ simpl∙ annouce≤ itself¼ call≤ main¼ anΣ annouce≤ ì
termination« Pasca∞ caε bσ readableí Thσ disp_┐ anΣ ask_┐ procedure≤ arσ no⌠ ì
iε natura∞ orde≥ anΣ arσ no⌠ forwarΣ declared« The∙ arσ randoml∙ accesseΣ ì
anyhow.
Anothe≥ warning║ thσ prograφ may hanτ iµ thσ printe≥ i≤ thσ defineΣ ì
outpu⌠ anΣ i≤ off-linσ wheε yo⌡ exit« Thi≤ happen≤ becausσ ß rese⌠ strinτ i≤ ì
sen⌠ t∩ i⌠ eveε iµ n∩ outpu⌠ i≤ done« (assuminτ thσ dumΓ printe≥ switcΦ i≤ ì
off.⌐ Thi≤ ma∙ bσ ß concerε iµ thσ printe≥ i≤ thσ defaul⌠ outpu⌠ anΣ onσ ì
exit≤ withou⌠ an∙ input.
┴ carriagσ returε t∩ thσ entr∙ promp⌠ withou⌠ an∙ inpu⌠ character≤ wil∞ ì
asδ t∩ exit« Inpu⌠ ß space<cr╛ iµ yo⌡ wan⌠ ß blanδ linσ to be output output.
Whilσ outputtinτ t∩ ß file¼ thσ filσ wil∞ remaiε opeε unti∞ prograφ i≤ ì
exiteΣ o≥ thσ outpu⌠ directioε i≤ changed« Thi≤ way¼ multiplσ outpu⌠ line≤ ìèma∙ bσ storeΣ iε onσ file« Remembe≥ tha⌠ wheε outputtinτ t∩ ß filσ tha⌠ thσ ì
widtΦ i≤ se⌠ whateve≥ thσ previou≤ maximuφ was« Thσ prograφ caε handlσ u≡ t∩ ì
22░ characte≥ widσ output« Auto-centerinτ ma∙ adΣ morσ o≥ no⌠ enougΦ space≤ ì
thaε yo⌡ want¼ s∩ se⌠ ß smaller/large≥ widtΦ witΦ thσ given-widtΦ setting.
Onσ possiblσ enhancemen⌠ ╔ haven'⌠ ye⌠ figureΣ out║ ho≈ t∩ handlσ ì
edi⌠ fon⌠ file≤ withou⌠ requirinτ thσ .AS├ filσ t∩ bσ redone« I'φ workinτ oε ì
it "real soon now".
Epson Procedures:
╔ havσ beeε persuadeΣ t∩ includσ somσ oµ thσ change≤ needeΣ fo≥ Epsoε ì
printers« Herσ the∙ arσ bu⌠ notσ the∙ havσ no⌠ beeε testedí (Thσ change≤ fo≥ ì
graphic≤ outpu⌠ i≤ no⌠ included« Somebod∙ else¼ wh∩ reall∙ understand≤ thσ ì
Epson¼ caε d∩ this!⌐ Changσ procedurσ set_up_pr⌠ to:
PROCEDURE set_up_prt;
BEGIN
WRITE(lst,CHR(27),'x0',CHR(27),'5'); {draft, non-italic defaults}
IF reset_prt THEN BEGIN
WRITE(lst,CHR(27),CHR(18),CHR(27),'M'); {12 cpi}
WRITE(lst,CHR(27),'2'); {6 lpi}
WRITE(lst,CHR(27),'F',CHR(27),'H'); {Emph off, DS off}
END ELSE BEGIN
CASE prt_lpi OF
six : WRITE(lst,CHR(27),'2');
eight : WRITE(lst,CHR(27),'0');
twelve : WRITE(lst,CHR(27),'1');
ten : WRITE(lst,CHR(27),'A'6')
END; {case}
CASE prt_cpi OF
pica : WRITE(lst,CHR(27),CHR(18),CHR(27),'P');
squeezed : WRITE(lst,CHR(27),CHR(18),CHR(27),'M');
elite : WRITE(lst,CHR(27),CHR(15),CHR(27),'P');
tiny : WRITE(lst,CHR(27),CHR(15),CHR(27),'M');
END; {case}
CASE prt_color OF
black : WRITE(lst,CHR(27),'F',CHR(27),'H'); {Emph off, DS off}
blue : WRITE(lst,CHR(27),'F',CHR(27),'G'); {Emph off, DS on}
green : WRITE(lst,CHR(27),'E',CHR(27),'H'); {Emph on, DS off}
red : WRITE(lst,CHR(27),'E',CHR(27),'G'); {Emph on, DS on}
END {case}
END
END;
Coming Attractions: (maybe)
┴ fon⌠ edito≥ whicΦ woulΣ allo≈ direc⌠ edit≤ oµ thσ fon⌠ filσ withou⌠ ì
need for the intermediate .ASC file stage.
┴ font│ - 55x10╡ fon⌠ baseΣ oε thσ fon⌠ oµ 'GOTHIC'« (note║ thσ 55x10╡ ì
fon⌠ doe≤ no⌠ fi⌠ iε 64δ CP/═ system≤ iµ ß ful∞ 22░ characte≥ ma° outpu⌠ widtΦ ì
is used.)
è
Quick Reference Chart:
Input Text Mode:
^F,^L - send a formfeed to the printer
^R,^T - send a reverse formfeed to printer to return to TOF
^P - goto the options menu and change the program parameters
^D,^C - exit program
^H,<del> - backspace
^A - Alternate input of Hex codes.
^X - delete entered line and start over
- anything else is entered into the line to be printed.
Change Parmeters mode:
<cr>, X - check parameters entered and if ok, return to input mode
F - change font filename
T - change sign type
B - change block/letter type
W - change width of output graphic characters
H - change height of output graphic characters
M - enter a given left margin to use
A - change auto-centering on/off
V - change inverse video on/off
Y - change intercharacter spacing
G - enter the maximum width of output line in characters}
I - change input device
R - change read from input filename
N - change number of copies desired
O - change output device
E - change output record filename
S - change output device size
P - change printer characters/inch
L - change printer lines/inch
C - change printer color
D - change dumb printer on/off
Q - abort exit
Have fun. If anyone makes up a new, different and improved font file; orì
even adds new and exciting options, I would be interested in seeing it. Iì
'think' all the bugs are out, but one never knows ...
Robert W. Bloom
46 Broadleaf Drive
Newark, DE 19702