home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
graphics
/
wdraw.lbr
/
WDRAW.DZC
/
WDRAW.DOC
Wrap
Text File
|
1987-03-08
|
24KB
|
541 lines
-----------------------------------------------------------------
WDRAW v1.00
07/28/85
Copyright (c) 1985 Bruce R. Childers
THIS FILE AND ALL ASSOCIATED FILES
MAY BE FREELY DISTRIBUTED IN THE
PUBLIC DOMAIN; HOWEVER, THEY MAY
NOT BE USED FOR COMMERCIAL USE
WITHOUT THE WRITTEN PERMISSION OF
THE AUTHOR.
-----------------------------------------------------------------
=================================================================
Introduction and Theory Section
=================================================================
Introduction
------------
WDRA╫á i≤ ß prograφ tha⌠ allow≤ graphiπ display≤ t∩ bσá createΣ ì
oεá thσá Wysσ 5░ termina∞ (anΣ other≤á witΦá modification)«á Thσ ì
prograφ wa≤ writteε fo≥ tw∩ reasons«á First¼ ╔ wa≤ challengeΣ b∙ ì
ß frienΣ t∩ makσ ß graphic≤ prograφ fo≥ ß "nongraphiπá terminal"« ì
Secondly¼á ╔á havσ alway≤ wanteΣ ß prograφ likσ DDra≈ anΣá other≤ ì
tha⌠á havσ beeε floatinτ arounΣ fo≥ thσ Kaypro«á Alas¼á ╔á don'⌠ ì
havσá ßá graphiπ Kaypr∩ (go⌠ thσ olº time≥ II⌐ s∩ thosσá program≤ ì
wouldn't do me any good, hence: creation of WDRAW.
Installation of WDRAW
---------------------
Haíá Nothinτá need≤ t∩ bσ installeΣ (don'⌠ yß lovσ i⌠ wheε yo⌡ ì
don'⌠á havσá t∩ instal∞ something?!)¼á bu⌠ iµ yo⌡ arσá runninτá ß ì
termina∞á othe≥á thaεá ß Wysσ 50¼á you'l∞á neeΣá t∩á instal∞á thσ ì
program¼á oΦ well..«á T∩ instal∞ thσ system¼á tw∩ thing≤ mus⌠ bσ ì
done«á First¼á ruεá thσ prograφ WDINST▒ t∩ instal∞ you≥ termina∞ ì
typσá froφ thσ men⌡ (jus⌠ likσ installinτ Turb∩á Pascal)«á Next¼ ì
ruεá thσá prograφ WDINST2«á Thi≤ prograφá install≤á somσá specia∞ ì
function≤ oµ you≥ termina∞ whicΦ arσ no⌠ supporteΣ througΦ TINST« ì
Thσ function≤ arσ Graphic≤ On¼ Graphic≤ Off¼ Curso≥ Oε anΣ Curso≥ ì
Off«á Thosσá fou≥á thing≤á mus⌠ bσ installeΣ iεá orde≥á fo≥á thσ ì
prograφ t∩ worδ correctly«á Usually¼á the∙ wil∞ bσ ß sequencσ oµ ì
abou⌠ 3-╡ bytes«á Wheε prompteΣ t∩ ente≥ thσ values¼á ente≥ theφ ì
iεá ASCI╔ decimal¼á pres≤ ß ".ó t∩ enΣ thσ entr∙ oµ ßá particula≥ ì
field.
Running WDRAW
-------------
T∩á ruεá thσá program¼á makσá surσá al∞á file≤á (WDRAW.CO═á anΣ ì
WDRAW.DAT⌐á arσ oε thσ loggeΣ iε disk/user«á Typσ "WDRAWó a⌠ thσ ìèA0╛ promp⌠ ("0A}ó fo≥ TurboDO╙ folks⌐ anΣ pres≤ ß <Return>«á Thσ ì
firs⌠ thinτ tha⌠ come≤ u≡ i≤ ß screeε tellinτ ß littlσ bi⌠á abou⌠ ì
WDRA╫á anΣá givinτá thσ copyrigh⌠ notice«á Pres≤ ßá <Return╛á t∩ ì
continuσá beyonΣá thi≤á point«á Wha⌠á appear≤á i≤á thσá "Drawinτ ì
Screen". The screen is broken up into several sections.
Thσ firs⌠ i≤ iε thσ lowe≥ lef⌠ corne≥ oµ thσ screen«á Thi≤á i≤ ì
thσ "Functioε Statusó line«á I⌠ tell≤ wha⌠ commanΣ i≤ beinτ used¼ ì
give≤á thσá (x,y⌐á coordinate≤á oµ thσ curren⌠á locatioεá oµá thσ ì
cursor, the current buffer (CBx), and the switched buffer (Bx).
Followinτ thσ Functioε Statu≤ linσ i≤ thσ "Togglσ Statusó line« ì
Thi≤á par⌠ i≤ als∩ oε thσ samσ linσ a≤ thσ Functioε Statu≤á line¼ ì
bu⌠ i⌠ tell≤ thσ curren⌠ statσ oµ variou≤ drawinτ toggles« Refe≥ ì
t∩á lowe≥á iε thi≤ documen⌠ fo≥ morσ informatioε oεá thσá drawinτ ì
toggles«á Collectively¼á thesσá tw∩ section≤ makσ u≡ thσ "Statu≤ ì
Line".
Thσá lowe≥á righ⌠ corne≥ i≤ thσ "Promp⌠á Area"«á Wheneve≥á thσ ì
prograφ need≤ t∩ promp⌠ fo≥ somσ input¼ thσ promp⌠ wil∞ appea≥ iε ì
this area.
Thσá uppe≥ righ⌠ corne≥ i≤ thσ "Drawinτá Characte≥á Area"«á I⌠ ì
tells what the current drawing character is (see below).
Righ⌠á belo≈á thσ Drawinτ Characte≥ Areß anΣ abovσá thσá Promp⌠ ì
areßá i≤ thσ "Men⌡ Area"«á Thi≤ areß ha≤ ß hel≡ men⌡ iε casσ yo⌡ ì
forget some command.
Therσá arσ als∩ axe≤ runninτ alonτ thσ side≤ oµ thσ screeε (to≡ ì
linσá ╜ ╪ Axis¼á righ⌠ hanΣ linσ ╜ ┘ Axis)¼á thesσ arσ thσá "Axi≤ ì
Lines".
Thσá res⌠ oµ thσ screeε i≤ thσ "Drawinτ Screen"«á Thσá Drawinτ ì
Screen is where all of the displays will be created.
Drawing Cursor
-------------
Thσá Drawinτá Curso≥á i≤á thσá locatioεá a⌠á whicΦá thσá curso≥ ì
currentl∙á i≤á iε thσ Drawinτ Screeε (noteΣ b∙ thσ (x,y⌐á oεá thσ ì
Statu≤ Line)«á Thi≤ locatioε i≤ wherσ thσ drawinτ characte≥ wil∞ ì
be placed when the cursor is moved.
Pointing Cursor
---------------
Thσá Pointinτá Curso≥á i≤ thσ locatioε a⌠ whicΦ thσá curso≥á i≤ ì
currentl∙á located«á Thσá Pointinτá Curso≥ wil∞á no⌠á dra≈á thσ ì
drawinτ characte≥ a⌠ it≤ location«á Thσ Pointinτ Curso≥ i≤á useΣ ì
b∙ certaiε command≤ (Copy¼ Move¼ etc).
Screen Buffers
--------------è
Thσá screeεá i≤ buffereΣ iε memory«á Therσá arσá threσá screeε ì
buffers¼á s∩ threσ displa∙ screen≤ caε bσ activσ a⌠ an∙ onσ time« ì
Therσ i≤ ß fourtΦ buffer¼á bu⌠ thi≤ i≤ ß temporar∙ buffe≥ useΣ t∩ ì
storσá part≤ oµ thσ graphic≤ displa∙ iε memor∙ fo≥ ß shor⌠ perioΣ ì
oµá time«á U≡ t∩ threσ displa∙ screen≤ ma∙ bσ editeΣ a⌠ an∙á onσ ì
time¼á al∞ oµ whicΦ havσ thei≥ owε screeε buffer≤ (above)«á Thi≤ ì
allow≤á fo≥ threσ differen⌠ graph≤ (o≥ displays⌐ t∩ bσ workeΣá oε ì
a⌠ thσ samσ time.
Current & Passive Buffer
------------------------
Thσ curren⌠ buffe≥ i≤ thσ screeε buffe≥ tha⌠ i≤ currentl∙ beinτ ì
displayeΣá oεá thσ screen«á Thσ curren⌠ buffe≥ i≤á thσá "activeó ì
buffe≥ anΣ i≤ wherσ al∞ commanΣ operation≤ takσ place« Thσ othe≥ ì
tw∩á screeε buffer≤ arσ "passiveó anΣ arσ stil∞ storeΣ iε memory¼ ì
bu⌠á caεá no⌠á bσ workeΣ witΦ unles≤ the∙ arσá madσá thσá curren⌠ ì
buffer (see below).
Display Blocks
--------------
┴á displa∙ blocδ i≤ ß blocδ oµ thσ curren⌠ screeεá buffe≥á tha⌠ ì
ha≤ beeε markeΣ ofµ witΦ onσ oµ thσ cop∙ commands«á Thi≤ displa∙ ì
block is copied into the temporary screen buffer.
Merge vs. Overlay
-----------------
┴á Mergσá i≤ thσ combininτ oµ tw∩ displa∙ block≤ (o≥á ßá screeε ì
buffe≥á anΣá ß file⌐ t∩ forφ onσ image«á Aε Overla∙ i≤ takinτá ß ì
displa∙ blocδ anΣ placinτ i⌠ withiε ß screeε buffer¼ ove≥ writinτ ì
what ever may be in the locations that the display block fills.
Drawing Character
-----------------
Thσá drawinτá characte≥á i≤ thσ characte≥ t∩ bσ placeΣá oεá thσ ì
screen«á A≤ thσ curso≥ i≤ moveΣ abou⌠ oε thσ screeε (thσ drawinτ ì
cursor)¼á thσ drawinτ characte≥ wil∞ bσ placeΣ iε thσ (x,y⌐ poin⌠ ì
passed through.
=================================================================
Command Section
=================================================================
Cursor Movement Commands
------------------------
1 -- Moves the cursor diagonally down to the lower left.
2 -- Moves the cursor horizontally down.
3 -- Moves the cursor diagonally down to the lower right.
4 -- Moves the cursor vertically to the left.è6 -- Moves the cursor vertically to the right.
7 -- Moves the cursor diagonally up to the upper left.
8 -- Moves the cursor horizontally up.
9 -- Moves the cursor diagonally up to the upper right.
5 -- Goto a coordinate pair (input)
Thesσá command≤ causσ thσ drawinτ o≥ pointinτ curso≥ t∩ movσ iε ì
thσá specifieΣ direction«á Thσ command≤ onl∙ effec⌠ thσá curren⌠ ì
screeε buffer«á Iµ thσ blanδ modσ i≤ off¼á theε thσ curso≥á wil∞ ì
placσ thσ drawinτ characte≥ a⌠ eacΦ locatioε passeΣ through«á Iµ ì
thσá blanδá modσá i≤ on¼á thσ curso≥ wil∞ no⌠ placσá thσá drawinτ ì
characte≥ a⌠ eacΦ location«á Iµ thσ erasσ modσ i≤ on¼ thσ curso≥ ì
wil∞á erasσá an∙á characte≥ tha⌠á occupie≤á thσá locatioεá passeΣ ì
through.
Control Toggles
---------------
V -- Toggle between Overlay and Merge mode
G -- Toggle between Graphics on/off
, -- Toggle the erase mode on/off
- -- Toggle the blank mode on/off
# -- Toggle the displaying of a cursor on/off
Thesσá togglσá command≤á changσ thσ specifieΣá actioεá oµá somσ ì
commands«á Thσ Overla∙ anΣ Mergσ togglσ commanΣ toggle≤á betweeε ì
whethe≥á ß blocδ copieΣ (o≥ moved⌐ int∩ ß positioε iε thσ displa∙ ì
screeεá i≤ t∩ bσ MergeΣ (wheε Mergσ On⌐ o≥ OverlayeΣ (wheεá Mergσ ì
Off).
Thσ erasσ togglσ toggle≤ betweeε whethe≥ thσ curso≥ wil∞á erasσ ì
o≥á draw«á Wheε Erasσ On¼á an∙ characte≥ thσ curso≥ passe≤á ove≥ ì
wil∞á bσ eraseΣ (function≤ onl∙ fo≥ drawinτ cursor⌐ otherwise¼á ß ì
characte≥á wil∞ bσ writteε iε thσ poin⌠ (dependinτ oεá thσá blanδ ì
mode).
Thσá graphic≤ commanΣ wil∞ causσ thσ graphiπ representatioεá oµ ì
thσ curren⌠ drawinτ characte≥ t∩ bσ displayed«á I⌠ wil∞ makσ thσ ì
graphiπá representatioε oµ thσ drawinτ characte≥ thσ ne≈á drawinτ ì
character«á Remember¼á thσ graphiπ representatioε i≤ used« Tha⌠ ì
mean≤ t∩ usσ thi≤ program¼ you≥ termina∞ mus⌠ displa∙ graphic≤ b∙ ì
issuinτ thσ graphic≤ oε sequence¼á theε ß typablσ character¼ theε ì
graphic≤á ofµá commanΣ (graphic≤ abovσ 12╖ are not allowed).
Thσá blanδá modσ toggle≤ betweeε whethe≥ thσ drawinτá characte≥ ì
wil∞á bσ placeΣ iε thσ passeΣ througΦ coordinatσ (anΣ whethe≥á iµ ì
erasσá modσ i≤ on¼á iµ thσ characte≥ i≤ erased⌐ o≥ iµ i⌠ wil∞ no⌠ ì
placed a character and allow "browsing" of the display.
Thσ curso≥ on/ofµ togglσ allow≤ goinτ betweeε whethe≥ aε actua∞ ì
curso≥ i≤ displayeΣ o≥ not«á I⌠ i≤ wisσ t∩ havσ thσ curso≥ oε a⌠ ì
al∞á times«á Iµ yo⌡ losσ thσ curso≥ fo≥ somσá reason¼á usσá thi≤ ì
command until it reappears.
èFile Functions
--------------
L -- Loads a file into the current screen buffer
I -- Loads a file into a specified screen buffer
S -- Saves the current screen buffer
W -- Saves all screen buffers
┴á -- Write≤á thσ curren⌠ screeε buffe≥ t∩ disδ iεá ASCI╔á filσì
format.
Thσ "Ló commanΣ allow≤ loadinτ ß previousl∙ saveΣ displa∙ t∩ bσ ì
eithe≥ mergeΣ o≥ overlayeΣ (dependinτ oε thσ Mergσ mode⌐ int∩ thσ ì
curren⌠á screeεá buffer«á Thσá imagσ i≤ loadeΣ int∩á thσá buffe≥ ì
starting at point (1,1).
Thσá "Ióá commanΣá load≤ ß previousl∙ saveΣá displa∙á int∩á an∙ ì
specifieΣ screeε buffe≥ (excludinτ thσ temporar∙á buffer)«á Thi≤ ì
commanΣá wil∞á promp⌠ fo≥ thσ buffe≥ int∩ whicΦ thσ displa∙á filσ ì
wil∞ bσ loaded«á Thσ imagσ i≤ loadeΣ a⌠ (1,1⌐ int∩ thσ specifieΣ ì
buffer.
Thσá "Sóá commanΣá save≤á thσ curren⌠á screeεá buffe≥á t∩á disδ ì
startinτá a⌠ poin⌠ (1,1⌐ anΣ endinτ a⌠ poin⌠ (60,20)«á Thσá filσ ì
saveΣá i≤á iε ß specia∞ datß forma⌠ anΣ caε onl∙á bσá decodeΣá b∙ ì
WDRAW¼á thereforσá fo≥ interchangσ oµ ß displa∙ usσ thσ "Aó ASCI╔ ì
savσ commanΣ (seσ below).
Thσá "Wó commanΣ save≤ al∞ thσ screeε buffer≤á t∩á disk«á EacΦ ì
buffer is saved into a separate special format data file.
Thσ "Aó ASCI╔ savσ commanΣ save≤ thσ curren⌠ screeε buffe≥ int∩ ì
ßá standarΣ ASCI╔ file«á Graphic≤ anΣ tex⌠ arσ saved«á Thσ filσ ì
ma∙ bσ displayeΣ oε mos⌠ terminals« Thi≤ commanΣ i≤ hand∙ iµ yo⌡ ì
neeΣ t∩ creatσ ß "logoε screenó fo≥ anothe≥ program«á Thσá othe≥ ì
prograφá caε reaΣ iε thσ filσ anΣ displa∙ i⌠ a≤ i≤ t∩ thσ screen« ì
N∩á specia∞á decodinτ oµ thσ datß i≤ needed¼á a≤ woulΣá bσá iµá ß ì
standarΣá grapΦá datßá filσ werσ used«á I⌠ als∩á allow≤á ßá worΣ ì
processo≥ t∩ worδ witΦ thσ data«á Note║á ASCI╔ file≤ ma∙ no⌠ bσ ì
reread into the screen buffer.
Display Block Operations
------------------------
M -- Move a block to another location (deleting original)
O -- Copy a block to another location (leaving original)
D -- Delete a block
U -- Write a block into the temporary buffer
Y -- Yank (or recall) the temporary buffer
/ -- Fill a block with drawing character
Block≤ arσ area≤ oµ thσ screeε iε ß rectangula≥ shapσ markeΣ b∙ ì
markinτ thσ uppe≥ righ⌠ coordinatσ anΣ thσ lowe≥ lef⌠ coordinate« ì
T∩á marδá ß coordinate¼á movσ (usinτ thσ curso≥ commands⌐ t∩á thσ ì
uppe≥ righ⌠ edgσ oµ thσ blocδ anΣ pres≤ thσ ".ó (Point⌐á command¼ ìèthi≤á mark≤ thσ firs⌠ edgσ oµ thσ block«á Movσ t∩ thσ lowe≥ lef⌠ ì
edgσ t∩ marδ thσ seconΣ coordinate«á Pres≤ thσ Poin⌠ commanΣ ke∙ ì
t∩ d∩ this.
Thσ Movσ ß blocδ commanΣ move≤ ß markeΣ blocδ t∩ anothe≥ markeΣ ì
(x,y⌐á position«á Thσá commanΣ i≤ useΣ b∙ markinτ thσá blocδá t∩ ì
move¼á theεá movσ t∩ thσ positioε a⌠ whicΦ t∩ placσ thσ blocδ anΣ ì
pres≤ thσ Poin⌠ commanΣ key« Thσ imagσ wil∞ no≈ bσ moveΣ t∩ thi≤ ì
ne≈á locatioεá (uppe≥ righ⌠ edgσ i≤ placeΣ a⌠ thσá markeΣá point⌐ ì
with the original being erased from memory.
Thσá Cop∙á ßá blocδ commanΣ copie≤ ß markeΣá blocδá t∩á anothe≥ ì
markeΣ (x,y⌐ position«á Thσ commanΣ i≤ useΣ b∙ markinτ thσ blocδ ì
t∩ copy¼á theε movσ t∩ thσ uppe≥ righ⌠ edgσ oµ wherσ thσ blocδ i≤ ì
t∩ bσ copieΣ anΣ pres≤ thσ Poin⌠ commanΣ key«á Aε exac⌠ cop∙á oµ ì
thσá markeΣ imagσ wil∞ bσ moveΣ t∩ thi≤ ne≈ locatioε leavinτá thσ ì
original.
Thσá Deletσá blocδá commanΣ delete≤ ß blocδá froφá thσá curren⌠ ì
screeεá buffer«á Thσ commanΣ i≤ useΣ b∙ markinτ thσ blocδ t∩á bσ ì
deleted«á Afte≥ thσ las⌠ edgσ ha≤ beeε marked¼ thσ imagσ wil∞ bσ ì
deleted«á Iµá ßá mistakσ wa≤ madσ anΣ yo⌡ didn'⌠ reall∙ wan⌠á t∩ ì
erasσ tha⌠ image¼á thσ Yanδ bacδ commanΣ ma∙ bσ useΣ t∩ recal∞ i⌠ ì
(see below).
Thσá Savσ blocδ commanΣ save≤ ß blocδ t∩ thσ temporar∙á buffer« ì
Thσ commanΣ i≤ useΣ b∙ markinτ thσ blocδ t∩ bσ copied« Afte≥ thσ ì
las⌠á poin⌠á ha≤á beeεá marked¼á thσ blocδá i≤á copieΣá int∩á thσ ì
temporar∙á buffe≥á ove≥á writinτ whateve≥á ma∙á havσá beeεá therσ ì
before«á Thi≤á commanΣá i≤ hand∙ t∩ movσ block≤á betweeεá screeε ì
buffers.
Thσ Yanδ bacδ commanΣ recall≤ thσ blocδ iε thσ temporar∙ buffe≥ ì
bacδ t∩ thσ curren⌠ curso≥ position« Thσ uppe≥ righ⌠ edgσ start≤ ì
where the cursor is located.
Note║á Oε al∞ oµ thσ command≤ ß "Qó ma∙ bσ entereΣ a⌠ an∙ timσ ì
beforσ thσ enΣ oµ thσ commanΣ t∩ abor⌠ it«á Al∞ command≤ (excep⌠ ì
Y⌐á wil∞á savσ thσ blocδ int∩ thσ temporar∙ buffe≥á ove≥á writinτ ì
anything already in it.
Thσá Fil∞á blocδá commanΣ wil∞ fil∞ ßá markeΣá blocδá witΦá thσ ì
drawinτá characte≥á ove≥á writinτ an∙ character≤ alread∙á iεá thσ ì
block (does not follow note above).
Misc Commands
-------------
N -- New drawing character
P -- Next menu page
Q -- Quit program
0 -- Print image in text on printer
B -- Switch screen buffers
T -- Enter text
C -- Clear current buffer (new graph)èR -- Redraw current screen
F -- Find and replace character
Thσ Ne≈ drawinτ characte≥ wil∞ allo≈ yo⌡ t∩ changσ thσá drawinτ ì
characte≥á t∩ ß differen⌠ one«á Thσ prograφ prompt≤ fo≥ thσá ne≈ ì
character«á Ente≥á i⌠ a⌠ thσ promp⌠ anΣ i⌠ wil∞ theε becomσá thσ ì
ne≈ drawinτ character«á Iµ graphic≤ modσ i≤ on¼ theε thσ graphiπ ì
representation of the character is used (see above).
Thσá Nex⌠ men⌡ pagσ commanΣ wil∞ causσ thσ men⌡ t∩ advancσá onσ ì
pagσ forward«á Wheε a⌠ thσ las⌠ page¼á pressinτ thσ commanΣ wil∞ ì
make it loop around to the first page.
Thσ Qui⌠ commanΣ cause≤ thσ prograφ t∩ terminate«á Al∞ datß iε ì
memor∙ i≤ los⌠ anΣ ma∙ no⌠ bσ recovered«á WARNING║á Yo⌡ arσ no⌠ ì
prompteΣ t∩ savσ thσ screeε buffers¼ i⌠ i≤ assumeΣ b∙ thσ prograφ ì
that you know exactly what you want to do.
Thσá Prin⌠á commanΣá cause≤ thσ curren⌠ screeεá displa∙á t∩á bσ ì
printeΣ oε thσ printer«á I⌠ print≤ onl∙ thσ tex⌠á representatioε ì
of any graphics that may be in the screen buffer.
Thσá SwitcΦ Buffe≥ commanΣ allow≤ yo⌡ t∩ switcΦ betweeεá screeε ì
buffers«á Afte≥ switching¼ thσ buffe≥ t∩ whicΦ yo⌡ jus⌠ switcheΣ ì
become≤ thσ curren⌠ buffer« Therσ arσ threσ buffer≤ availablσ t∩ ì
switch to.
Thσ Tex⌠ commanΣ allow≤ entr∙ oµ freσ handeΣ text« Thσ tex⌠ i≤ ì
entereΣ a⌠ thσ curren⌠ location«á Yo⌡ ma∙ typσ iε thσ text«á T∩ ì
exi⌠á Tex⌠ entry¼á pres≤ eithe≥ <Return╛ o≥ reacΦ thσ enΣ oµá thσ ì
line.
Thσ Clea≥ buffe≥ commanΣ cause≤ thσ curren⌠ screeε buffe≥ t∩ bσ ì
cleared«á WARNING║á Therσá i≤ n∩ confirmatioε beforσ usinτ thi≤ ì
command and after the buffer has been cleared, it is lost.
The Redraw command will redraw the screen. It is a good idea
to use this command whenever reading in a file so the latest data
can be displayed.
The Find and Replace command allows a single character to be
replaced by another. You will be prompted for the character to
find and the character to replace it with. If graphics on, the
program will replace all characters with that characters graphic
representation with the graphic representation of the replace
character.
=================================================================
Keyboard Layout
=================================================================
Thσá curso≥á movemen⌠á command≤ anΣ ß fe≈á other≤á werσá choseε ì
becausσ oµ thei≥ location≤ oε thσ keyboard«á Belo≈ i≤ ßá drawinτ ì
oµ thσ numeriπ keypaΣ witΦ eacΦ key'≤ functioε marked.
è
Numeric Key Pad Commands
---------------------------------
|7 |8 |9 |- |
| Up | Up | Up | Blank |
| Left | | Right | OnOff |
|-------+-------+-------+-------|
|4 |5 |6 |, |
| Left | Goto | Right | Erase |
| | (x,y) | | OnOff |
|-------+-------+-------+-------+
|1 |2 |3 |enter |
| Down | Down | Down | |
| Left | | Right | Not |
|-------+-------+-------+ Used +
|0 |. | |
| Print | Point | |
| | | |
---------------------------------
I⌠á migh⌠ bσ ß gooΣ ideß t∩ cu⌠ thi≤ diagraφ ou⌠ anΣ pos⌠á nea≥ ì
the terminal for easy reference.
=================================================================
Hints and Other Nonsense
=================================================================
Hints
-----
Here are some ideas and pointers for using the program:
∩á T∩ movσ ß blocδ int∩ ß differen⌠ screen¼á thσ ─ commanΣá t∩ ì
deletσá i⌠á ou⌠ oµ thσ curren⌠ screeε caε bσ used«á Theεá switcΦ ì
int∩ thσ screeε int∩ whicΦ yo⌡ wan⌠ t∩ movσ thσ block«á Positioε ì
thσá curso≥ a⌠ thσ uppe≥ righ⌠ edgσ oµ wherσ thσ blocδ i≤á t∩á g∩ ì
anΣá usσ thσ ┘ commanΣ t∩ yanδ i⌠ back«á Thi≤ work≤ t∩ "moveó i⌠ ì
froφ onσ placσ t∩ another.
∩ T∩ mergσ tw∩ screeε buffers¼ g∩ t∩ thσ onσ t∩ mergσ int∩ thσ ì
curren⌠ screeε buffer«á Marδ thσ edge≤ oµ thσ screen¼á usσ thσ ╒ ì
commanΣá t∩ savσ t∩ thσ buffer«á Theε switcΦ bacδ t∩á thσá othe≥ ì
buffe≥ anΣ positioε a⌠ (1,1)« Theε usσ thσ ┘ commanΣ t∩ yanδ thσ ì
screen in.
∩á Kee≡ iε minΣ tha⌠ thσ curso≥ afte≥ beinτ turneΣ t∩ nonblanδ ì
wil∞ no⌠ placσ ß characte≥ iε thσ curren⌠ coordinate¼ s∩ movσ onσ ì
les≤á thaε thσ onσ wherσ yo⌡ wan⌠ thσ poin⌠ t∩ g∩á afte≥á turninτ ì
thσá blanδá modσá off«á Theεá movσ t∩á thσá positioεá wherσá thσ ì
character is to be placed.
∩á Thσá thirΣá screeε buffe≥ make≤ ß grea⌠ placσá t∩á havσá ß ì
"symbo∞á table"«á Placσ int∩ thσ buffe≥ thσ "symbols"¼á anΣ theε ì
marδ theφ anΣ movσ theφ int∩ thσ othe≥ screens«á ╔ havσ display≤ ìèsaveΣá tha⌠á arσ nothinτ bu⌠ "symbolsó anΣ wheε ╔ firs⌠á ruεá thσ ì
program¼á ╔ reaΣ theφ int∩ thσ thirΣ screeε buffer«á Theε wheε ╔ ì
neeΣá ßá box¼á ╔ movσ t∩ thσ thirΣ screeε buffer¼á marδá thσá bo° ì
alread∙ iε tha⌠ buffer¼á movσ t∩ thσ destinatioε buffe≥ anΣá yanδ ì
i⌠ in.
∩ Ruε you≥ termina∞ a≤ fas⌠ a≤ you≥ compute≥ caε handle«á Thσ ì
Wysσ i≤ capablσ oµ runninτ a⌠ 38.┤ kilobaud«á ╔ ruε m∙á termina∞ ì
oεá m∙á IC═ compute≥ a⌠ 38.┤ KBauΣ anΣ i⌠á work≤á great«á Redra≈ ì
time≤á arσá faste≥á anΣ s∩ arσ ever∙ othe≥á functioníá Fo≥á bes⌠ ì
results run at, at least 9600 baud (or higher if possible).
∩ Ruε witΦ thσ mos⌠ tpß yo⌡ caε get« ╔ ruε m∙ machinσ witΦ a⌠ ì
leas⌠á 51╦ tpß unde≥ TurboDO╙ anΣ 56╦ unde≥ CP/M«á Thi≤ i≤á jus⌠ ì
enougΦ fo≥ thσ prograφ t∩ operate«á Iµ runninτ ZCPR3¼ usσ ß ver∙ ì
basiπ installatioε t∩ ruε thσ program«á I⌠ migh⌠ bσ ß gooΣá ideß ì
t∩á havσá ß specia∞ versioε oµ Z│ t∩ ruε witΦ thσ prograφ s∩á yo⌡ ì
can get as much tpa as possible.
∩á T∩á ge⌠ graphiπ outpu⌠ oε m∙ printer¼á ╔ savσ thσá graphic≤ ì
displa∙á a≤ ß tex⌠ file«á Theε ╔ ruε ß publiπ domaiεá prograφá ╔ ì
founΣá tha⌠á wil∞á reaΣá iεá thσá file¼á anΣá prin⌠á thσá graphiπ ì
character≤ ou⌠ oε thσ printer«á Thi≤ work≤ fine¼á hopefully¼ thσ ì
next version will have the graphics print built in.
Other Comments
--------------
Iµá yo⌡á arσ runninτ ß 1╢ bi⌠ CP/M-8╢ o≥ MP/M-8╢á compute≥á anΣ ì
wisΦ t∩ usσ thi≤ program¼ yo⌡ ma∙ contac⌠ mσ a⌠ thσ belo≈ addres≤ ì
o≥ bulletiε boarΣ t∩ ge⌠ thσ 1╢ bi⌠ versioε oµ thσ program«á Thσ ì
1╢ bi⌠ versioε i≤ ß lo⌠ faste≥ anΣ allow≤ u≡ t∩ ╡ screeε buffers.
Thi≤á prograφá wa≤á writteεá iεá Turb∩á Pasca∞á (copyrigh⌠á anΣ ì
trademarδá oµá BorlanΣá International⌐á 3.0«áá Thσá prograφá ha≤ ì
executioεá speed≤á t∩á closσ tha⌠ oµ wha⌠á aεá assembl∙á languagσ ì
program would have!
Iµá yo⌡á wisΦ ß cop∙ oµ thσ sourcσ code¼á i⌠á i≤á availablσá oε ì
specia∞ reques⌠ onl∙ througΦ thσ bulletiε boarΣ listeΣ below«á ╔ ì
wil∞á no⌠ mai∞ ß cop∙ oµ thσ sourcσ no≥ wil∞ ╔ "acceptóá request≤ ì
tha⌠á comσ througΦ thσ mail«á Leavσ ß messagσ whilσ leavinτá thσ ì
boarΣ askinτ fo≥ thσ sourcσ anΣ thσ reasoε wh∙ yo⌡ wan⌠ it« Cal∞ ì
bacδá iε betweeε 3-╖ day≤ anΣ yo⌡ wil∞ bσ tolΣ ho≈ t∩ ge⌠á acces≤ ì
to the source code.
Future Features
---------------
╔á hopσ ╔ pu⌠ iε thσ mos⌠ usefu∞ feature≤ thi≤ g∩á around¼á bu⌠ ì
there are some things I would really like to have in the program.
o Printing of graphics on an Epson and Okidata printers
o A real symbol table system
o Split screen drawing for two graphs at the same timeè o An online help facility
o ASCII file format save with graphics stripped out
o Ability to read in an ASCII format file
o Faster redrawing
o More temporary buffers (two or three oughta do it)
o More flexible installation for other terminals
∩ CommanΣ redefinitioε (alas¼á somσ oµ thσ commanΣs don'⌠á makσ ì
sense to other people [or me])
o Bug Free and wonderful
User Supported Software
-----------------------
Thi≤ prograφ tooδ ß lo⌠ oµ timσ t∩ develop«á I⌠ tooδ man∙ man∙ ì
lonτ hour≤ t∩ write¼ debug¼ tes⌠ anΣ otherwisσ worδ with« Iµ yo⌡ ì
finΣá thσ prograφ useful¼á fun¼á interestinτ o≥ otherwisσ "good"¼ ì
theεá senΣá ß suggesteΣ contributioε oµ $10.0░ t∩á thσá followinτ ì
address....
Bruce R. Childers
P.O. Box 3033
Oakton, Va. 22124
Thσá contributioε wil∞ hel≡ kee≡ thσ developmen⌠ oµ thσ prograφ ì
froφ fallinτ t∩ thσ bacδ burne≥ whilσ ╔ d∩ stufµ fo≥ ß living« Iµ ì
yo⌡ contribute¼ yo⌡ wil∞ bσ notifieΣ oµ al∞ ne≈ update≤ (viß U.S« ì
Mail⌐á anΣ wil∞ ge⌠ thσ ne≈ updateΣ versioε oε disδ fo≥ thσá cos⌠ ì
oµ thσ disδ anΣ postage.
Ah...Final Closing
------------------
A≤ yo⌡ ma∙ havσ noticed¼á I'φ no⌠ ß write≥ anΣ ╔ d∩ no⌠ pretenΣ ì
t∩ be¼á therefore¼á thi≤ documentatioε ma∙ no⌠ bσ thσ bes⌠ iε thσ ì
world«
╔ caε no⌠ bσ helΣ reliablσ fo≥ an∙ damage¼ o≥ othe≥ destructivσ ì
mean≤ occur≤ b∙ usinτ thi≤ program«á Yo⌡ usσ thσ prograφ a⌠ you≥ ì
own risk, I am not liable for the out come of this program!
Iµ yo⌡ havσ an∙ buτ problem≤ (iε thσ program¼á no⌠ thσ termite≤ ì
iε you≥ house)¼ suggestions¼ o≥ comments¼ senΣ theφ t∩ eithe≥ thσ ì
above address or drop a call by my bulletin board at:
The COMPUTER INFORMATION TRANSFER
703-281-7907 300/1200 bps 24hrs daily
Address all mail to Sysop
╔ aφ reall∙ interesteΣ iε use≥ feeΣ bacδ abou⌠ thσ program« Iµ ì
yo⌡á finΣ yo⌡ hate¼á likσ o≥ whateve≥ abou⌠ thσ program¼á d∩á no⌠ ì
hesitate to let me know.
(Susan, I meet your challenge. You owe me a buck, Ha!)
End of Document