home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
wp
/
ws4pat_2.zip
/
PATCH.LST
next >
Wrap
File List
|
1987-07-03
|
91KB
|
2,545 lines
WORDSTAR USER JUMP TABLE
Thi≤ ájum≡ átablσ provide≤ commonl∙ useΣ subroutine≤ fo≥ usσ b∙ custoφ subroutine≤ áiε áthσ ì
Use≥ Area« I⌠ mus⌠ no⌠ bσ modifieΣ iε an∙ way.
NOTE║ Lowe≥ casσ label≤ canno⌠ bσ useΣ iε WSCHANG┼ fo≥ eithe≥ patchinτ o≥ aut∩-patching.
Terminal I/O, near calls, registers except AX preserved.
0200 E9 0000 E DISPLA: JMP CO ;Display character in AL
0203 E9 0000 E STRING: JMP STROUT ;Display string at CS:BX
Printer I/O, far calls, registers except AX & DX prserved.
0206 E9 0000 E LSTOUT: JMP FLO ;Prints char in AL.
0209 áE9 0000 E LSOSTA: JMP FLOSTAT ;Iµ áA╠ char≤ arσ printed¼ wil∞ ái⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;bσ busy?
;Return≤ outpu⌠ statu≤ t∩ A╠ (░ áiµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;busy).
020C E9 0000 E LSTIN: JMP FLI ;Input≤ ácha≥ froφ printe≥ át∩ áAL« ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;(Onl∙ áwork≤ iµ custoφ ULIST╔ áexì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ist≤ o≥ IB═ COMx.)
020F E9 0000 E LSISTA: JMP FLISTAT ;Return≤ áinpu⌠ statu≤ t∩ A╠ (░ áiµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;n∩ char).
;(Onl∙ áwork≤ iµ custoφ áULIST┴ áo≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;IB═ COMx.)
0212 E9 0000 E LSTRNG: JMP FLSTSTR ;Print string at CS:BX
Miscellaneous, far calls.
0215 E9 0000 E UPPER: JMP FUPPER ;Conver⌠ ácha≥ iε A╠ t∩ uppe≥ ácasσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;iε AL
0218 E9 0000 E EXTIO: JMP FEXTIO ;External IO functions
021B 001E[ DB 30 DUP(0) ;Reserved
00
]
Thσ áfollowinτ addres≤ i≤ thσ firs⌠ addres≤ oµ availablσ RA═ fo≥ WordStar'≤ ádatß ásegment« ì
Thi≤ addres≤ caε bσ modifieΣ b∙ INISU┬ iµ necessar∙ t∩ ge⌠ somσ additiona∞ buffe≥ spacσ fo≥ ì
use≥ ásubroutines« However¼ usinτ thi≤ RA═ wil∞ als∩ reducσ thσ amoun⌠ oµ tex⌠ tha⌠ caε ábσ ì
iε memor∙ a⌠ an∙ giveε timσ proportionately.
;
0239 213A R RAM1ST DW MEMRY ;Firs⌠ locatioε afte≥ enΣ oµ ávariì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ables
Thσ áIB═ áflaτ bit≤ shoulΣ bσ se⌠ fo≥ aε IB═ compatiblσ computer« Thσ bit≤ arσ ádefineΣ áa≤ ì
follows:
Bit Function
0 BIOS ROM is IBM compatible for video & keyboard.
1 Counter-timer I/O ports same as IBM (used for beep).
è 2 Usσ vide∩ RA═ directl∙ (ma∙ producσ "hashó o≥ no⌠ worδ a⌠ al∞ oε somσ ácomì
ááááááááááááááááputers).
3 Use IBM tick timer at INT 1CH
4-7 Reserved for future use.
023B 1F IBMFLG DB 00011111B ;IB═ áROM¼ bee≡ ok¼ ádirec⌠ ávideo¼ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ticδ timer
Thσ áWordSta≥ áflaτ bit≤ arσ useΣ t∩ tel∞ WordSta≥ ho≈ i⌠ wil∞ bσ operated« Thσ ábit≤ áarσ ì
defineΣ a≤ follows:
Bit Function
0 Tr∙ át∩ makσ WordSta≥ completel∙ RA═ residen⌠ (limitatioε oµ án∩ áoε-screeε ì
ááááááááááááááááhel≡ messages).
1 Makσ ádefaul⌠ áprinte≥ drive≥ RA═ residen⌠ (limitatioε oµ án∩ áindexinτ áo≥ ì
áááááááááááááááátable≤ oµ contents)« Can'⌠ selec⌠ othe≥ printers.
2 LoaΣ maiε spellinτ dictionar∙ int∩ RA═ wheε WordSta≥ begin≤ runninτ insteaΣ ì
ááááááááááááááááoµ durinτ spellinτ checks.
3-7 Reserved for future use.
023C 00 NWFLG DB 0 ;Normal operation
This flag is used for multi-user or networked systems.
Bit Meaning
0 Set to 1 if a system reset is not to be used when logging.
1 Morσ áthaε onσ use≥ caε acces≤ thσ samσ documen⌠ iµ 1« Iµ 0¼ file≤ arσ áno⌠ ì
ááááááááááááááááshared.
2 Morσ áthaε onσ use≥ caε sharσ thσ defaul⌠ lis⌠ devicσ iµ 1« Iµ 0¼ áWordSta≥ ì
ááááááááááááááááwil∞ immediatel∙ usσ thσ printer.
3 Reserved.
4 Operating system date is correct if 1. Don't use date if 0.
5 Systeφ ácontain≤ ß keyboarΣ typσ aheaΣ buffe≥ iµ 1« WordSta≥ mus⌠ ád∩ ámorσ ì
ááááááááááááááááfrequen⌠ keyboarΣ check≤ iµ 0.
6-7 Reserved.
023D 30 MPMFLG DB 00110000B ;Singlσ-use≥ ásystem¼ ádatσ ááokay¼ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;typσ ahead
SHAR┼ indicate≤ wha⌠ happen≤ wheε file≤ caε bσ shareΣ (seσ MPMFLG)« Iµ i⌠ i≤ 0¼ anΣ ß filσ ì
i≤ áalread∙ ábeinτ edited¼ othe≥ user≤ canno⌠ edi⌠ thσ file« Iµ i⌠ i≤ 1¼ áothe≥ áuser≤ áarσ ì
askeΣ iµ the∙ wan⌠ t∩ looδ a⌠ thσ filσ iε protecteΣ modσ (bu⌠ onl∙ a≤ mucΦ oµ thσ filσ tha⌠ ì
wil∞ fi⌠ iε memor∙ a⌠ once).
023E 01 SHARE DB 1 ;Look at files
023F 00 00 00 DB 0,0,0 ;Reserved
èEdit Menu Function Keys
Thσ functioε ke∙ tablσ allow≤ yo⌡ t∩ prograφ an∙ functioε key≤ tha⌠ you≥ termina∞ ásupport≤ ì
int∩ áonσ o≥ morσ othe≥ keystrokes« Oε thσ IB═ persona∞ computer¼ functioε key≤ generatσ áß ì
nul∞ plu≤ ß keycode.
Function Key Keycode (in hex)
Ctrl+Break 00
Shift+Tab 0F
Ctrl+PrtSc 72
Home 47
Ctrl+Home 77
UpArrow 48
PgUp 49
Ctrl+PgUp 84
LeftArrow 4B
Ctrl+LeftArrow 73
RightArrow 4D
Ctrl+RightArrow 74
End 4F
Ctrl+End 75
DownArrow 50
PgDn 51
Ctrl+PgDn 76
Ins 52
Del 53
F1 thru F10 3B thru 44
Shift+F1 thru F10 54 thru 5D
Ctrl+F1 thru F10 5E thru 67
Alt+F1 thru F10 68 thru 71
EacΦ áfunctioε ke∙ iε thσ tablσ belo≈ i≤ representeΣ b∙ tw∩ strings« Thσ áfirs⌠ árepresent≤ ì
thσ strinτ oµ character≤ generateΣ b∙ thσ functioε key« Thσ seconΣ represent≤ wha⌠ ástrinτ ì
thσ functioε ke∙ shoulΣ generatσ a≤ it≤ replacement« Becausσ thσ string≤ arσ packeΣ nex⌠ t∩ ì
eacΦ other¼ yo⌡ ma∙ no⌠ usσ strinτ indirection≤ (sizσ oµ -▒ plu≤ address).
Thσ enΣ oµ thσ functioε ke∙ tablσ i≤ indicateΣ wheε thσ sizσ oµ thσ functioε ke∙ strinτ ái≤ ì
zero« áIµ thσ functioε ke∙ string≤ won'⌠ al∞ fi⌠ here¼ yo⌡ caε pu⌠ ß ácontinuatioε áaddres≤ ì
afte≥ thσ zer∩ t∩ poin⌠ t∩ morσ table« Thσ tablσ a⌠ tha⌠ addres≤ mus⌠ bσ thσ samσ forma⌠ a≤ ì
thi≤ one« N∩ continuatioε i≤ indicateΣ b∙ aε addres≤ oµ zero.
0242 FE FUNDLY DB -2 ;Functioε ákey≤ enabled« FixeΣ sizσ áoµ á2« ì
áááááááááááááááááááááááááááááááááááááááááááááááá;N∩ ádela∙ betweeε burs⌠ chars« áChangσ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááá;zer∩ t∩ disablσ functioε keys.
0243 00 DB 0 ;Ever∙ áburs⌠ start≤ witΦ ß nul∞ Se⌠ t∩ á-▒ ì
áááááááááááááááááááááááááááááááááááááááááááááááá;iµ eacΦ burs⌠ doesn'⌠ star⌠ witΦ thσ ásamσ ì
áááááááááááááááááááááááááááááááááááááááááááááááá;character
0244 02 FUNTBL DB 2
0245 00 47 DB 0,47H ;Home
0247 02 DB 2
0248 11 05 DB CTRLQ,CTRLE
024A 02 DB 2
024B 00 4F DB 0,4FH ;End
024D 02 DB 2
024E 11 18 DB CTRLQ,CTRLX
0250 02 DB 2è0251 00 77 DB 0,77H ;Ctrl+Home
0253 02 DB 2
0254 11 12 DB CTRLQ,CTRLR
0256 02 DB 2
0257 00 75 DB 0,75H ;Ctrl+End
0259 02 DB 2
025A 11 03 DB CTRLQ,CTRLC
025C 02 DB 2
025D 00 52 DB 0,52H ;Ins
025F 01 DB 1
0260 16 DB CTRLV
0261 02 DB 2
0262 00 72 DB 0,72H ;Ctrl+PrtSc
0264 05 DB 5
0265 0B 04 10 12 0D DB CTRLK,CTRLD,CTRLP,CTRLR,CR
026A 02 funtb1 DB 2 ;Two chars define function key
026B 00 48 DB 0,48H ;Null plus keycode
026D 01 DB 1 ;One char in replacement
026E 05 DB CTRLE ;Convert UpArrow to ^E
026F 02 DB 2
0270 00 50 DB 0,50H ;DownArrow
0272 01 DB 1
0273 18 DB CTRLX
0274 02 DB 2
0275 00 4B DB 0,4BH ;LeftArrow
0277 01 DB 1
0278 13 DB CTRLS
0279 02 DB 2
027A 00 4D DB 0,4DH ;RightArrow
027C 01 DB 1
027D 04 DB CTRLD
027E 02 DB 2
027F 00 49 DB 0,49H ;PgUp
0281 01 DB 1
0282 12 DB CTRLR
0283 02 DB 2
0284 00 51 DB 0,51H ;PgDn
0286 01 DB 1
0287 03 DB CTRLC
0288 02 DB 2
0289 00 73 DB 0,73H ;Ctrl+LeftArrow
028B 01 DB 1
028C 01 DB CTRLA
028D 02 DB 2
028E 00 74 DB 0,74H ;Ctrl+RightArrow
0290 01 DB 1
0291 06 DB CTRLF
0292 02 DB 2è0293 00 00 DB 0,00H ;Ctrl+ScrollLock
0295 01 DB 1
0296 00 DB 0
0297 02 DB 2
0298 00 53 DB 0,53H ;Del
029A 01 DB 1
029B 7F DB 7FH
029C 02 DB 2
029D 00 03 DB 0,03H ;^@
029F 01 DB 1
02A0 00 DB 0
02A1 02 funtb2 DB 2
02A2 00 84 DB 0,84H ;Ctrl+PgUp
02A4 01 DB 1
02A5 17 DB CTRLW
02A6 02 DB 2
02A7 00 76 DB 0,76H ;Ctrl+PgDn
02A9 01 DB 1
02AA 1A DB CTRLZ
02AB 02 DB 2
02AC 00 0F DB 0,0FH ;Shift+BackTab
02AE 00 DB 0
02AF 00 DB 0 ;EnΣ oµ IB═ functioε key≤ oε árigh⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;hanΣ side
02B0 0657 R DW MORPAT ;F1-F10 in MORPAT
= 006E funtbz EQU $-FUNTBL ;Size of FUNTBL
02B2 005A[ DB (200-funtbz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;200tΦ byte
00
]
FUNLA┬ i≤ usuall∙ useΣ t∩ sho≈ functioε ke∙ label≤ a⌠ thσ bottoφ oµ thσ screen« However¼ i⌠ ì
coulΣ bσ useΣ fo≥ an∙ purpose« Thσ firs⌠ bytσ indicate≤ ho≈ man∙ line≤ arσ t∩ bσ used¼ witΦ ì
ß pointe≥ t∩ eacΦ linσ immediatel∙ afte≥ it.
┴ he° 0▓ encountereΣ withiε thσ linσ mean≤ t∩ turε highlightinτ on« ┴ he° 0▒ mean≤ t∩ turε ì
i⌠ off« ┴ he° 0░ indicate≤ thσ enΣ oµ thσ line.
Currently available on the IBM PC only.
030C FUNLAB LABEL BYTE
030C 02 DB 2 ;Two lines of labels for IBM PC
030D 0311 R DW funla1 ;Points to 2nd line from bottom
030F 0375 R DW funla2 ;Points to 1st line from bottom
0311 20 02 44 69 73 70 6C funla1 DB ' ',2,'Display' ;Shifted F1-F10
61 79
031A 01 20 02 43 65 6E 74 DB 1,' ',2,'Center '
65 72 20
0324 01 20 02 43 68 6B 52 DB 1,' ',2,'ChkRest'
65 73 74è032E 01 20 02 43 68 6B 57 DB 1,' ',2,'ChkWord'
6F 72 64
0338 01 20 02 44 65 6C 20 DB 1,' ',2,'Del Blk'
42 6C 6B
0342 01 20 02 48 69 64 65 DB 1,' ',2,'HideBlk'
42 6C 6B
034C 01 20 02 4D 6F 76 65 DB 1,' ',2,'MoveBlk'
42 6C 6B
0356 01 20 02 43 6F 70 79 DB 1,' ',2,'CopyBlk'
42 6C 6B
0360 01 20 02 42 65 67 20 DB 1,' ',2,'Beg Blk'
42 6C 6B
036A 01 31 02 45 6E 64 20 DB 1,'1',2,'End Blk'
42 6C 6B
0374 00 DB 0
;
0375 31 02 48 65 6C 70 20 funla2 DB '1',2,'Help' ;F1-F10
20 20
037E 01 32 02 55 6E 64 6F DB 1,'2',2,'Undo'
20 20 20
0388 01 33 02 55 6E 64 72 DB 1,'3',2,'Undrlin'
6C 69 6E
0392 01 34 02 42 6F 6C 64 DB 1,'4',2,'Bold'
20 20 20
039C 01 35 02 44 65 6C 4C DB 1,'5',2,'DelLine'
69 6E 65
03A6 01 36 02 44 65 6C 57 DB 1,'6',2,'DelWord'
6F 72 64
03B0 01 37 02 41 6C 69 67 DB 1,'7',2,'Align '
6E 20 20
03BA 01 38 02 52 75 6C 65 DB 1,'8',2,'Ruler '
72 20 20
03C4 01 39 02 53 61 76 65 DB 1,'9',2,'Save & '
20 26 20
03CE 01 30 02 44 6F 6E 65 DB 1,'0',2,'Done'
20 20 20
03D8 00 DB 0
Opening Menu function key assignments
03D9 02 OPNTBL DB 2 ;Two chars define function key
03DA 00 48 DB 0,48H ;Null plus keycode
03DC 00 DB 0 ;No replacement
03DD 02 DB 2
03DE 00 50 DB 0,50H ;DownArrow
03E0 00 DB 0
03E1 02 DB 2
03E2 00 4B DB 0,4BH ;LeftArrow
03E4 00 DB 0
03E5 02 DB 2
03E6 00 4D DB 0,4DH ;RightArrow
03E8 00 DB 0
03E9 02 DB 2
03EA 00 49 DB 0,49H ;PgUp
03EC 00 DB 0
è03ED 02 DB 2
03EE 00 51 DB 0,51H ;PgDn
03F0 00 DB 0
03F1 02 DB 2
03F2 00 47 DB 0,47H ;Home
03F4 00 DB 0
03F5 02 DB 2
03F6 00 4F DB 0,4FH ;End
03F8 00 DB 0
03F9 02 DB 2
03FA 00 72 DB 0,72H ;Ctrl+PrtSc
03FC 00 DB 0
03FD 02 DB 2
03FE 00 52 DB 0,52H ;Ins
0400 00 DB 0
0401 02 DB 2
0402 00 53 DB 0,53H ;Del
0404 00 DB 0
0405 00 DB 0 ;End
0406 02A1 R DW funtb2 ;Sharσ ásomσ definition≤ witΦ áEdi⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Menu
= 002F opntbz EQU $-OPNTBL ;Size of OPNTBL
0408 0035[ DB (100-opntbz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;100tΦ byte
00
]
Prompts function key assignments
043D 02 PRMTBL DB 2
043E 00 47 DB 0,47H ;Home
0440 00 DB 0
0441 02 DB 2
0442 00 4F DB 0,4FH ;End
0444 00 DB 0
0445 02 DB 2
0446 00 77 DB 0,77H ;Ctrl+Home
0448 00 DB 0
0449 02 DB 2
044A 00 75 DB 0,75H ;Ctrl+End
044C 00 DB 0
044D 02 DB 2
044E 00 52 DB 0,52H ;Ins
0450 00 DB 0
0451 02 DB 2
0452 00 72 DB 0,72H ;Ctrl+PrtSc
0454 00 DB 0è
0455 00 DB 0 ;End
0456 026A R DW funtb1 ;Sharσ ásomσ definition≤ witΦ áEdi⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Menu
= 001B prmtbz EQU $-PRMTBL ;Size of PRMTBL
0458 0049[ DB (100-prmtbz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;100tΦ byte
00
]
TERMINAL PATCH AREA
This sectioε ácontain≤ áthσ use≥-modifiablσ constant≤ anΣ routine≤ áfo≥ áhardwarσ-dependen⌠ ì
áááááááátermina∞ function≤ anΣ characteristic≤ requireΣ b∙ thσ editor.
There arσ threσ type≤ oµ patche≤ iε thi≤ area« Onσ caε patcΦ datß value≤ (HITE¼ WID⌐ áwhicΦ ì
áááááááádescribσ thσ terminal¼ string≤ (CLEAD1¼ ERAEOL⌐ whicΦ definσ contro∞ sequences¼ áo≥ ì
ááááááááactua∞ microprocesso≥ instructions.
For the strinτ sequences¼ thσ firs⌠ bytσ oµ thσ patcΦ indicate≤ thσ numbe≥ oµ byte≤ iε áthσ ì
áááááááástring¼ áfolloweΣ b∙ tha⌠ man∙ strinτ bytes« Iµ therσ i≤ insufficien⌠ rooφ fo≥ áthσ ì
ááááááááwholσ string¼ thσ forma⌠ caε bσ modifieΣ b∙ puttinτ ß -▒ (0FFH⌐ wherσ thσ numbe≥ oµ ì
áááááááábyte≤ woulΣ go¼ anΣ theε puttinτ thσ addres≤ iε thσ followinτ tw∩ byte≤ (lo≈ áorde≥ ì
áááááááábytσ áfirst⌐ oµ thσ addres≤ wherσ thσ longe≥ patcΦ resides« Thσ longe≥ ápatcΦ ámus⌠ ì
áááááááátheε bσ oµ thσ norma∞ forma⌠ whicΦ i≤ thσ numbe≥ oµ byte≤ followeΣ b∙ thσ string.
This areß ái≤ normall∙ patcheΣ fo≥ you≥ specifiπ termina∞ b∙ thσ interactivσ INSTAL╠ áprogì
ááááááááram« Additiona∞ patchinτ t∩ thi≤ areß i≤ needeΣ onl∙ fo≥ unusua∞ terminal≤ o≥ vide∩ ì
ááááááááboards¼ o≥ t∩ mee⌠ specia∞ requirements¼ o≥ t∩ enhancσ o≥ personalizσ you≥ cop∙ áoµ ì
ááááááááWordStar.
Video screen height, width, and wrap-around parameters are required.
04A1 19 HITE DB 25 ;Mus⌠ bσ exac⌠ screeε heigh⌠ iε lines
04A2 50 WID DB 80 ;Mus⌠ bσ <╜ exac⌠ screeε widtΦ iε co∞ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;umns.
04A3 00 WRAP DB FALSE ;Indicate≤ áiµ termina∞ áwrap≤ áarounΣ ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;t∩ ánex⌠ linσ iµ ß characte≥ i≤ ádi≤ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;playeΣ iε WIDtΦ columε oµ screeε (se⌠ ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;FALS┼ iµ i⌠ doesn't)
04A4 00 XONOFF DB FALSE ;TRU┼ iµ XON/XOF╞ protoco∞ t∩ bσ áuseΣ ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;fo≥ thσ CR╘ terminal
04A5 14 SCROLL DB 20 ;Numbe≥ áoµ column≤ tha⌠ arσ áhorizoεì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;tall∙ scrolleΣ wheε curso≥ move≤ ábσì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;yonΣ righ⌠ o≥ lef⌠ sidσ oµ ;screen.
04A6 05 DIRSIZ DB 5 ;Numbe≥ oµ line≤ availablσ fo≥ direc⌠ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;or∙ a⌠ bottoφ oµ screen« Iµ zero¼ án∩ ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááá;directory.
04A7 0B DB 11 ;Lines for document selection screens.
Delete String
èThσ áfollowinτ strinτ indicate≤ t∩ WordSta≥ ho≈ t∩ displa∙ ß deletσ characte≥ (he° á7F⌐ áoε ì
thσ áscreeε áwhilσ editing« Oε terminal≤ tha⌠ interpre⌠ thσ deletσ characte≥ ácodσ áint∩ áß ì
displayablσ ácharacter¼ ái⌠ i≤ recommendeΣ tha⌠ DELST╥ bσ translateΣ int∩ thσ ádeletσ ácodσ ì
itselµ (lengtΦ oµ 1¼ theε 7FH)« Al∞ character≤ iε thσ strinτ mus⌠ display.
04A8 01 DELSTR DB 1 ;Number of chars in string
04A9 7F DB DEL ;What is displayed
04AA 00 00 00 DB 0,0,0 ;3 spare bytes
Soft and End of Line Hyphen String
Iε orde≥ t∩ distinguisΦ sof⌠ hyphen≤ froφ norma∞ hyphen≤ iε thσ text¼ WordSta≥ wil∞ substiì
tutσ thσ followinτ strinτ wheε onσ i≤ encountered.
04AD 01 SHYSTR DB 1 ;Number of chars in string
04AE 3D DB '=' ;What is displayed
04AF 00 00 00 DB 0,0,0 ;Spare bytes
Block Marker Strings
Blocδ ámarke≥ string≤ arσ displayeΣ oε thσ screeε t∩ sho≈ thσ star⌠ anΣ enΣ oµ ß áblocδ áoµ ì
text« áThσ string≤ arσ iε thσ typica∞ forma⌠ oµ thσ lengtΦ followeΣ b∙ a≤ man∙ ácharacters« ì
Contro∞ ácharacter≤ shoulΣ no⌠ bσ includeΣ withiε thesσ string≤ becausσ the∙ woulΣ áno⌠ ábσ ì
sen⌠ directl∙ t∩ thσ screen.
04B2 03 BBLOCK DB 3 ;Three chars
04B3 3C 42 3E DB '<B>' ;Begin block
04B6 00 DB 0 ;1 spare
;
04B7 03 KBLOCK DB 3 ;Three chars
04B8 3C 4B 3E DB '<K>' ;End block
04BB 00 DB 0 ;1 spare
Special character used when displaying soft spaces
04BC FA SOFTSP DB 0FAH ;Small dot on IBM PC
04BD 00 00 00 00 00 DB 0,0,0,0,0 ;Reserved
Thσ áfollowinτ ástrinτ i≤ useΣ a⌠ sigε-oε t∩ describσ thσ typσ oµ termina∞ ábeinτ áuseΣ áb∙ ì
WordStar« U≡ t∩ 4░ byte≤ arσ availablσ fo≥ thσ string¼ includinτ it≤ nul∞ terminator.
04C2 49 42 4D 20 50 43 20 CRTID DB 'IBM PC Compatible',CR,LF,0 ;Terminal name
43 6F 6D 70 61 74 69
62 6C 65 0D 0A 00
04D6 20 20 20 20 20 20 20 DB ' ' ;Extra room
20 20 20 20 20 20 20
20 20 20 20 20 20
Cursor positioning control sequences are required.
Cursor positioning for most terminals is accomplished
by sending:
1. A 'leaΣ-inº strinτ oµ onσ o≥ morσ termina∞ specifiπ characters.
2. The linσ ánumber¼ áwitΦ aε offse⌠ (ofteε 20H⌐ added« Fo≥ ásomσ áterminals¼ áthσ ìèáááááááááááááááácolumε numbe≥ i≤ sen⌠ first.
3. For some terminals, another 'lead-in' string.
4. The column (or line) number, with an offset.
5. For some terminals, a terminating string.
For most terminals¼ áthσ linσ anΣ columε numbe≥ arσ sen⌠ a≤ onσ-bytσ binar∙ ánumbers« áSomσ ì
ááááááááterminal≤ requirσ tha⌠ ß tw∩¡ o≥ threσ-digi⌠ ASCI╔ numbe≥ i≤ sent.
For terminal≤ tha⌠ d∩ no⌠ fi⌠ thσ abovσ patterns¼ yo⌡ mus⌠ codσ you≥ owε subroutine.
ááááááááFo≥ example¼ thσ curso≥ i≤ positioneΣ oε thσ TeleVide∩ termina∞ b∙ sending:
ESCAPE, '=',
line number plus 20H,
column number plus 20H.
04EA 00 CLEAD1 DB 0 ;Initial lead-in string
04EB 00 DB 0 ;First character
04EC 00 DB 0 ;Second character
04ED 00 00 DB 0,0 ;Space for two more characters
04EF 00 CLEAD2 DB 0 ;Sent between line and column
04F0 00 DB 0 ;example. First character
04F1 00 00 00 DB 0,0,0 ;Space for three more characters
04F4 00 CTRAIL DB 0 ;Terminating string
04F5 00 00 00 00 DB 0,0,0,0 ;Space for four characters
04F9 00 CB4LFG DB 0 ;Send column before line?
;Set non-zero to send column first
04FA CUROFF LABEL WORD ;Both bytes used at one time
04FA 00 DB 0 ;Offset to add to line
04FB 00 DB 0 ;Offset to add to column
04FC 00 ASCUR DB 0 ;Binary/ASCII digit flag
;0 to send binary line and column
;2 to send 2-digit ASCII numbers
;3 to send 3-digit ASCII numbers
;F╞ iµ WordSta≥ t∩ determinσ áASCI╔ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;digits
Provisioε áfo≥ ápositioninτ curso≥ b∙ use≥-codeΣ subroutine¼ insteaΣ oµ áunde≥ ácontro∞ áoµ ì
ááááááááabovσ áitems« Fo≥ usσ iε exceptiona∞ case≤ only« Notσ tha⌠ thi≤ routinσ áoverride≤ ì
ááááááááthσ interna∞ IB═ driver≤ eveε iµ IBMFL╟ i≤ set.
Insert a JM╨ áinstructioε át∩ you≥ subroutinσ iε thσ followinτ threσ ábytes« áWheneve≥ áthσ ì
ááááááááfirs⌠ bytσ i≤ noε-NOP¼ thi≤ locatioε wil∞ bσ calleΣ t∩ positioε thσ cursor¼ anΣ thσ ì
ááááááááabovσ curso≥ patcΦ item≤ wil∞ bσ ignored.
Your subroutinσ áwil∞ áreceivσ thσ linσ numbe≥ iε thσ B╠ registe≥ (░ ╜ to≡ line)¼ áanΣ áthσ ì
áááááááácolumε ánumbe≥ áiε thσ B╚ registe≥ (░ ╜ lef⌠-mos⌠ column)« A╠ ácontain≤ áthσ ávide∩ ì
áááááááácondition≤ áa⌠ áthσ ánex⌠ typinτ positioε (seσ VIDAT╘ fo≥ ábi⌠ ádefinition≤ áexcep⌠ ì
áááááááádoublσ-strikσ replace≤ warnings).
Your subroutine may alter all registers.
04FD 90 UCRPOS: NOP ;Normally NOP, or JMP to your curs-è04FE 90 NOP ;o≥ positioning routine.
04FF C3 RET
Displayinτ ácharacter≤ áoε somσ screen≤ caε bσ significantl∙ faste≥ iµ thσ ácurso≥ ácaε ábσ ì
turneΣ off.
0500 90 ONCUR: NOP ;Turn cursor on by changing to JMP
0501 90 NOP ;t∩ a custom subroutine« BL con-
0502 C3 RET ;tain≤ thσ curren⌠ cursor line, BH
;the column.
0503 90 OFFCUR: NOP ;Turn cursor off by changing to JMP
0504 90 NOP ;t∩ a custom subroutine« BL con-
0505 C3 RET ;tain≤ thσ curren⌠ cursor line, BH
;the column.
Everythinτ áiε thσ res⌠ oµ thi≤ sectioε i≤ optional« Thσ item≤ relatσ eithe≥ át∩ áenhanceΣ ì
ááááááááperformance¼ o≥ fo≥ accomodatinτ unusua∞ terminals.
Erase screen« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ firs⌠ bytσ zero¼ anΣ thσ áedito≥ ì
ááááááááwil∞ eithe≥ senΣ linσ feeds¼ o≥ updatσ ß screeε oµ tex⌠ usinτ ERAEO╠ below.
After thσ áscreeε i≤ erased¼ WordSta≥ assume≤ tha⌠ thσ vide∩ attribute≤ arσ se⌠ t∩ ánormal¼ ì
ááááááááanΣ tha⌠ thσ curso≥ i≤ a⌠ thσ homσ positioε (uppe≥ lef⌠ hanΣ corner).
0506 01 ERASCR DB 1 ;Number of characters
0507 1A DB CTRLZ ;First character
0508 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0 ;15 more
00
0510 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0
Backspacσ áonσ ácharacte≥ string« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ áfirs⌠ ábytσ ì
áááááááázero¼ anΣ thσ edito≥ wil∞ usσ curso≥ addressinτ t∩ backspace.
0517 00 BAKSPC DB 0 ;Number of characters
0518 00 DB 0 ;First character
0519 00 00 00 DB 0,0,0 ;Additional characters
Erase to enΣ oµ linσ string« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ firs⌠ bytσ ázero¼ ì
ááááááááanΣ thσ edito≥ wil∞ perforφ thσ functioε morσ slowl∙ viß software.
051C 01 ERAEOL DB 1 ;Number of characters
051D 14 DB CTRLT ;First character
051E 00 00 00 DB 0,0,0 ;Additional characters
Erase to enΣ áoµ áscreeε string« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ áthσ áfirs⌠ ábytσ ì
áááááááázero¼ anΣ thσ edito≥ wil∞ use≥ erasσ b∙ blanking.
0521 00 ERAEOS DB 0 ;Number of characters
0522 00 DB 0 ;First character
0523 00 00 00 DB 0,0,0 ;Additional characters
Delete screeε álinσ containinτ thσ cursor¼ anΣ movσ lowe≥ line≤ oε thσ screeε u≡ onσ áline« ì
ááááááááIµ áthi≤ functioε i≤ no⌠ available¼ leavσ thσ firs⌠ bytσ zero¼ anΣ thσ edito≥ áwil∞ ì
ááááááááperforφ thσ functioε morσ slowl∙ viß software.
0526 01 LINDEL DB 1 ;Number of characters
0527 12 DB CTRLR ;First character
0528 00 00 00 DB 0,0,0 ;Additional characters
èInsert a blanδ álinσ áoε thσ screen¼ movinτ thσ linσ containinτ thσ cursor¼ anΣ áthσ áline≤ ì
áááááááábelo≈ ái⌠ ádowε onσ line« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ áfirs⌠ ábytσ ì
áááááááázero¼ anΣ thσ edito≥ wil∞ perforφ thσ functioε morσ slowl∙ viß software.
052B 01 LININS DB 1 ;Number of characters
052C 05 DB CTRLE ;First character
052D 00 00 00 DB 0,0,0 ;Additional characters
WordStar wil∞ áusσ LINDE╠ anΣ LININ╙ t∩ deletσ o≥ inser⌠ ß grou≡ oµ line≤ rathe≥ thaε ájus⌠ ì
áááááááádisplayinτ ß wholσ ne≈ screenfu∞ oµ characters« LINMA╪ belo≈ indicate≤ thσ ámaximuφ ì
áááááááánumbe≥ áoµ áline≤ tha⌠ thi≤ woulΣ generall∙ bσ faste≥ thaε thσ rσ-display« áSe⌠ át∩ ì
áááááááázer∩ iµ don'⌠ care.
0530 00 LINMAX DB 0 ;Don't care
Delete thσ ácharacte≥ a⌠ thσ curren⌠ curso≥ position¼ movinτ al∞ followinτ character≤ álef⌠ ì
ááááááááonσ position« Iµ no⌠ availablσ leavσ thσ firs⌠ bytσ zer∩ anΣ WordSta≥ wil∞ árepain⌠ ì
ááááááááthσ line.
0531 00 CHRDEL DB 0 ;Number of characters
0532 00 DB 0 ;First character
0533 00 00 00 DB 0,0,0 ;Additional characters
Insert a blanδ oε thσ screeε a⌠ thσ curren⌠ curso≥ position¼ movinτ followinτ character≤ t∩ ì
ááááááááthσ right« Leavσ firs⌠ bytσ zer∩ iµ unavailablσ s∩ tha⌠ WordSta≥ wil∞ repain⌠ line.
0536 00 CHRINS DB 0 ;Number of characters
0537 00 DB 0 ;First character
0538 00 00 00 DB 0,0,0 ;Additional characters
Terminal initializatioε string« ┴ strinτ oµ byte≤ whicΦ wil∞ bσ sen⌠ t∩ thσ termina∞ a⌠ thσ ì
áááááááábeginninτ oµ ß session« Seσ als∩ INISUB.
053B FF TRMINI DB -1 ;Number of bytes
053C 0506 R DW ERASCR ;Use extension mechanism (-1 as
053E 00 00 DB 0,0 ;bytσ count) to erase screen as
ááááááá ;initialization.
Terminal uε-initializatioε string« ┴ strinτ oµ byte≤ whicΦ wil∞ bσ sen⌠ t∩ thσ termina∞ áa⌠ ì
ááááááááthσ enΣ oµ ß session« Seσ als∩ UNISUB.
0540 00 TRMUNI DB 0 ;Number of bytes
0541 00 00 DB 0,0
0543 00 00 DB 0,0
User-patchablσ áinitializatioε ásubroutine« CalleΣ beforσ thσ TRMIN╔ strinτ i≤ ásent« áThi≤ ì
áááááááásubroutinσ áma∙ bσ useΣ fo≥ specia∞ consolσ initializatioε o≥ othe≥ ápurposes« áSeσ ì
ááááááááUCRPO╙ comments.
0545 90 INISUB: NOP ;Normally NOP, or JMP to
0546 90 NOP ;your subroutine
0547 C3 RET
User patchablσ uε-initializatioε subroutine« CalleΣ beforσ thσ TRMUN╔ strinτ i≤ sent« áThi≤ ì
áááááááásubroutinσ áma∙ bσ useΣ t∩ 'undoº an∙ specia∞ termina∞ statu≤ useΣ fo≥ thσ áeditor« ì
ááááááááSeσ UCRPO╙ comments.
0548 90 UNISUB: NOP ;Normally NOP, or JMP to
0549 90 NOP ;your subroutine
054A C3 RETè
Vide∩ attribute≤ arσ useΣ iε variou≤ place≤ oε thσ WordSta≥ display« Wheε ß vide∩ áattribì
utσ changes¼ WordSta≥ call≤ thσ VIDAT╘ subroutinσ belo≈ witΦ ß vide∩ attributσ codσ iε áthσ ì
C╪ áregister« áIµ thσ C╚ registe≥ i≤ zero¼ WordSta≥ i≤ displayinτ regula≥ tex⌠ anΣ áthσ áC╠ ì
registe≥ bit≤ meaε thσ followinτ vide∩ attribute≤ arσ t∩ bσ used...
Bit Video Attribute
none Normal text
0 Strike-out
1 Warnings & errors
2 Marked text
3 Underlining
4 Subscripting
5 Superscripting
6 Highlighting
7 Italic
If the CH register is non-zero, its bits have the following meaning...
Bit Video Attribute
0 Extended characters
1 Status line
2 Menu text (can be normal or highlighted depending on CL)
3 Function key labels
4 Ruler line
Wheε áIBMFL╟ i≤ set¼ WordSta≥ expect≤ thσ vide∩ attributσ fo≥ thσ characte≥ t∩ bσ áreturneΣ ì
iε áthσ A╠ register« Herσ i≤ thσ defaul⌠ mappinτ fo≥ somσ oµ thσ WordSta≥ vide∩ áattribute≤ ì
int∩ IB═ attributes...
WordStar Video IBM Video Function
00000000 00000111 Normal
01110001 00001000 Bright
00001000 00000001 Underline
00000100 00010000 Inverse
00000010 10000000 Blink
Thσ VIDAT╘ subroutinσ i≤ useΣ t∩ changσ vide∩ attribute≤ oε thσ screen« Oε entry¼ WordSta≥ ì
wil∞ ásuppl∙ áthσ attribute≤ t∩ turε oε iε thσ C╪ register« Yo⌡ mus⌠ translatσ átheφ áint∩ ì
whateve≥ you≥ particula≥ termina∞ requires.
Return the IBM video attribute byte in AL.
IBM Video Conversion
054B VIDATT:
054B BE 0614 R MOV SI,OFFSET VCOLOR+1
054E 2E: 8A 04 MOV AL,CS:[SI] ;Get normal color
0551 E3 35 JCXZ vida3 ;Normal?
0553 F6 C5 1E TEST CH,00011110B ;Special text?
0556 75 15 JNZ vida1
0558 2E: 8A 36 05D3 R MOV DH,BYTE PTR CS:vidax ;Know video type?
055D FE C6 INC DH
055F 75 32 JNZ vida5è
Initialize
0561 51 PUSH CX
0562 B4 0F MOV AH,15 ;Get video type
0564 CD 10 INT 10H
0566 2E: A2 05D3 R MOV BYTE PTR CS:vidax,AL
056A 59 POP CX
056B EB DE JMP VIDATT
Non-text attributes
056D 8A C5 vida1: MOV AL,CH ;Status line?
056F B3 11 MOV BL,17
0571 D0 E8 SHR AL,1
0573 D0 E8 SHR AL,1
0575 72 0C JC vida2
0577 D0 E8 SHR AL,1 ;Menu?
0579 72 0E JC vida4
057B B3 14 MOV BL,17+3 ;Function key labels?
057D D0 E8 SHR AL,1
057F 72 02 JC vida2
0581 FE C3 INC BL ;Must be ruler line
0583 32 FF vida2: XOR BH,BH ;Get video attribute from VCOLOR
0585 2E: 8A 00 MOV AL,CS:[SI+BX]
0588 C3 vida3: RET
0589 FE C3 vida4: INC BL ;Normal menu text?
058B 0A C9 OR CL,CL
058D 74 F4 JZ vida2
058F FE C3 INC BL ;Highlighted
0591 EB F0 JMP vida2
Use VCOLOR table to convert WordStar video bits
0593 8A E0 vida5: MOV AH,AL ;Normal color to AH
0595 8A E9 MOV CH,CL ;Original bits to CH
0597 B2 08 MOV DL,8 ;Go through table
0599 46 INC SI
059A D0 E9 vida6: SHR CL,1 ;Bit not set?
059C 73 07 JNC vida7
059E 2E: 22 04 AND AL,CS:[SI] ;AND with mask, OR with new color
05A1 2E: 0A 44 01 OR AL,CS:[SI+1]
05A5 46 vida7: INC SI ;Next color in table
05A6 46 INC SI
05A7 FE CA DEC DL
05A9 75 EF JNZ vida6
05AB B1 04 MOV CL,4 ;CL=4
05AD 84 E9 TEST CH,CL ;Not marking a block?è05AF 74 21 JZ vida10
05B1 80 FE 08 CMP DH,8 ;Color screen?
05B4 75 08 JNZ vida9
B&W
05B6 A8 76 TEST AL,01110110B ;Not underlining?
05B8 75 02 JNZ vida8
05BA 8A C4 MOV AL,AH ;Use normal color
05BC 34 08 vida8: XOR AL,00001000B ;Invert bright
Color
05BE 8A F0 vida9: MOV DH,AL ;Swap foreground & background col-
05C0 8A D0 MOV DL,AL ;ors
05C2 D2 E6 SHL DH,CL
05C4 80 E6 70 AND DH,01110000B
05C7 D2 EA SHR DL,CL
05C9 80 E2 07 AND DL,00000111B
05CC 24 88 AND AL,10001000B
05CE 0A C6 OR AL,DH
05D0 0A C2 OR AL,DL
05D2 C3 vida10: RET
05D3 FF vidax DB -1 ;Video type
= 0089 vidatz EQU $-VIDATT ;Size of VIDATT code
05D4 003F[ DB (200-vidatz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;200tΦ byte
00
]
Iµ áIBMFL╟ ái≤ TRUE¼ anΣ VIDAT╘ i≤ disableΣ (NOP)¼ thσ followinτ tablσ i≤ useΣ t∩ áse⌠ áthσ ì
vide∩ áattribute≤ áfo≥ thσ IB═ compatiblσ vide∩ RAM« Notσ tha⌠ thσ tablσ i≤ useΣ ábotΦ áfo≥ ì
monochromσ áanΣ colo≥ anΣ shoulΣ bσ installeΣ accordingly« Thσ defaul⌠ i≤ se⌠ u≡ fo≥ ámonoì
chrome.
EacΦ entr∙ iε thσ tablσ contain≤ botΦ ß masδ tha⌠ i≤ AND'Σ witΦ thσ vide∩ attribute¼ anΣ áß ì
colo≥ codσ tha⌠ i≤ OR'd.
Thσ IB═ P├ use≤ ß vide∩ attributσ bytσ fo≥ eacΦ character« I⌠ i≤ organizeΣ iε thσ followinτ ì
way:
Bit Function
0,1,2 Foreground color (characters)
3 Bright
4,5,6 Background color
7 Blink
The color codes for the IBM PC are:
0 - black
1 - blue
2 - green
3 - cyanè 4 - red
5 - magenta
6 - brown
7 - white (light grey)
0613 00 07 VCOLOR DB 00000000B,00000111B ;Norma∞ tex⌠ whitσ oε blacδ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;(n∩ blinδ o≥ bright)
0615 FF 08 DB 11111111B,00001000B ;Make strike-out bright
0617 88 70 DB 10001000B,01110000B ;Inversσ fo≥ warning≤ ª e≥ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;rors
0619 FF 00 DB 11111111B,00000000B ;Reversσ ávide∩ i≤ áinversσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oµ normal
061B F8 01 DB 11111000B,00000001B ;Monochromσ underlinσ (bluσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;iµ color)
061D FF 08 DB 11111111B,00001000B ;Make subscripts bright
061F FF 08 DB 11111111B,00001000B ;Make superscripts bright
0621 FF 08 DB 11111111B,00001000B ;Makσ ábolΣ ª ádoublestrikσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;bright
0623 FF 08 DB 11111111B,00001000B ;Bright italics
0625 70 DB 01110000B ;Status line, black on white
0626 07 DB 00000111B ;Norma∞ men⌡ text¼ whitσ oε ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;black
0627 0F DB 00001111B ;Brigh⌠ ámen⌡ text¼ ábrigh⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;white
0628 70 DB 01110000B ;Functioε ke∙ labels¼ blacδ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oε white
0629 07 DB 00000111B ;Ruler line, white on black
= 0017 vcoloz EQU $-VCOLOR ;Size of VCOLOR
062A 0007[ DB (30-vcoloz) DUP(0) ;Extrß byte≤ t∩ fil∞ ou⌠ t∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;30tΦ byte
00
]
Normall∙ áthσ statu≤ linσ anΣ tex⌠ arσ displayeΣ iε diφ intensit∙ s∩ tha⌠ bolΣ anΣ ádoubleì
strucδ átex⌠ caε bσ showε iε higΦ intensity« Settinτ BRIT┼ t∩ 0FF╚ reverse≤ thσ áusagσ áoµ ì
brigh⌠ anΣ diφ fo≥ thσ statu≤ line¼ text¼ anΣ directories;zer∩ normally.
0631 00 BRITE DB 0 ;Don't reverse
WordSta≥ áattempt≤ t∩ dra≈ ß bo° arounΣ mos⌠ oµ thσ menu≤ usinτ thσ followinτ ábo° ádrawinτ ì
characters.
0632 CD BOXCHR DB 0CDH ;Horizontal line
0633 BA DB 0BAH ;Vertical line
0634 C9 DB 0C9H ;Upper left corner
0635 C8 DB 0C8H ;Lower left corner
0636 BB DB 0BBH ;Upper right corner
0637 BC DB 0BCH ;Lower right corner
0638 00 00 00 00 00 00 DB 0,0,0,0,0,0 ;Reserved
Delays executeΣ afte≥ variou≤ termina∞ functions¼ beforσ thσ nex⌠ characte≥ i≤ sen⌠ t∩ áthσ ì
ááááááááterminal¼ t∩ allo≈ responsσ timσ requireΣ b∙ certaiε terminal≤ wheε operatinτ a⌠ áß ì
ááááááááhigΦ ábauΣ rate« Se⌠ t∩ ß large≥ valuσ iµ yo⌡ suffe≥ ß los≤ oµ character≤ áafte≥ áß ì
áááááááátermina∞ function.
Note that an additional delay FUNDLY is located near theè function key table FUNTBL above.
Each dela∙ i≤ approximatel∙ thσ numbe≥ oµ millisecond≤ oε aε 808╕ processor« Aε 808╢ ma∙ bσ ì
ááááááááconsiderab∙ faster.
063E 00 DELCUS DB 0 ;N∩ dela∙ afte≥ curso≥ ápositioninτ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;(iµ áyou≥ átermina∞ áwork≤ ábette≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;witΦ ╡ millisecond≤ oµ delay¼ áyo⌡ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;woulΣ pu⌠ ß "5ó here)
063F 00 DELMIS DB 0 ;No delay after ERASCR and TRMINI
0640 0000 DXOFF DW 0 ;Iµ áXON/XOF╞ áuseΣ áfo≥ áterminal¼ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;sometime≤ ß legitimatσ ^╙ wil∞ ábσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;interpreteΣ a≤ aε XOF╞ ácharacter« ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;DXOF╞ i≤ useΣ t∩ timσ ou⌠ s∩ átha⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;thσ termina∞ wil∞ continue.
0642 07D0 DLONG DW 2000 ;Lonτ ádelay≤ á(▓ second≤ á╜ á2,00░ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;milliseconds)
╗¡ betweeε sigε-oε messagσ anΣ áO≡ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;eninτ Menu
╗¡ holΣ ofµ accidenta∞ unerasσ áaµì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;te≥ ^╒ i≤ useΣ t∩ cance∞ something
0644 03E8 DMED DW 1000 ;Mediuφ ádelay≤ (▒ seconΣ á╜ á1,00░ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;milliseconds)
╗¡ áholΣ ofµ submen⌡ (^╤ ^╦ á^╧ á^╨ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Esc⌐ t∩ preven⌠ menu≤ froφ appearì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inτ wheε typinτ command≤ quickly
0646 00C8 DSHORT DW 200 ;Short delays (200 milliseconds)
╗¡ áfinΣ anΣ replacσ flashinτ áratσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááábetweeε tex⌠ anΣ Replacσ Y/╬ áquesì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááátion
╗¡ dela∙ betweeε ^Q╤ repeateΣ ácoφì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;mands
╗¡ director∙ holΣ ofµ dela∙ iµ ty≡ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inτ fas⌠ a⌠ prompts
╗¡ holΣ ofµ hel≡ fo≥ promp⌠ iµ ty≡ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inτ fast
0648 00C8 UPDLY DW 200 ;Page/line/columε updatσ dela∙ af⌠ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;e≥ ámovinτ thσ curso≥ (20░ ámilliì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;seπonds)
064A 0000 DDISK DW 0 ;Disδ áacces≤ delay« áIµ ácharacte≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;typeΣ durinτ disδ access¼ wai⌠ fo≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;morσ typinτ beforσ continuing.
064C 0032 DFAST DW 50 ;Dela∙ wheε typinτ fast« Hold≤ áofµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááádisplayinτ áthσ áres⌠ oµ áthσ álinσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááábriefly.
Optional use≥-supplieΣ áconsolσ I/╧ subroutines« Yo⌡ ma∙ patcΦ JMP'≤ herσ t∩ you≥ owε áconì
áááááááásolσ áinput¼ áconsolσ output¼ anΣ consolσ statu≤ subroutines¼ iε whicΦ ácasσ áthesσ ì
áááááááároutines¼ áinsteaΣ oµ thσ operatinτ systeφ BIO╙ entr∙ points¼ wil∞ bσ useΣ fo≥ áal∞ ì
ááááááááconsolσ I/O« Thesσ subroutine≤ ma∙ alte≥ al∞ registers.
These routine≤ wil∞ overridσ thσ interna∞ WordSta≥ IB═ driver≤ eveε iµ IBMFL╟ i≤ set.è
Use of a custoφ subroutinσ accesseΣ herσ i≤ suggested¼ fo≥ example¼ t∩ drivσ ß vide∩ áboarΣ ì
áááááááátha⌠ canno⌠ bσ driveε viß outpu⌠ t∩ thσ operatinτ system.
064E 90 UCNSTA: NOP ;User console status subroutine.
064F 90 NOP ;Normally NOP, or JMP to your own
0650 C3 RET ;subroutine. Must return 0 in AL if
;no character ready, 0FFH if one is
;ready.
0651 90 UCONI: NOP ;User console input subroutine.
0652 90 NOP ;Normally NOP¼ or JMP to your own
0653 C3 RET ;subroutine. Must return thσ char-
;acter in AL. May be calleΣ before
;a character is ready. Iµ n∩ char-
;acter is ready, routinσ mus⌠ wait
;until onσ i≤ available.
0654 90 UCONO: NOP ;User console output subroutine.
0655 90 NOP ;Normally NOP, or JMP to your own
0656 C3 RET ;subroutine« Subroutine receives
;the character in AL, video attri-
;bute≤ iε CH¼ and current cursor
áááááááá ;address in BX.
Thi≤ ái≤ á38┤ byte≤ se⌠ asidσ fo≥ anythinτ tha⌠ thσ use≥ wishe≤ t∩ use« Fo≥ thσ IB═ ái⌠ ái≤ ì
useΣ fo≥ defininτ functioε key≤ F▒ througΦ F10.
0657 02 MORPAT DB 2
0658 00 3B DB 0,3BH ;F1
065A 01 DB 1
065B 0A DB CTRLJ
065C 02 DB 2
065D 00 3C DB 0,3CH ;F2
065F 01 DB 1
0660 15 DB CTRLU
0661 02 DB 2
0662 00 3D DB 0,3DH ;F3
0664 02 DB 2
0665 10 13 DB CTRLP,CTRLS
0667 02 DB 2
0668 00 3E DB 0,3EH ;F4
066A 02 DB 2
066B 10 02 DB CTRLP,CTRLB
066D 02 DB 2
066E 00 3F DB 0,3FH ;F5
0670 01 DB 1
0671 19 DB CTRLY
0672 02 DB 2
0673 00 40 DB 0,40H ;F6
0675 01 DB 1
0676 14 DB CTRLT
0677 02 DB 2
0678 00 41 DB 0,41H ;F7è067A 03 DB 3
067B 02 11 10 DB CTRLB,CTRLQ,CTRLP
067E 02 DB 2
067F 00 42 DB 0,42H ;F8
0681 04 DB 4
0682 11 13 0F 0F DB CTRLQ,CTRLS,CTRLO,CTRLO
0686 02 DB 2
0687 00 43 DB 0,43H ;F9
0689 02 DB 2
068A 0B 13 DB CTRLK,CTRLS
068C 02 DB 2
068D 00 44 DB 0,44H ;F10
068F 02 DB 2
0690 0B 04 DB CTRLK,CTRLD
0692 02 DB 2
0693 00 54 DB 0,54H ;Shift+F1
0695 02 DB 2
0696 0F 04 DB CTRLO,CTRLD
0698 02 DB 2
0699 00 55 DB 0,55H ;Shift+F2
069B 02 DB 2
069C 0F 03 DB CTRLO,CTRLC
069E 02 DB 2
069F 00 56 DB 0,56H ;Shift+F3
06A1 02 DB 2
06A2 11 0C DB CTRLQ,CTRLL
06A4 02 DB 2
06A5 00 57 DB 0,57H ;Shift+F4
06A7 02 DB 2
06A8 11 0E DB CTRLQ,CTRLN
06AA 02 DB 2
06AB 00 58 DB 0,58H ;Shift+F5
06AD 02 DB 2
06AE 0B 19 DB CTRLK,CTRLY
06B0 02 DB 2
06B1 00 59 DB 0,59H ;Shift+F6
06B3 02 DB 2
06B4 0B 08 DB CTRLK,CTRLH
06B6 02 DB 2
06B7 00 5A DB 0,5AH ;Shift+F7
06B9 02 DB 2
06BA 0B 16 DB CTRLK,CTRLV
06BC 02 DB 2
06BD 00 5B DB 0,5BH ;Shift+F8
06BF 02 DB 2
06C0 0B 03 DB CTRLK,CTRLC
06C2 02 DB 2
06C3 00 5C DB 0,5CH ;Shift+F9è06C5 02 DB 2
06C6 0B 02 DB CTRLK,CTRLB
06C8 02 DB 2
06C9 00 5D DB 0,5DH ;Shift+F10
06CB 02 DB 2
06CC 0B 0B DB CTRLK,CTRLK
06CE 02 DB 2
06CF 00 68 DB 0,68H ;Alt+F1
06D1 01 DB 1
06D2 B3 DB 179
06D3 02 DB 2
06D4 00 69 DB 0,69H ;Alt+F2
06D6 01 DB 1
06D7 C4 DB 196
06D8 02 DB 2
06D9 00 6A DB 0,6AH ;Alt+F3
06DB 01 DB 1
06DC DA DB 218
06DD 02 DB 2
06DE 00 6B DB 0,6BH ;Alt+F4
06E0 01 DB 1
06E1 BF DB 191
06E2 02 DB 2
06E3 00 6C DB 0,6CH ;Alt+F5
06E5 01 DB 1
06E6 C0 DB 192
06E7 02 DB 2
06E8 00 6D DB 0,6DH ;Alt+F6
06EA 01 DB 1
06EB D9 DB 217
06EC 02 DB 2
06ED 00 6E DB 0,6EH ;Alt+F7
06EF 01 DB 1
06F0 C2 DB 194
06F1 02 DB 2
06F2 00 6F DB 0,6FH ;Alt+F8
06F4 01 DB 1
06F5 C1 DB 193
06F6 02 DB 2
06F7 00 70 DB 0,70H ;Alt+F9
06F9 01 DB 1
06FA C3 DB 195
06FB 02 DB 2
06FC 00 71 DB 0,71H ;Alt+F10
06FE 01 DB 1
06FF B4 DB 180
0700 02 DB 2
0701 00 5E DB 0,5EH ;Ctrl+F1è0703 02 DB 2
0704 11 06 DB CTRLQ,CTRLF
0706 02 DB 2
0707 00 5F DB 0,5FH ;Ctrl+F2
0709 02 DB 2
070A 11 01 DB CTRLQ,CTRLA
070C 02 DB 2
070D 00 60 DB 0,60H ;Ctrl+F3
070F 01 DB 1
0710 0C DB CTRLL
0711 02 DB 2
0712 00 61 DB 0,61H ;Ctrl+F4
0714 02 DB 2
0715 11 09 DB CTRLQ,CTRLI
0717 02 DB 2
0718 00 62 DB 0,62H ;Ctrl+F5
071A 06 DB 6
071B 11 13 2E 4C 4D 0E DB CTRLQ,CTRLS,'.LM',CTRLN
0721 02 DB 2
0722 00 63 DB 0,63H ;Ctrl+F6
0724 06 DB 6
0725 11 13 2E 52 4D 0E DB CTRLQ,CTRLS,'.RM',CTRLN
072B 02 DB 2
072C 00 64 DB 0,64H ;Ctrl+F7
072E 07 DB 7
072F 11 13 2E 50 4D 36 0D DB CTRLQ,CTRLS,'.PM6',CR
0736 02 DB 2
0737 00 65 DB 0,65H ;Ctrl+F8
0739 06 DB 6
073A 11 13 2E 50 41 0D DB CTRLQ,CTRLS,'.PA',CR
0740 02 DB 2
0741 00 66 DB 0,66H ;Ctrl+F9
0743 02 DB 2
0744 11 13 DB CTRLQ,CTRLS
0746 02 DB 2
0747 00 67 DB 0,67H ;Ctrl+F10
0749 02 DB 2
074A 11 04 DB CTRLQ,CTRLD
074C 00 DB 0 ;End of function keys
074D 0000 DW 0
= 00F8 morpaz EQU $-MORPAT
074F 0088[ DB (384-morpaz) DUP(0) ;Fill out to 384th byte
00
]
Thσ followinτ strinτ i≤ useΣ t∩ describσ thσ namσ oµ thσ defaul⌠ printe≥ useΣ b∙ áWordStar« ì
U≡ t∩ 4░ byte≤ arσ provideΣ fo≥ thσ string¼ includinτ it≤ nul∞ terminator.
è07D7 44 72 61 66 74 20 50 PRNID DB 'Draft Printer',CR,LF,0 ;Printer name
72 69 6E 74 65 72 0D
0A 00
07E7 20 20 20 20 20 20 20 DB ' ' ;Additional room
20 20 20 20 20 20 20
20 20 20 20 20 20 20
20 20 20
WordSta≥ áuse≤ ß defaul⌠ printe≥ drive≥ iµ nonσ i≤ specifieΣ b∙ thσ user« Thσ followinτ ái≤ ì
it≤ name« I⌠ ma∙ bσ u≡ t∩ si° character≤ long¼ nul∞ terminated.
07FF 44 52 41 46 54 00 DEFPRN DB 'DRAFT',0 ;Standard driver
0805 20 DB ' ' ;One extra char
0806 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0 ;Reserved
Thσ prin⌠ dela∙ time≥ i≤ useΣ t∩ timσ ho≈ lonτ thσ printe≥ i≤ bus∙ beforσ tellinτ thσ áuse≥ ì
tha⌠ áit'≤ beeε bus∙ ß lonτ time« Thi≤ woulΣ primaril∙ bσ useΣ wheε thσ printe≥ wa≤ iε áanì
othe≥ rooφ anΣ yo⌡ migh⌠ no⌠ kno≈ tha⌠ i⌠ wa≤ bus∙ duσ t∩ ß pape≥ jaφ o≥ beinτ ofµ line.
080D 4E20 PRNDLY DW 20000 ;Delay before saying printer busy
;20 seconds = 20,000 milliseconds
;Disabled if zero
Pausinτ betweeε eacΦ pagσ i≤ useΣ iµ singlσ sheet≤ oµ pape≥ arσ beinτ printed.
080F 00 PPAUSE DB FALSE ;Continuous form (don't pause)
0810 00 DB 0 ;Reserved
Man∙ printer≤ caε usσ forφ feed≤ t∩ quickl∙ ge⌠ froφ onσ pagσ t∩ thσ next« Iµ you≥ áprinte≥ ì
can't¼ se⌠ PFFEE─ t∩ FALS┼ anΣ WordSta≥ wil∞ insteaΣ usσ carriagσ return≤ anΣ linσ feeds.
0811 00 PFFEED DB FALSE ;Carriage returns to next page
0812 00 DB 0 ;Reserved
Somσ users¼ likσ programmers¼ ma∙ wan⌠ t∩ usuall∙ prin⌠ noε-documents« Iε thi≤ case¼ Wordì
Sta≥ áprint≤ an∙ line≤ tha⌠ begiε witΦ ß perioΣ (do⌠ commands)¼ anΣ expand≤ taΓ ácharacter≤ ì
(09H⌐ accordinτ t∩ thσ filetypσ iε thσ EDCON─ tablσ elsewherσ iε thσ Use≥ Area.
0813 00 PNODOC DB FALSE ;Don't print as a non-document
0814 00 DB 0 ;Reserved
Normall∙ WordSta≥ wil∞ prin⌠ you≥ documen⌠ iε thσ backgrounΣ s∩ tha⌠ yo⌡ caε theε d∩ ásomeì
thinτ elsσ whilσ i⌠ i≤ printing« Thi≤ featurσ caε bσ turneΣ off.
0815 FF BAKPRN DB TRUE ;Background printing is on
Whilσ printinτ iε thσ background¼ BPRSP─ tell≤ WordSta≥ ho≈ fas⌠ thσ printer≤ arσ áattacheΣ ì
t∩ thσ primar∙ anΣ alternatσ printe≥ port≤ (seσ LSTDE╓ below)« Iµ yo⌡ picδ ß speeΣ tha⌠ ái≤ ì
to∩ áhigh¼ áWordSta≥ ma∙ "hanτ upó sometime≤ whilσ waitinτ fo≥ thσ printe≥ t∩ bσ áread∙ áiµ ì
you≥ LSTDE╓ i≤ se⌠ u≡ t∩ usσ thσ LS╘ o≥ AU╪ device« ┴ speeΣ oµ zer∩ mean≤ tha⌠ WordSta≥ ái≤ ì
t∩ áalway≤ áprin⌠ a⌠ maximuφ speed« Otherwisσ ente≥ you≥ printe≥ speeΣ áiε ácharacter≤ ápe≥ ì
seconΣ (cps).
0816 00 BPRSPD DB 0 ;Full speed for primary port
0817 00 DB 0 ;Full speed for alternate port
0818 00 00 DB 0,0 ;Reservedè
Printe≥ áprotoco∞ áflags« Onl∙ onσ oµ thesσ flag≤ ma∙ bσ se⌠ TRU┼ a⌠ onσ time« áIµ áneithe≥ ì
flaτ i≤ set¼ WordSta≥ assume≤ al∞ printe≥ bus∙ handshakinτ i≤ donσ externall∙ t∩ WordStar.
081A 00 LXOFF DB FALSE ;Printer XON/XOFF protocol.
081B 00 LETX DB FALSE ;Printer ETX/ACK protocol.
081C 80 LCHRMX DB 128 ;Maximum chars before sending ETX.
;Half of printer's buffer size.
Use≥ lis⌠ devicσ outpu⌠ subroutine≤ arσ useΣ iµ thσ norma∞ system≤ lis⌠ devicσ i≤ no⌠ t∩ bσ ì
used« Thσ use≥ subroutinσ override≤ thσ LSTDE╓ selectioε below.
081D 90 ULOSTA: NOP ;User list output status subroutine.
081E 90 NOP ;Normally NOP, or JMP to your own
081F C3 RET ;subroutine. Must return 0 in AL if
;list device is busy, 0FFH if idle.
0820 90 ULSTO: NOP ;User list output subroutine.
0821 90 NOP ;Normally NOP, or JMP to your own
0822 C3 RET ;subroutine« Subroutine receives
;thσ character in AL.
Use≥ ális⌠ inpu⌠ subroutine≤ arσ useΣ iµ eithe≥ XON/XOF╞ o≥ ETX/AC╦ protocol≤ arσ áuseΣ át∩ ì
indicatσ wheε thσ printe≥ i≤ busy.
On IBM PCs, if LSTDEV is defined for COMx, these routines are not
required.
0823 90 ULISTA: NOP ;User list input status subroutine.
0824 90 NOP ;Normally NOP, or JMP to your own
0825 C3 RET ;subroutine¼ if LXOFF or LETX is
;TRUE« Must return 0 in AL if no
;char pending.
0826 90 ULSTI: NOP ;User list input subroutine.
0827 90 NOP ;Normally NOP, or JMP to your own
0828 C3 RET ;subroutine¼ if LXOFF or LETX is
;TRUE« Return≤ character in AL.
Printer Output Selection
Wheε áWordSta≥ prints¼ i⌠ send≤ it≤ outpu⌠ t∩ onσ oµ thσ device≤ specifieΣ witΦ LSTDEV« áIµ ì
yo⌡ áhavσ tw∩ printer≤ attacheΣ t∩ you≥ computer¼ WordSta≥ use≤ thσ firs⌠ onσ an∙ timσ áyo⌡ ì
usσ thσ defaul⌠ drive≥ DEFPRN¼ anΣ thσ seconΣ onσ fo≥ an∙ drive≥ othe≥ thaε DEFPRN« Iµ áyo⌡ ì
onl∙ havσ onσ printer¼ botΦ byte≤ woulΣ normall∙ bσ thσ same.
For MS-DOS:
00H = AUX device
01H = LPT1 (IBM PC only)
02H = LPT2 (IBM PC only)
03H = LPT3 (IBM PC only)
11H = COM1 (IBM PC only)
12H = COM2 (IBM PC only)
FFH = LST device
For CP/M:
è 00H = TTY device
01H = CRT device
02H = LPT device
03H = UL1 device
FFH = Default LST device
For MP/M or Concurrent CP/M:
00H-FEH = Printer number
FFH = Default LST device
For TurboDOS:
00H-7EH = Printer or queue number (01=A, 02=B, etc.)
7FH = Default LST device
MSB = 1 if spooling, 0 if direct printing
0829 LSTDEV LABEL BYTE
0829 01 01 DB 1,1 ;LPT1, 1 printer
Regardles≤ áoµ LSTDE╓ above¼ a≤ thσ defaul⌠ prin⌠ outpu⌠ caε bσ redirecteΣ t∩ ß devicσ á(o≥ ì
file⌐ a≤ specifieΣ below.
082B 00 LSTRED DB 0 ;No redirection
082C 000F[ DB 15 DUP(0)
00
]
083B 0010[ DB 16 DUP(0) ;Reserved
00
]
Beforσ printing¼ WordSta≥ wil∞ cal∞ ULPOR╘ belo≈ t∩ allo≈ fo≥ custoφ prin⌠ outpu⌠ áredirecì
tion« á┴ pointe≥ t∩ thσ namσ oµ thσ printe≥ (nul∞ terminated¼ al∞ capita∞ letters⌐ wil∞ ábσ ì
passeΣ át∩ áthσ subroutinσ iε BX« I⌠ i≤ u≡ t∩ thi≤ subroutinσ t∩ theε ároutσ áthσ áprinte≥ ì
outpu⌠ t∩ thσ appropriatσ outpu⌠ por⌠ b∙ whateve≥ mean≤ i≤ availablσ t∩ it.
084B 90 ULPORT: NOP ;Normall∙ NO╨ iµ n∩ redirectioε át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;bσ done.
084C 90 NOP ;Changσ t∩ JM╨ t∩ you≥ owε ásubro⌡ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;tine.
084D C3 RET
Thσ use≥ lis⌠ devicσ uninitializσ routinσ i≤ calleΣ afte≥ printinτ i≤ completed¼ anΣ caε bσ ì
useΣ t∩ restorσ thσ printe≥ statσ fo≥ noε-WordSta≥ applications.
084E 90 ULUNPT: NOP ;Uninitializσ ális⌠ ádevicσ ááafte≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;printing
084F 90 NOP
0850 C3 RET
Thσ áULIN╔ strinτ i≤ sen⌠ t∩ thσ lis⌠ devicσ afte≥ ULPOR╘ i≤ executeΣ anΣ beforσ thσ ádocuì
men⌠ i≤ printed.
0851 00 ULINI DB 0 ;List device initialization string
0852 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0,0
00 00
085B 000A[ DB 10 DUP(0) ;Reserved
00
]è
Thσ áULUN╔ strinτ i≤ sen⌠ t∩ thσ lis⌠ devicσ afte≥ thσ documen⌠ i≤ printeΣ anΣ ábeforσ áthσ ì
ULUNP╘ routinσ i≤ executed.
0865 00 ULUNI DB 0 ;List device uninitialization string
0866 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0,0
00 00
086F 000A[ DB 10 DUP(0) ;Reserved
00
]
Wheε áWordSta≥ ábegin≤ printing¼ spacσ i≤ allocateΣ fo≥ thσ threσ heade≥ anΣ áthreσ áfoote≥ ì
lines« HFMA╪ determine≤ ho≈ mucΦ spacσ t∩ allocate.
0879 0064 HFMAX DW 100 ;U≡ t∩ 10░ character≤ iε heade≥ áo≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;footer
DATSE╨ i≤ thσ characte≥ useΣ whilσ mergσ printinτ t∩ separatσ datß item≤ iε ß datß file.
087B 2C DATSEP DB ',' ;Comma
DLIS╘ i≤ thσ lis⌠ outpu⌠ delay« Ever∙ timσ ß characte≥ i≤ outpu⌠ t∩ thσ printer¼ thi≤ dela∙ ì
i≤ used.
087C 00 DLIST DB 0 ;No delay
087D 00 DB 0 ;Reserved
Custoφ Printe≥ Contro∞ Strings║ Thesσ string≤ arσ sen⌠ t∩ thσ printe≥ wheε thσ custoφ prin⌠ ì
contro∞ ácharacters¼ ^Q¼ ^W¼ ^E¼ o≥ ^╥ arσ encountereΣ iε tex⌠ beinτ printed« The∙ ácaε ábσ ì
useΣ át∩ áinvokσ specia∞ printe≥ function≤ no⌠ controlleΣ b∙ thσ standarΣ driver¼ ásucΦ áa≤ ì
expandeΣ o≥ compresseΣ mode≤ oµ printing¼ o≥ contro∞ oµ shee⌠ feeders.
┴ áfixeΣ lengtΦ oµ 2╡ byte≤ i≤ reserveΣ fo≥ eacΦ string¼ wherσ thσ firs⌠ bytσ i≤ thσ ácoun⌠ ì
oµ character≤ t∩ bσ sen⌠ t∩ thσ printer¼ anΣ thσ followinτ byte≤ (u≡ t∩ 24⌐ arσ thσ characì
ter≤ át∩ bσ sent« Iµ longe≥ string≤ arσ required¼ thσ firs⌠ bytσ caε bσ -1¼ followeΣ áb∙ áß ì
tw∩ bytσ addres≤ pointinτ int∩ ß patcΦ area¼ wherσ thσ actua∞ coun⌠ anΣ strinτ caε bσ found.
087E UPRCTL LABEL BYTE ;Custom Print Controls
087E 00 UPRQ DB 0 ;^Q , length
087F 0018[ DB 24 DUP(0) ;character string
00
]
0897 00 UPRW DB 0 ;^W
0898 0018[ DB 24 DUP(0)
00
]
08B0 00 UPRE DB 0 ;^E
08B1 0018[ DB 24 DUP(0)
00
]
08C9 00 UPRR DB 0 ;^R
08CA 0018[ DB 24 DUP(0)
00
]è
Strike-out character
08E2 2D STKCHR DB '-' ;Strike out character
Iµ PFFEE─ abovσ i≤ TRUE¼ o≥ yo⌡ specificall∙ tel∞ WordSta≥ t∩ usσ forφ feed≤ durinτ áprintì
ing¼ áthσ followinτ strinτ i≤ sen⌠ t∩ thσ printe≥ t∩ ejec⌠ thσ pape≥ t∩ thσ nex⌠ page« áAl∞ ì
printe≥ driver≤ usσ thi≤ string.
08E3 01 FORMF DB 1 ;^L
08E4 0C DB FFEED
08E5 0017[ DB 23 DUP(0)
00
]
Thesσ áspecia∞ prin⌠ control≤ arσ useΣ onl∙ b∙ thσ CUSTO═ anΣ SIMPL┼ printe≥ ádrivers« áThσ ì
SIMPL┼ ádrive≥ simpl∙ send≤ thσ string≤ a≤ the∙ arσ needeΣ iε thσ text« Thσ áCUSTO═ ádrive≥ ì
trie≤ t∩ makσ morσ intelligen⌠ usσ oµ thσ strings.
08FC 02 CRLF DB 2 ;Movσ át∩ álef⌠ sidσ anΣ ádowε áonσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line
08FD 0D 0A 00 00 00 DB CR,LF,0,0,0
0902 01 CRET DB 1 ;Movσ áprin⌠ heaΣ t∩ lef⌠ ásidσ áoµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;carriage
0903 0D 00 00 00 00 DB CR,0,0,0,0
0908 00 HALFLF DB 0 ;Move down the paper 1/2 line (but
0909 00 00 00 00 00 DB 0,0,0,0,0 ;n∩ carriage return) for sub/super-
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;script
090E 01 BACKSP DB 1 ;^H Move print head left one column
090F 08 00 00 00 00 DB BS,0,0,0,0
0914 00 NORMWD DB 0 ;^N Select normal character width
0915 00 00 00 00 00 DB 0,0,0,0,0
091A 00 ALTRWD DB 0 ;^A Select alternate character width
091B 00 00 00 00 00 DB 0,0,0,0,0
0920 01 PHSP DB 1 ;^F Phantom space
0921 20 00 00 00 00 DB ' ',0,0,0,0
0926 01 PHRUB DB 1 ;^G Phantom rubout
0927 20 00 00 00 00 DB ' ',0,0,0,0
092C 01 BINDSP DB 1 ;^O Binding space
092D 20 00 00 00 00 DB ' ',0,0,0,0
0932 00 BLDON DB 0 ;^B Boldface on
0933 00 00 00 00 00 DB 0,0,0,0,0
0938 00 BLDOFF DB 0 ;^B Boldface off
0939 00 00 00 00 00 DB 0,0,0,0,0
093E 00 DBLON DB 0 ;^D Doublestrike on
093F 00 00 00 00 00 DB 0,0,0,0,0
0944 00 DBLOFF DB 0 ;^D Doublestrike off
0945 00 00 00 00 00 DB 0,0,0,0,0è
094A 00 UNDON DB 0 ;^S Underline on
094B 00 00 00 00 00 DB 0,0,0,0,0
0950 00 UNDOFF DB 0 ;^S Underline off
0951 00 00 00 00 00 DB 0,0,0,0,0
0956 00 SPRON DB 0 ;^T Superscript on
0957 00 00 00 00 00 DB 0,0,0,0,0
095C 00 SPROFF DB 0 ;^T Superscript off
095D 00 00 00 00 00 DB 0,0,0,0,0
0962 00 SUBON DB 0 ;^V Subscript on
0963 00 00 00 00 00 DB 0,0,0,0,0
0968 00 SUBOFF DB 0 ;^V Subscript off
0969 00 00 00 00 00 DB 0,0,0,0,0
096E 00 STKON DB 0 ;^X Strikeout on
096F 00 00 00 00 00 DB 0,0,0,0,0
0974 00 STKOFF DB 0 ;^X Strikeout off
0975 00 00 00 00 00 DB 0,0,0,0,0
097A 00 ITLON DB 0 ;^Y Italics on
097B 00 00 00 00 00 DB 0,0,0,0,0
0980 00 ITLOFF DB 0 ;^Y Italics off
0981 00 00 00 00 00 DB 0,0,0,0,0
0986 00 EXTON DB 0 ;Extended character set on
0987 00 00 00 00 00 DB 0,0,0,0,0
098C 00 EXTOFF DB 0 ;Extended character set off
098D 00 00 00 00 00 DB 0,0,0,0,0
0992 00 NLQON DB 0 ;Near letter quality on (.LQ ON)
0993 00 00 00 00 00 DB 0,0,0,0,0
0998 00 NLQOFF DB 0 ;Near letter quality off (.LQ OFF)
0999 00 00 00 00 00 DB 0,0,0,0,0
099E 0030[ DB 8*6 DUP(0) ;Reserved
00
]
Thσ overstrikσ value≤ arσ useΣ b∙ thσ CUSTO═ drive≥ only¼ anΣ onl∙ iµ thσ ^┬ o≥ ^─ ástring≤ ì
d∩ no⌠ exis⌠ above.
09CE 03 DB 3 ;Number of overstrikes for bold
09CF 02 DB 2 ;Numbe≥ oµ overstrike≤ fo≥ ádoublσì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;strike
ExtendeΣ ácharacter≤ áarσ storeΣ iε ß filσ witΦ ES├ (1BH⌐ t∩ thσ immediatσ álef⌠ áanΣ áBES├ ì
(1CH⌐ t∩ thσ right« Thσ extendeΣ characte≥ i≤ printeΣ usinτ thσ followinτ table« EacΦ posiì
tioε iε thσ tablσ contain≤ tw∩ bytes« Thσ firs⌠ bytσ i≤ printed¼ anΣ iµ thσ seconΣ bytσ ái≤ ì
noε-zero¼ thσ seconΣ bytσ overprint≤ thσ firs⌠ one.
09D0 00 00 COMPOS DB CTRL@,0 ;^@è09D2 01 00 DB CTRLA,0 ;^A
09D4 02 00 DB CTRLB,0 ;^B
09D6 03 00 DB CTRLC,0 ;^C
09D8 04 00 DB CTRLD,0 ;^D
09DA 05 00 DB CTRLE,0 ;^E
09DC 06 00 DB CTRLF,0 ;^F
09DE 07 00 DB CTRLG,0 ;^G
09E0 08 00 DB CTRLH,0 ;^H
09E2 09 00 DB CTRLI,0 ;^I
09E4 0A 00 DB CTRLJ,0 ;^J
09E6 0B 00 DB CTRLK,0 ;^K
09E8 0C 00 DB CTRLL,0 ;^L
09EA 0D 00 DB CTRLM,0 ;^M
09EC 0E 00 DB CTRLN,0 ;^N
09EE 0F 00 DB CTRLO,0 ;^O
09F0 10 00 DB CTRLP,0 ;^P
09F2 11 00 DB CTRLQ,0 ;^Q
09F4 12 00 DB CTRLR,0 ;^R
09F6 13 00 DB CTRLS,0 ;^S
09F8 14 00 DB CTRLT,0 ;^T
09FA 15 00 DB CTRLU,0 ;^U
09FC 16 00 DB CTRLV,0 ;^V
09FE 17 00 DB CTRLW,0 ;^W
0A00 18 00 DB CTRLX,0 ;^X
0A02 19 00 DB CTRLY,0 ;^Y
0A04 1A 00 DB CTRLZ,0 ;^Y
0A06 1B 00 DB CTRLLB,0 ;^[
0A08 1C 00 DB CTRLSL,0 ;^\
0A0A 1D 00 DB CTRLRB,0 ;^]
0A0C 1E 00 DB CTRLUP,0 ;^^
0A0E 1F 00 DB CTRLUN,0 ;^_
0A10 20 00 DB ' ',0 ;blank
0A12 21 00 DB '!',0 ;!
0A14 22 00 DB '"',0 ;"
0A16 23 00 DB '#',0 ;#
0A18 24 00 DB '$',0 ;$
0A1A 25 00 DB '%',0 ;%
0A1C 26 00 DB '&',0 ;&
0A1E 27 00 DB "'",0 ;'
0A20 28 00 DB '(',0 ;(
0A22 29 00 DB ')',0 ;)
0A24 2A 00 DB '*',0 ;*
0A26 2B 00 DB '+',0 ;+
0A28 2C 00 DB ',',0 ;,
0A2A 2D 00 DB '-',0 ;-
0A2C 2E 00 DB '.',0 ;.
0A2E 2F 00 DB '/',0 ;/
0A30 30 00 DB '0',0 ;0
0A32 31 00 DB '1',0 ;1
0A34 32 00 DB '2',0 ;2
0A36 33 00 DB '3',0 ;3
0A38 34 00 DB '4',0 ;4
0A3A 35 00 DB '5',0 ;5
0A3C 36 00 DB '6',0 ;6
0A3E 37 00 DB '7',0 ;7
0A40 38 00 DB '8',0 ;8
0A42 39 00 DB '9',0 ;9
0A44 3A 00 DB ':',0 ;:
0A46 3B 00 DB ';',0 ;;
0A48 3C 00 DB '<',0 ;<è0A4A 3D 00 DB '=',0 ;=
0A4C 3E 00 DB '>',0 ;>
0A4E 3F 00 DB '?',0 ;?
0A50 40 00 DB '@',0 ;@
0A52 41 00 DB 'A',0 ;A
0A54 42 00 DB 'B',0 ;B
0A56 43 00 DB 'C',0 ;C
0A58 44 00 DB 'D',0 ;D
0A5A 45 00 DB 'E',0 ;E
0A5C 46 00 DB 'F',0 ;F
0A5E 47 00 DB 'G',0 ;G
0A60 48 00 DB 'H',0 ;H
0A62 49 00 DB 'I',0 ;I
0A64 4A 00 DB 'J',0 ;J
0A66 4B 00 DB 'K',0 ;K
0A68 4C 00 DB 'L',0 ;L
0A6A 4D 00 DB 'M',0 ;M
0A6C 4E 00 DB 'N',0 ;N
0A6E 4F 00 DB 'O',0 ;O
0A70 50 00 DB 'P',0 ;P
0A72 51 00 DB 'Q',0 ;Q
0A74 52 00 DB 'R',0 ;R
0A76 53 00 DB 'S',0 ;S
0A78 54 00 DB 'T',0 ;T
0A7A 55 00 DB 'U',0 ;U
0A7C 56 00 DB 'V',0 ;V
0A7E 57 00 DB 'W',0 ;W
0A80 58 00 DB 'X',0 ;X
0A82 59 00 DB 'Y',0 ;Y
0A84 5A 00 DB 'Z',0 ;Z
0A86 5B 00 DB '[',0 ;[
0A88 5C 00 DB '\',0 ;\
0A8A 5D 00 DB ']',0 ;]
0A8C 5E 00 DB '^',0 ;^
0A8E 5F 00 DB '_',0 ;_
0A90 60 00 DB '`',0 ;`
0A92 61 00 DB 'a',0 ;a
0A94 62 00 DB 'b',0 ;b
0A96 63 00 DB 'c',0 ;c
0A98 64 00 DB 'd',0 ;d
0A9A 65 00 DB 'e',0 ;e
0A9C 66 00 DB 'f',0 ;f
0A9E 67 00 DB 'g',0 ;g
0AA0 68 00 DB 'h',0 ;h
0AA2 69 00 DB 'i',0 ;i
0AA4 6A 00 DB 'j',0 ;j
0AA6 6B 00 DB 'k',0 ;k
0AA8 6C 00 DB 'l',0 ;l
0AAA 6D 00 DB 'm',0 ;m
0AAC 6E 00 DB 'n',0 ;n
0AAE 6F 00 DB 'o',0 ;o
0AB0 70 00 DB 'p',0 ;p
0AB2 71 00 DB 'q',0 ;q
0AB4 72 00 DB 'r',0 ;r
0AB6 73 00 DB 's',0 ;s
0AB8 74 00 DB 't',0 ;t
0ABA 75 00 DB 'u',0 ;u
0ABC 76 00 DB 'v',0 ;v
0ABE 77 00 DB 'w',0 ;w
0AC0 78 00 DB 'x',0 ;xè0AC2 79 00 DB 'y',0 ;y
0AC4 7A 00 DB 'z',0 ;z
0AC6 7B 00 DB '{',0 ;{
0AC8 7C 00 DB '|',0 ;|
0ACA 7D 00 DB '}',0 ;}
0ACC 7E 00 DB '~',0 ;~
0ACE 7F 00 DB DEL,0 ;DEL
0AD0 80 00 COMEXT DB 080H,0 ;Extended characters
0AD2 81 00 DB 081H,0
0AD4 82 00 DB 082H,0
0AD6 83 00 DB 083H,0
0AD8 84 00 DB 084H,0
0ADA 85 00 DB 085H,0
0ADC 86 00 DB 086H,0
0ADE 87 00 DB 087H,0
0AE0 88 00 DB 088H,0
0AE2 89 00 DB 089H,0
0AE4 8A 00 DB 08AH,0
0AE6 8B 00 DB 08BH,0
0AE8 8C 00 DB 08CH,0
0AEA 8D 00 DB 08DH,0
0AEC 8E 00 DB 08EH,0
0AEE 8F 00 DB 08FH,0
0AF0 90 00 DB 090H,0
0AF2 91 00 DB 091H,0
0AF4 92 00 DB 092H,0
0AF6 93 00 DB 093H,0
0AF8 94 00 DB 094H,0
0AFA 95 00 DB 095H,0
0AFC 96 00 DB 096H,0
0AFE 97 00 DB 097H,0
0B00 98 00 DB 098H,0
0B02 99 00 DB 099H,0
0B04 9A 00 DB 09AH,0
0B06 9B 00 DB 09BH,0
0B08 9C 00 DB 09CH,0
0B0A 9D 00 DB 09DH,0
0B0C 9E 00 DB 09EH,0
0B0E 9F 00 DB 09FH,0
0B10 A0 00 DB 0A0H,0
0B12 A1 00 DB 0A1H,0
0B14 A2 00 DB 0A2H,0
0B16 A3 00 DB 0A3H,0
0B18 A4 00 DB 0A4H,0
0B1A A5 00 DB 0A5H,0
0B1C A6 00 DB 0A6H,0
0B1E A7 00 DB 0A7H,0
0B20 A8 00 DB 0A8H,0
0B22 A9 00 DB 0A9H,0
0B24 AA 00 DB 0AAH,0
0B26 AB 00 DB 0ABH,0
0B28 AC 00 DB 0ACH,0
0B2A AD 00 DB 0ADH,0
0B2C AE 00 DB 0AEH,0
0B2E AF 00 DB 0AFH,0
0B30 B0 00 DB 0B0H,0
0B32 B1 00 DB 0B1H,0
0B34 B2 00 DB 0B2H,0
0B36 B3 00 DB 0B3H,0è0B38 B4 00 DB 0B4H,0
0B3A B5 00 DB 0B5H,0
0B3C B6 00 DB 0B6H,0
0B3E B7 00 DB 0B7H,0
0B40 B8 00 DB 0B8H,0
0B42 B9 00 DB 0B9H,0
0B44 BA 00 DB 0BAH,0
0B46 BB 00 DB 0BBH,0
0B48 BC 00 DB 0BCH,0
0B4A BD 00 DB 0BDH,0
0B4C BE 00 DB 0BEH,0
0B4E BF 00 DB 0BFH,0
0B50 C0 00 DB 0C0H,0
0B52 C1 00 DB 0C1H,0
0B54 C2 00 DB 0C2H,0
0B56 C3 00 DB 0C3H,0
0B58 C4 00 DB 0C4H,0
0B5A C5 00 DB 0C5H,0
0B5C C6 00 DB 0C6H,0
0B5E C7 00 DB 0C7H,0
0B60 C8 00 DB 0C8H,0
0B62 C9 00 DB 0C9H,0
0B64 CA 00 DB 0CAH,0
0B66 CB 00 DB 0CBH,0
0B68 CC 00 DB 0CCH,0
0B6A CD 00 DB 0CDH,0
0B6C CE 00 DB 0CEH,0
0B6E CF 00 DB 0CFH,0
0B70 D0 00 DB 0D0H,0
0B72 D1 00 DB 0D1H,0
0B74 D2 00 DB 0D2H,0
0B76 D3 00 DB 0D3H,0
0B78 D4 00 DB 0D4H,0
0B7A D5 00 DB 0D5H,0
0B7C D6 00 DB 0D6H,0
0B7E D7 00 DB 0D7H,0
0B80 D8 00 DB 0D8H,0
0B82 D9 00 DB 0D9H,0
0B84 DA 00 DB 0DAH,0
0B86 DB 00 DB 0DBH,0
0B88 DC 00 DB 0DCH,0
0B8A DD 00 DB 0DDH,0
0B8C DE 00 DB 0DEH,0
0B8E DF 00 DB 0DFH,0
0B90 E0 00 DB 0E0H,0
0B92 E1 00 DB 0E1H,0
0B94 E2 00 DB 0E2H,0
0B96 E3 00 DB 0E3H,0
0B98 E4 00 DB 0E4H,0
0B9A E5 00 DB 0E5H,0
0B9C E6 00 DB 0E6H,0
0B9E E7 00 DB 0E7H,0
0BA0 E8 00 DB 0E8H,0
0BA2 E9 00 DB 0E9H,0
0BA4 EA 00 DB 0EAH,0
0BA6 EB 00 DB 0EBH,0
0BA8 EC 00 DB 0ECH,0
0BAA ED 00 DB 0EDH,0
0BAC EE 00 DB 0EEH,0
0BAE EF 00 DB 0EFH,0è0BB0 F0 00 DB 0F0H,0
0BB2 F1 00 DB 0F1H,0
0BB4 F2 00 DB 0F2H,0
0BB6 F3 00 DB 0F3H,0
0BB8 F4 00 DB 0F4H,0
0BBA F5 00 DB 0F5H,0
0BBC F6 00 DB 0F6H,0
0BBE F7 00 DB 0F7H,0
0BC0 F8 00 DB 0F8H,0
0BC2 F9 00 DB 0F9H,0
0BC4 FA 00 DB 0FAH,0
0BC6 FB 00 DB 0FBH,0
0BC8 FC 00 DB 0FCH,0
0BCA FD 00 DB 0FDH,0
0BCC FE 00 DB 0FEH,0
0BCE FF 00 DB 0FFH,0
The following string is used to describe the name of a sheet feeder.
0BD0 00 SHTID DB 0 ;No sheet feeder
0BD1 20 20 20 20 20 20 20 DB ' '
20 20 20 20 20 20 20
20 20 20 20 20 20
0BE5 20 20 20 20 20 20 20 DB ' '
20 20 20 20 20 20 20
20 20 20 20 20
Sheet Feeders
The sheet feeder strings are only used for the primary printer driver.
0BF8 00 SHEET DB 0 ;Select and load bin 1
0BF9 00 00 00 00 DB 0,0,0,0
0BFD 00 00 00 00 DB 0,0,0,0
0C01 00 00 00 00 DB 0,0,0,0
0C05 00 DB 0 ;Select and load bin 2
0C06 00 00 00 00 DB 0,0,0,0
0C0A 00 00 00 00 DB 0,0,0,0
0C0E 00 00 00 00 DB 0,0,0,0
0C12 00 DB 0 ;Select and load bin 3
0C13 00 00 00 00 DB 0,0,0,0
0C17 00 00 00 00 DB 0,0,0,0
0C1B 00 00 00 00 DB 0,0,0,0
0C1F 00 DB 0 ;Select and load bin 4
0C20 00 00 00 00 DB 0,0,0,0
0C24 00 00 00 00 DB 0,0,0,0
0C28 00 00 00 00 DB 0,0,0,0
0C2C 00 DB 0 ;Eject final page
0C2D 00 00 00 00 DB 0,0,0,0
0C31 00 00 00 00 DB 0,0,0,0
0C35 00 00 00 00 DB 0,0,0,0
This is 128 bytes set aside for printer subroutines & strings.
0C39 0000 0000 0000 0000 PRNPAT DW 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000 0000 0000 0000è 0000 0000 0000 0000
0000 0000 0000 0000
0C59 0000 0000 0000 0000 DW 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0C79 0000 0000 0000 0000 DW 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0C99 0000 0000 0000 0000 DW 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
Iµ noε-standarΣ initializatioε parameter≤ arσ used¼ thσ followinτ identificatioε strinτ caε ì
bσ ádisplayeΣ a⌠ sigε-on« U≡ t∩ 4░ byte≤ arσ availablσ fo≥ thσ string¼ includinτ áthσ ánul∞ ì
terminator.
0CB9 00 INITID DB 0 ;No ID if standard
0CBA 20 20 20 20 20 20 20 DB ' '
20 20 20 20 20 20 20
20 20 20 20 20
0CCD 20 20 20 20 20 20 20 DB ' '
20 20 20 20 20 20 20
20 20 20 20 20 20
Legal Drives
Notσ átha⌠ thσ firs⌠ drivσ i≤ assumeΣ t∩ bσ thσ defaul⌠ drivσ wherσ an∙ specia∞ áfile≤ áarσ ì
locateΣ ásucΦ a≤ thσ WSMSGS.OV╥ file« Thσ drive≤ listeΣ shoulΣ bσ reduceΣ t∩ thσ one≤ átha⌠ ì
arσ actuall∙ iε usσ oε thσ systeφ upoε whicΦ WordSta≥ i≤ running.
Iµ thσ mos⌠ significan⌠ bi⌠ oµ thσ drivσ lette≥ i≤ se⌠ t∩ 1¼ WordSta≥ wil∞ assumσ tha⌠ áthσ ì
drivσ i≤ noε-removable« ┴ disδ rese⌠ wil∞ no⌠ bσ donσ wheε noε-removablσ drive≤ arσ logged.
0CE1 41 42 43 44 45 46 47 LGLDRV DB 'ABCDEFGHIJKLMNOP'
48 49 4A 4B 4C 4D 4E
4F 50
0CF1 51 52 53 54 55 56 57 DB 'QRSTUVWXYZ',0
58 59 5A 00
WordSta≥ áuse≤ severa∞ files« Thei≥ name≤ arσ specifieΣ here« Thσ firs⌠ bytσ oµ eacΦ áfileì
namσ indicate≤ whicΦ drivσ thσ filσ shoulΣ bσ on« Iµ i⌠ i≤ zero¼ WordSta≥ use≤ thσ áfollowì
inτ searcΦ patterε t∩ tr∙ t∩ finΣ thσ file:
For MS-DOS:
1. Look on the current drive and path.
2. Default path (DEFUSR) on the current drive.
3. Current path on the default drive (the first
drive listed in LGLDRV)
4. Default path on the default drive.
For CP/M:
1. Look on the current drive and user.
2. Default user (DEFUSR) on the current drive.
3. Current user on the default drive.
4. Default user on the default drive.è
Iµ áthσ drivσ bytσ oµ thσ filenamσ i≤ noε-zero¼ i⌠ shoulΣ bσ se⌠ t∩ ß numbe≥ ▒ áthrougΦ á1╢ ì
representinτ drive≤ ┴ througΦ ╨ respectively« Iε thi≤ case¼ WordSta≥ wil∞ looδ onl∙ oε áthσ ì
specifieΣ drivσ fo≥ thσ file.
0CFC 00 57 53 4D 53 47 53 MSFILE DB 0,'WSMSGS OVR' ;Menus and messages
20 20 4F 56 52
0D08 00 57 53 49 4E 44 45 IXFILE DB 0,'WSINDEX XCL' ;Indexer exclusion list
58 20 58 43 4C
0D14 00 57 53 50 52 49 4E OVFILE DB 0,'WSPRINT OVR' ;Print driver overlays
54 20 4F 56 52
0D20 00 57 53 53 48 4F 52 SVFILE DB 0,'WSSHORT OVR' ;Shorthand definitions
54 20 4F 56 52
0D2C 00 57 53 53 50 45 4C SPFILE DB 0,'WSSPELL OVR' ;CorrectStar overlay
4C 20 4F 56 52
0D38 00 4D 41 49 4E 20 20 MDFILE DB 0,'MAINDCT' ;Main dictionary
20 20 44 43 54
0D44 00 49 4E 54 45 52 4E QDFILE DB 0,'INTERNALDCT' ;Internal dictionary
41 4C 44 43 54
0D50 00 50 45 52 53 4F 4E UDFILE DB 0,'PERSONALDCT' ;Personal dictionary
41 4C 44 43 54
0D5C 0054[ DB 7*12 DUP(0) ;Reserved
00
]
Fo≥ M╙-DOS¼ DEFUS╥ i≤ thσ defaul⌠ patΦ tha⌠ WordSta≥ use≤ iε it≤ searcΦ pattern« Thσ áfirs⌠ ì
bytσ i≤ thσ lengtΦ oµ thσ patΦ namσ strinτ tha⌠ immediatel∙ follows« Iµ thσ strinτ i≤ longì
e≥ áthaε 2┤ characters¼ se⌠ thσ lengtΦ bytσ t∩ -▒ anΣ follo≈ i⌠ witΦ thσ addres≤ áoµ áwherσ ì
thσ longe≥ strinτ is« Se⌠ thσ lengtΦ bytσ t∩ zer∩ t∩ disablσ thσ DEFUS╥ path.
Fo≥ CP/M¼ DEFUS╥ i≤ thσ defaul⌠ use≥ numbe≥ tha⌠ WordSta≥ use≤ iε it≤ searcΦ pattern« áUse≥ ì
number≤ caε bσ froφ ░ througΦ 31« Se⌠ t∩ -▒ t∩ disablσ thσ DEFUS╥ user.
0DB0 DEFUSR LABEL BYTE
0DB0 04 5C 57 53 34 DB 4,'\WS4' ;WordStar path
0DB5 0014[ DB 20 DUP(0) ;Room for 20 more characters
00
]
INILO╟ áallow≤ thσ use≥ t∩ specif∙ ß drivσ anΣ use≥ numbe≥ o≥ pathnamσ fo≥ WordSta≥ t∩ áloτ ì
ont∩ áwheε firs⌠ started« Thσ firs⌠ bytσ i≤ ß coun⌠ oµ followinτ characters;thσ nex⌠ ábyte≤ ì
(u≡ t∩ three⌐ caε contaiε ß drivσ namσ (┴-P⌐ anΣ eithe≥ ß use≥ numbe≥ fo≥ CP/═ (░-31)¼ o≥ ß ì
patΦ ánamσ fo≥ M╙-DOS« (Caε bσ redirecteΣ witΦ ß coun⌠ oµ -▒ followeΣ b∙ aε áaddres≤ áwherσ ì
thσ strinτ actuall∙ is.)
0DC9 00 INILOG DB 0 ;Don't change directories
0DCA 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0 ;Room for 24 chars
00
0DD2 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0
00
0DDA 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0
00è
WordSta≥ ácreate≤ backu≡ anΣ temporar∙ files« Thσ followinτ arσ thσ filσ type≤ t∩ ábσ áuseΣ ì
fo≥ them.
0DE2 42 41 4B BAKTYP DB 'BAK' ;Type for backup files
0DE5 24 42 24 BFTYPE DB '$B$' ;Typσ oµ spillove≥ filσ beforσ meφì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ory
0DE8 24 41 24 AFTYPE DB '$A$' ;Typσ oµ spillove≥ filσ afte≥ mem∩ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ry
0DEB 24 43 24 BLKTYP DB '$C$' ;Typσ oµ filσ useΣ t∩ buffe≥ áblocδ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;move/copy
0DEE 000C[ DB 3*4 DUP(0) ;Reserved
00
]
Wheε thσ director∙ i≤ displayed¼ filσ type≤ froφ thi≤ tablσ arσ suppressed« ┴ questioε marδ ì
iε ß filσ typσ matche≤ an∙ character.
0DFA 43 4F 4D NOTYPE DB 'COM' ;Command files
0DFD 45 58 45 DB 'EXE' ;Execution files
0E00 4F 56 52 DB 'OVR' ;Overlays
0E03 24 3F 24 DB '$?$' ;Temporar∙ ábeforσ anΣ afte≥ áfile≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;($A$¼ $B$)
0E06 43 4D 44 DB 'CMD' ;CP/M-86 command files
0E09 44 43 54 DB 'DCT'
0E0C 00 00 00 DB 0,0,0 ;Room for 6 more
0E0F 00 00 00 DB 0,0,0
0E12 00 00 00 DB 0,0,0
0E15 00 00 00 DB 0,0,0
0E18 00 00 00 DB 0,0,0
0E1B 00 00 00 DB 0,0,0
0E1E 00 DB 0 ;End of table
DIRFI╠ i≤ ß filσ namσ "imageó tha⌠ i≤ useΣ iε conjunctioε witΦ NOTYP┼ (above⌐ t∩ ádeterminσ ì
whicΦ áfile≤ arσ t∩ bσ displayeΣ iε WordStar'≤ directories« DIRFI╠ determine≤ whicΦ áfile≤ ì
caε possibl∙ bσ included¼ anΣ NOTYP┼ theε eliminate≤ certaiε type≤ oµ files« Usσ ß questioε ì
marδ iε DIRFI╠ a⌠ eacΦ spo⌠ wherσ an∙ filσ namσ characte≥ caε match.
0E1F 3F 3F 3F 3F 3F 3F 3F DIRFIL DB "???????????" ;All files match
3F 3F 3F 3F
Thσ ánamσ oµ thσ filσ t∩ bσ editeΣ caε bσ specifieΣ a⌠ thσ operatinτ systeφ prompt« áININO╬ ì
indicate≤ whethe≥ thσ filσ shoulΣ bσ editeΣ a≤ ß documen⌠ o≥ nondocument.
0E2A 00 ININON DB FALSE ;Document (not a nondocument)
WordSta≥ ánormall∙ ámake≤ BA╦ backu≡ file≤ ever∙ timσ yo⌡ savσ you≥ work« INITBA╦ ácaε ábσ ì
useΣ t∩ disablσ backup≤ b∙ settinτ i⌠ FALSE.
0E2B FF INIBAK DB TRUE ;Make backups
0E2C 00 00 00 DB 0,0,0 ;Reserved
Wheε áß ánondocumen⌠ i≤ edited¼ WordSta≥ wil∞ decidσ ho≈ t∩ expanΣ tab≤ á(ASCI╔ á09H)¼ áanΣ ì
whethe≥ o≥ no⌠ t∩ usσ aut∩-indentinτ b∙ lookinτ iε thi≤ table.
èTherσ i≤ ß specia∞ casσ oµ thσ taΓ mask≤ showε below« Wheε thσ mos⌠ significan⌠ bi⌠ oµ áthσ ì
taΓ masδ i≤ se⌠ t∩ 1¼ WordSta≥ wil∞ assumσ tha⌠ yo⌡ wan⌠ t∩ usσ variablσ tabbing« Wheε áthσ ì
taΓ áke∙ i≤ typed¼ insteaΣ oµ insertinτ aε ASCI╔ 09╚ int∩ thσ file¼ space≤ wil∞ bσ áentereΣ ì
u≡ t∩ thσ nex⌠ taΓ stop« Thσ taΓ stop≤ useΣ arσ iε thσ INIRL╥ table« Aε ASCI╔ 09╚ caε stil∞ ì
bσ entereΣ iε thi≤ mode¼ however¼ b∙ typinτ ^PI.
0E2F 50 41 53 01 FF EDCOND DB 'PAS',00000001B,TRUE ;File extension¼ followed
0E34 50 4C 49 03 FF DB 'PLI',00000011B,TRUE ;b∙ ß binary tab mask (e.g.
0E39 43 20 20 03 FF DB 'C ',00000011B,TRUE ;ß masδ oµ 00000111B expands
0E3E á48 20 20 03 FF DB 'H ',00000011B,TRUE ;taΓ ácharacter≤ át∩ áever∙ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;8tΦ ácolumn)¼ followeΣ áb∙ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;TRU┼ áiµ áaut∩-inden⌠ áái≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;turneΣ on.
0E43 00 00 00 07 00 DB 0,0,0,00000111B,FALSE ;EnΣ oµ tablσ witΦ default≤ ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááiµ filσ typσ doesn'⌠ ámatcΦ ì
ááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááabove
0E48 00 00 00 00 00 DB 0,0,0,0,0 ;Room for four more
0E4D 00 00 00 00 00 DB 0,0,0,0,0
0E52 00 00 00 00 00 DB 0,0,0,0,0
0E57 00 00 00 00 00 DB 0,0,0,0,0
WordSta≥ normall∙ onl∙ consider≤ alphabetiπ o≥ numeriπ character≤ a≤ beinτ withiε ß "word"« ì
Iµ áothe≥ ácharacter≤ arσ legall∙ par⌠ oµ ß worΣ too¼ theε thσ bi⌠ áfo≥ áthσ ácorrespondinτ ì
characte≥ codσ iε thσ followinτ tablσ mus⌠ bσ se⌠ t∩ ß 1.
Therσ áarσ 25╢ bit≤ iε thσ tablσ t∩ allo≈ fo≥ ╕-bi⌠ characte≥ sets« Thσ defaul⌠ tablσ áha≤ ì
thσ ábit≤ áse⌠ fo≥ thσ number≤ "0ó througΦ "9ó (ASCI╔ code≤ oµ 30╚ througΦ á39H)¼ áfo≥ áthσ ì
uppe≥ ácasσ letter≤ "Aó througΦ "Zó (41╚ througΦ 5AH)¼ anΣ thσ lowe≥ casσ letter≤ "aó áthr⌡ ì
"zó (61╚ througΦ 7AH)« Bit≤ froφ 80╚ througΦ FF╚ arσ se⌠ accordinτ t∩ thσ IB═ P├ ácharacte≥ ì
set.
; 01234567 89ABCDEF
0E5C 00 00 LGLCHR DB 00000000B,00000000B ;Codes 00H to 0FH
0E5E 00 00 DB 00000000B,00000000B ;Codes 10H to 1FH
0E60 00 00 DB 00000000B,00000000B ;Codes 20H to 2FH
0E62 00 00 DB 00000000B,00000000B ;Codes 30H to 3FH
0E64 7F FF DB 01111111B,11111111B ;Codes 40H to 4FH
0E66 FF E0 DB 11111111B,11100000B ;Codes 50H to 5FH
0E68 7F FF DB 01111111B,11111111B ;Codes 60H to 6FH
0E6A FF E0 DB 11111111B,11100000B ;Codes 70H to 7FH
0E6C FF FF DB 11111111B,11111111B ;Codes 80H to 8FH
0E6E FF E0 DB 11111111B,11100000B ;Codes 90H to 9FH
0E70 FF 00 DB 11111111B,00000000B ;Codes A0H to AFH
0E72 00 00 DB 00000000B,00000000B ;Codes B0H to BFH
0E74 00 00 DB 00000000B,00000000B ;Codes C0H to CFH
0E76 00 00 DB 00000000B,00000000B ;Codes D0H to DFH
0E78 FF F0 DB 11111111B,11110000B ;Codes E0H to EFH
0E7A 00 0C DB 00000000B,00001100B ;Codes F0H to FFH
Wheε yo⌡ usσ ^┴ o≥ ^╞ t∩ movσ ß worΣ a⌠ ß time¼ WordSta≥ use≤ thσ followinτ tablσ t∩ deterì
minσ whicΦ character≤ t∩ skip« I⌠ i≤ organizeΣ iε thσ samσ manne≥ a≤ LGLCH╥ above.
; 01234567 89ABCDEF
0E7C FF 92 MOVCHR DB 11111111B,10010010B ;Codes 00H to 0FH
0E7E FB C3 DB 11111011B,11000011B ;Codes 10H to 1FH
0E80 3F F5 DB 00111111B,11110101B ;Codes 20H to 2FH
0E82 FF CE DB 11111111B,11001110B ;Codes 30H to 3FH
0E84 FF FF DB 11111111B,11111111B ;Codes 40H to 4FHè0E86 FF FF DB 11111111B,11111111B ;Codes 50H to 5FH
0E88 FF FF DB 11111111B,11111111B ;Codes 60H to 6FH
0E8A FF FE DB 11111111B,11111110B ;Codes 70H to 7FH
0E8C FF FF DB 11111111B,11111111B ;Codes 80H to 8FH
0E8E FF FF DB 11111111B,11111111B ;Codes 90H to 9FH
0E90 FF 7B DB 11111111B,01111011B ;Codes A0H to AFH
0E92 FF FF DB 11111111B,11111111B ;Codes B0H to BFH
0E94 FF FF DB 11111111B,11111111B ;Codes C0H to CFH
0E96 FF FF DB 11111111B,11111111B ;Codes D0H to DFH
0E98 FF FF DB 11111111B,11111111B ;Codes E0H to EFH
0E9A FF FE DB 11111111B,11111110B ;Codes F0H to FFH
Certaiε specia∞ character≤ caε bσ inserteΣ int∩ thi≤ tablσ t∩ causσ WordSta≥ t∩ áautomaticì
all∙ ágeneratσ ß backspacσ characte≥ (^H⌐ precedinτ thσ characte≥ a≤ yo⌡ type« Thi≤ caε ábσ ì
especiall∙ usefu∞ fo≥ accen⌠ character≤ iε somσ foreigε languages.
0E9C 00 AUTOBS DB 0 ;Number of characters in table
0E9D 00 00 00 00 DB 0,0,0,0 ;Up to 8 character codes
0EA1 00 00 00 00 DB 0,0,0,0
CASTB╠ i≤ ß upper/lowe≥ casσ conversioε table« I⌠ i≤ primaril∙ useΣ fo≥ foreigε álanguages« ì
Iµ áthσ tablσ i≤ no⌠ biτ enough¼ redirec⌠ t∩ ß large≥ patcΦ areß b∙ settinτ thσ ánumbe≥ áoµ ì
pair≤ t∩ -▒ (FF⌐ followeΣ b∙ thσ addres≤ oµ thσ large≥ table« Default≤ arσ baseΣ oε thσ IB═ ì
P├ extendeΣ characte≥ set.
0EA5 08 CASTBL DB 8 ;Number of upper/lower pairs
0EA6 80 87 DB 080H,087H
0EA8 8E 84 DB 08EH,084H
0EAA 8F 86 DB 08FH,086H
0EAC 90 82 DB 090H,082H
0EAE 92 91 DB 092H,091H
0EB0 99 94 DB 099H,094H
0EB2 9A 81 DB 09AH,081H
0EB4 A5 A4 DB 0A5H,0A4H
0EB6 00 00 DB 0,0 ;Room for 8 more upper/lower pairs
0EB8 00 00 DB 0,0
0EBA 00 00 DB 0,0
0EBC 00 00 DB 0,0
0EBE 00 00 DB 0,0
0EC0 00 00 DB 0,0
0EC2 00 00 DB 0,0
0EC4 00 00 DB 0,0
0EC6 00 00 00 00 DB 0,0,0,0 ;Reserved
Wheε WordSta≥ open≤ ß filσ fo≥ editing¼ i⌠ use≤ thσ followinτ initia∞ conditions.
0ECA 03 INIDOC DB 3 ;Top of page margin.
0ECB 08 DB 8 ;Bottom of page margin.
0ECC 42 DB 66 ;Total lines per page.
0ECD 0001 DW 1 ;Initial page number (note 2 bytes).
0ECF FF DB TRUE ;Pagσ ánumbe≥ print≤ a⌠ ábottoφ áoµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pagσ áiµ TRUE« N∩ pagσ ánumbe≥ áiµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;FALSE.
0ED0 1C DB 28 ;Column where page number prints.è
0ED1 02 DB 2 ;Headinτ margin« Thi≤ i≤ thσ numbe≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oµ line≤ abovσ thσ tex⌠ wherσ áthσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;headinτ i≤ t∩ print.
0ED2 02 DB 2 ;Footinτ margin« Thi≤ i≤ thσ numbe≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oµ line≤ belo≈ thσ tex⌠ wherσ áthσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;footinτ i≤ t∩ print.
0ED3 07 DB 00000111B ;Default document tab mask (must be
;binary, 00000000B thru 01111111B).
0ED4 08 DB 8 ;Left column where printing starts.
0ED5 FF DB TRUE ;Bidirectiona∞ áprintinτ áiµ áTRUE« ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Unidirectiona∞ o≥ printe≥ controlì
ááááááááááááááááááááááááááááááááááááááááááááááááááááááááleΣ iµ FALSE.
0ED6 FF DB TRUE ;Lette≥ áqualit∙ printinτ iµ áTRUE« ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Draf⌠ qualit∙ iµ FALSE« (Onl∙ su≡ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;porteΣ oε somσ printers.)
0ED7 02 DB 2 ;MicrojustifieΣ áprinting« ░ áturn≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;i⌠ off¼ ▒ turn≤ i⌠ on¼ anΣ ▓ make≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;i⌠ discretionar∙ (dependinτ oε thσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;printe≥ drive≥ iε use).
0ED8 00 DB FALSE ;Underlinσ blank≤ betweeε word≤ áiµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;TRUE.
0ED9 0C DB 12 ;StandarΣ ácharacte≥ widtΦ (iε áHM╔ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;units)« áThσ printe≥ i≤ árese⌠ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;thi≤ wheε donσ printing.
0EDA 08 DB 8 ;StandarΣ álinσ heigh⌠ (iε VM╔ áuεì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;its)« Thσ printe≥ i≤ rese⌠ t∩ thi≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;afte≥ .L╚ do⌠ commands« I⌠ i≤ als∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;useΣ t∩ determinσ thσ pagσ sizσ iε ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;VM╔ áunit≤ b∙ multiplyinτ áb∙ áthσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line≤ pe≥ pagσ above.
0EDB 0C DB 12 ;Characte≥ widtΦ (iε HM╔ units⌐ fo≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;norma∞ ápitch« Iµ HM╔ i≤ 120¼ áteε ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pitcΦ ái≤ 12/120¼ twelvσ pitcΦ ái≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;10/120.
0EDC 0A DB 10 ;Characte≥ ááwidtΦ áfo≥ ááalternatσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pitcΦ (usσ ^P┴ t∩ selec⌠ alternatσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pitcΦ whilσ editing).
0EDD 03 DB 3 ;Subscrip⌠ anΣ superscrip⌠ rol∞ (iε ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;VM╔ units)« Thi≤ valuσ ádetermine≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ho≈ áfa≥ u≡ o≥ dowε áthσ ácarriagσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;move≤ wheε subscriptinτ o≥ ásupe≥ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;scripting.
0EDE 08 DB 8 ;Linσ áheigh⌠ (iε VM╔ units)« áThi≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;valuσ ádetermine≤ ho≈ fa≥ t∩ árol∞ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;thσ ácarriagσ t∩ ge⌠ t∩ áthσ ánex⌠ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line.è
Thσ ádefaul⌠ rule≥ linσ caε bσ describeΣ b∙ defininτ thσ followinτ values« Notσ átha⌠ áthσ ì
taΓ sto≡ table≤ mus⌠ contaiε value≤ iε ascendinτ orde≥ only« Thσ regula≥ taΓ stop≤ arσ pu⌠ ì
iε thσ tablσ first¼ immediatel∙ followeΣ b∙ thσ decima∞ tabs.
0EDF 01 INIRLR DB 1 ;Left ruler margin
0EE0 41 DB 65 ;Right ruler margin
0EE1 00 DB 0 ;Paragraph margin
0EE2 00 DB 0 ;Reserved
0EE3 0B DB 11 ;Number of tab stops in tab table
0EE4 00 DB 0 ;Number of decimal tabs
0EE5 06 0B 10 15 DB 6,11,16,21 ;Tab stops
0EE9 1A 1F 24 29 DB 26,31,36,41 ;(Must be in
0EED 2E 33 38 DB 46,51,56 ;ascending order)
0EF0 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0 ;Room for 21 more
00
0EF8 00 00 00 00 00 00 00 DB 0,0,0,0,0,0,0,0
00
0F00 00 00 00 00 00 DB 0,0,0,0,0
INIRL╔ determine≤ whethe≥ thσ rule≥ linσ i≤ rσ-initializeΣ froφ INIRL╥ eacΦ timσ an∙ ádocuì
men⌠ ái≤ edited« Iµ INIRL╔ i≤ FALSE¼ yo⌡ caε changσ thσ initia∞ rule≥ linσ witΦ á^OL¼ á^OR¼ ì
^OI¼ áanΣ ^O╬ commands¼ anΣ havσ thosσ change≤ bσ useΣ fo≥ ever∙ documen⌠ editeΣ unti∞ áyo⌡ ì
exi⌠ WordStar.
0F05 FF INIRLI DB TRUE ;Initialize ruler for each document
A≤ yo⌡ movσ througΦ ß document¼ WordSta≥ execute≤ somσ oµ thσ do⌠ commands¼ likσ .R╥ árule≥ ì
linσ commands¼ a≤ the∙ arσ encountered« A≤ WordSta≥ move≤ forwarΣ througΦ thσ text¼ thσ olΣ ì
rule≥ linσ i≤ storeΣ iε memor∙ s∩ tha⌠ i⌠ caε bσ restoreΣ wheε yo⌡ movσ backward≤ ove≥ áthσ ì
.R╥ later« Othe≥ do⌠ command≤ worδ iε ß simila≥ manner.
DSTKS┌ ái≤ useΣ t∩ allocatσ storagσ fo≥ thσ do⌠ commands« Whilσ yo⌡ arσ áediting¼ áWordSta≥ ì
put≤ ß Do⌠-Limi⌠ indicato≥ iε thσ statu≤ linσ iµ yo⌡ usσ to∩ man∙ do⌠ commands.
Dot Command Size
.RR 38
.RM .LM .LH .PL 1
.MT .MB 1
.PN 2
0F06 01F4 DSTKSZ DW 500 ;Rooφ áfo≥ 1│ .R╥ command≤ áo≥ á50░ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;.R═ ª .LM
INIDI╥ determine≤ whethe≥ thσ director∙ i≤ initiall∙ displayeΣ o≥ not« DIRSR╘ tell≤ áWordì
Sta≥ áwhethe≥ áo≥ áno⌠ t∩ sor⌠ directorie≤ iε alphabetica∞ orde≥ ábeforσ ádisplayinτ áthem« ì
DSPAC┼ áindicate≤ whethe≥ o≥ no⌠ WordSta≥ i≤ t∩ displa∙ oε directorie≤ thσ spacσ áremaininτ ì
fo≥ thσ currentl∙ loggeΣ drive.
0F08 FF INIDIR DB TRUE ;Directory on
0F09 FF DIRSRT DB TRUE ;Sort directory
0F0A FF DSPACE DB TRUE ;Display remaining space
INIHLP is the default help level. It can have a value from 0 to 3.
è0F0B 03 INIHLP DB 3 ;All help
Wheε editing¼ thσ las⌠ erasurσ caε bσ undonσ witΦ ^U« UNON┼ determine≤ whethe≥ singlσ charì
acte≥ erasure≤ witΦ ^╟ anΣ DE╠ caε als∩ bσ undone.
UNSIZ┼ i≤ thσ maximuφ erasurσ tha⌠ caε late≥ bσ undone« Thσ unerasσ buffe≥ share≤ thσ ásamσ ì
memor∙ áspacσ a≤ thσ tex⌠ yo⌡ arσ editing« Makinτ UNSIZ┼ ver∙ largσ ma∙ causσ áWordSta≥ át∩ ì
"spil∞ overó t∩ disδ morσ frequently¼ slowinτ dowε editing.
0F0C 00 UNONE DB FALSE ;Don't unerase single erasures
0F0D 01F4 UNSIZE DW 500 ;Unerase up to 500 characters
VMSIZ┼ áindicate≤ thσ numbe≥ oµ 12╕-bytσ record≤ tha⌠ caε bσ reaΣ froφ thσ disδ áfo≥ áWordì
Star'≤ message≤ anΣ menus.
0F0F 04 VMSIZE DB 4 ;Four records (.5k byte)
OVSIZ┼ indicate≤ thσ numbe≥ oµ 12╕-bytσ record≤ tha⌠ caε bσ reaΣ froφ thσ disδ fo≥ áprinte≥ ì
drive≥ loadinτ anΣ fo≥ spellinτ check≤ tha⌠ usσ thσ UPDIC╘ updatσ dictionary.
0F10 08 OVSIZE DB 8 ;Eight records (1k byte)
Iµ áß documen⌠ become≤ to∩ largσ t∩ fi⌠ iε memor∙ a⌠ onσ time¼ WordSta≥ begin≤ át∩ á"spilló ì
thσ exces≤ t∩ thσ disk« TYSIZ┼ determine≤ ho≈ man∙ 12╕-byte≤ record≤ t∩ usσ fo≥ eacΦ spillì
over« áPickinτ ß correc⌠ sizσ i≤ importan⌠ bu⌠ caε usuall∙ bσ donσ b∙ tria∞ anΣ áerror« áIµ ì
TYSIZ┼ i≤ to∩ large¼ yo⌡ ma∙ seσ lonτ delay≤ durinτ scrollinτ o≥ typinτ wheε memor∙ fills.
Iµ áTYSIZ┼ ái≤ zero¼ WordSta≥ calculate≤ it≤ sizσ t∩ bσ 1/╕ oµ thσ maximuφ amoun⌠ áoµ átex⌠ ì
tha⌠ caε bσ storeΣ iε memory.
0F11 00 TYSIZE DB 0 ;Le⌠ áWordSta≥ calculatσ áspillove≥ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;size
┴ á"findó o≥ "finΣ anΣ replaceó use≤ thσ INIFI╬ option≤ iµ yo⌡ d∩ no⌠ explicitl∙ ente≥ áan∙ ì
a⌠ thσ "Options?ó prompt« Thσ possiblσ option≤ tha⌠ caε bσ useΣ are:
W whole words only
U ignore case
B backwards search
G whole file
R rest of file
N replace without asking
A align paragraph after replacement
Blank the unused options.
0F12 20 20 20 20 20 20 INIFIN DB ' ' ;No options
Fo≥ áhel≡ álevel≤ othe≥ thaε zero¼ thσ statu≤ linσ i≤ usuall∙ displayeΣ a⌠ thσ to≡ áoµ áthσ ì
screen« INIST┴ let≤ yo⌡ alway≤ turε i⌠ off« STFIL╠ specifie≤ wha⌠ characte≥ t∩ usσ t∩ áfil∞ ì
unuseΣ spacσ iε thσ statu≤ line.
0F18 FF INISTA DB TRUE ;Display status line
0F19 20 STFILL DB ' ' ;Fill with blanks
Wheε áparagraph≤ arσ aligneΣ witΦ ^┬ o≥ ^Q╒ anΣ hypheε hel≡ i≤ on¼ HYMA╪ i≤ useΣ t∩ ádeterì
minσ wheε t∩ asδ thσ use≥ t∩ hyphenatσ ß word.
è0F1A 05 HYMAX DB 5 ;Asδ áuse≥ áwheε thσ áworΣ áextend≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;morσ áthaε ╡ character≤ ápas⌠ áthσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;righ⌠ margin
Wheε WordSta≥ ask≤ ß questioε tha⌠ require≤ ß ┘ fo≥ ye≤ o≥ ╬ fo≥ n∩ response¼ YNC╥ indicatì
e≤ whethe≥ o≥ no⌠ thσ use≥ mus⌠ pusΦ thσ RETUR╬ ke∙ beforσ WordSta≥ wil∞ accep⌠ it.
0F1B 00 YNCR DB FALSE ;Don't wait for RETURN key
WordSta≥ ácaε inde° ever∙ worΣ iε ß documen⌠ a≤ wel∞ a≤ selecteΣ word≤ anΣ phrases« áIDXAL╠ ì
determine≤ whethe≥ thi≤ i≤ thσ defaul⌠ o≥ not.
0F1C 00 IDXALL DB FALSE ;Don't index every word
Usinτ á^┬ o≥ ^Q╒ iε ß nondocumen⌠ normall∙ strip≤ thσ eightΦ bi⌠ froφ eacΦ characte≥ áiε áß ì
line« STRPF╠ caε disablσ stripping.
0F1D FF STRPFL DB TRUE ;Stripping is enabled
Editor Entry Conditions
0F1E FF INIEDT DB TRUE ;Right justification when typing
0F1F FF DB TRUE ;WorΣ áwra≡ wheε typinτ a⌠ áenΣ áoµ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line
0F20 FF DB TRUE ;Insert on
0F21 FF DB TRUE ;Print controls displayed
0F22 00 DB FALSE ;No hyphen help
0F23 FF DB TRUE ;Ruler displayed
0F24 00 DB FALSE ;Not column mode
0F25 00 DB FALSE ;Column replace off
0F26 01 DB 1 ;Single spacing
0F27 03 DB 3 ;Scrolling speed
0F28 00 DB FALSE ;Preview mode off
0F29 00 DB FALSE ;Proportional spacing off
0F2A 00 DB FALSE ;ReserveΣ áfo≥ futurσ áwidow/orphaε ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;control
0F2B 00 DB FALSE ;Soft space dots not displayed
0F2C 00 00 00 00 00 00 DB 0,0,0,0,0,0 ;Reserved
Thσ followinτ flag≤ arσ useΣ t∩ contro∞ thσ wa∙ WordSta≥ processe≤ certaiε commands« CTLNF╠ ì
anΣ CTLHF╠ arσ provideΣ primaril∙ t∩ allo≈ WordSta≥ user≤ t∩ usσ ^╬ anΣ ^╚ iε thσ samσ áwa∙ ì
a≤ the∙ arσ accustomed.
0F32 FF CTLNFL DB TRUE ;Se⌠ ánoε-zer∩ iµ ^╬ t∩ breaδ álinσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;anΣ RETUR╬ move≤ dowε ß linσ áwheε ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inser⌠ áoff« áSe⌠ t∩ ázer∩ ás∩ á^╬ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;convert≤ paragrapΦ line≤ anΣ turn≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;aut∩ áinden⌠ on/ofµ áfo≥ ánondoc⌡ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ments¼ áanΣ RETUR╬ alway≤ áinsert≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;CRLF.
0F33 00 CTLHFL DB 0 ;Se⌠ ánoε-zer∩ iµ ^╚ t∩ bσ samσ áa≤ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá^╙ insteaΣ oµ DEL.
0F34 00 CASEFL DB 0 ;Se⌠ noε-zer∩ iµ ^▐ i≤ casσ toggle« ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Wheε zer∩ anΣ CLTNF╠ i≤ ánoε-zero¼ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;usσ áa≤ paragrapΦ linσ áanΣ áaut∩-ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inden⌠ on/off.
è0F35 00 DELFLG DB 0 ;Se⌠ ánoε-zer∩ áiµ áDE╠ áerase≤ át∩ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;left¼ zer∩ t∩ erasσ t∩ righ⌠ (likσ ì
áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;^G).
0F36 00 00 00 00 DB 0,0,0,0 ;Reserved
AHEA─ indicate≤ whethe≥ typσ aheaΣ i≤ alloweΣ fo≥ ^E¼ ^X¼ ^W¼ ^Z¼ ^G¼ DEL¼ ^T¼ ^Y¼ ^QY¼ anΣ ì
^QDEL« áIµ áAHEA─ i≤ 0¼ WordStar'≤ typσ aheaΣ buffe≥ wil∞ bσ flusheΣ wheneve≥ áonσ áoµ áthσ ì
function≤ ái≤ encountered« Iµ i⌠ i≤ noε-zero¼ n∩ flushinτ wil∞ occur« Thi≤ flaτ áshoulΣ ábσ ì
useΣ áprimaril∙ fo≥ externa∞ keyboarΣ enhancer≤ wherσ thσ function≤ showε abovσ arσ át∩ ábσ ì
used« WordStar'≤ functioε ke∙ anΣ shorthanΣ processinτ automaticall∙ compensate.
0F3A 00 AHEAD DB 0 ;Flush
Maximuφ sizσ fo≥ thσ shorthanΣ definitions« ShoulΣ bσ optimizeΣ t∩ matcΦ actua∞ usagσ sincσ ì
i⌠ reduce≤ thσ amoun⌠ oµ memor∙ availablσ fo≥ tex⌠ whilσ editinτ anΣ printing« Thσ sizσ áoµ ì
eacΦ definitioε i≤ equa∞ t∩ ╡ plu≤ thσ numbe≥ oµ character≤ defined« Iµ thi≤ valuσ i≤ smalì
le≥ áthaε thσ sizσ oµ thσ shorthanΣ filσ (seσ SVFIL┼ above)¼ onl∙ somσ oµ áthσ ádefinition≤ ì
wil∞ bσ used« Settinτ i⌠ t∩ zer∩ disable≤ shorthanΣ anΣ make≤ thσ ES├ ke∙ clea≥ thσ áscreeε ì
instead.
0F3B 04 HANMAX DB 4 ;Size of shorthand buffer in records
Spelling checking and correction
SPFLA╟ ái≤ useΣ t∩ indicatσ ho≈ WordSta≥ i≤ t∩ usσ thσ dictionarie≤ eacΦ bi⌠ i≤ defineΣ áa≤ ì
follows...
Bit Definition
0 Set if swapping between dictionary disk and program disk
1 If swapping, set if personal dictionary is on dictionary disk
2 If swapping, set if personal dictionary is on program disk
3 Set if the main dictionary is to be entirely loaded to RAM
4 Set to always prompt user for personal dictionary
5-7 Reserved
Iµ áneithe≥ bit≤ ▒ anΣ ▓ arσ se⌠ wheε swapping¼ thσ persona∞ dictionar∙ i≤ áassumeΣ ì
áááááááát∩ bσ oε thσ documen⌠ disk.
0F3C 00 SPFLAG DB 0 ;Not swapping
SPSIZE is the number of kbytes allocated to hold WSSPELL.OVR
0F3D 0034 SPSIZE DW 52 ;52k
Thσ maiε dictionar∙ i≤ usuall∙ thσ larges⌠ anΣ slowes⌠ oµ thσ spellinτ checδ ádictionaries« ì
Iµ átherσ i≤ sufficien⌠ memor∙ iε you≥ computer¼ WordSta≥ caε speeΣ u≡ dictionar∙ álooδ-up≤ ì
significantl∙ b∙ "learningó whicΦ word≤ yo⌡ looδ u≡ mos⌠ frequentl∙ anΣ storσ theφ iε memoì
ry« áIµ therσ i≤ enougΦ memor∙ iε you≥ computer¼ eventuall∙ thσ wholσ dictionar∙ i≤ pu⌠ áiε ì
memory« Iµ bi⌠ │ oµ SPFLA╟ abovσ i≤ set¼ thσ firs⌠ timσ yo⌡ d∩ ß spellinτ check¼ thσ entirσ ì
dictionar∙ wil∞ bσ loadeΣ int∩ memor∙ al∞ a⌠ once.
0F3F 0020 SPMEM DW 32 ;Use 32k for the main dictionary
WordSta≥ ánormall∙ doesn'⌠ checδ thσ spellinτ oµ ver∙ smal∞ word≤ sincσ singlσ letter≤ áarσ ì
useΣ fo≥ man∙ thing≤ beside≤ thσ word≤ "aó o≥ "I"« SPMI╬ i≤ useΣ t∩ indicatσ thσ ásmalles⌠ ì
worΣ t∩ bσ checked.
0F41 02 SPMIN DB 2 ;Don't check 1-letter wordsè
Iµ áyo⌡ átel∞ WordSta≥ t∩ substitutσ ß correctioε fo≥ ß misspelling¼ thσ paragrapΦ ácaε ábσ ì
automaticall∙ rσ-aligneΣ (thσ worΣ "alignó appear≤ iε thσ statu≤ line)« SPALG╬ indicate≤ iµ ì
automatiπ alignmen⌠ i≤ thσ defaul⌠ o≥ not.
0F42 FF SPALGN DB TRUE ;Re-align
Yo⌡ ácaε áinser⌠ thσ curren⌠ datσ o≥ timσ int∩ ß documen⌠ witΦ eithe≥ shorthanΣ áo≥ ádurinτ ì
mergσ áprinting« FDAT┼ indicate≤ ho≈ thσ datσ shoulΣ bσ displayed¼ anΣ FTIM┼ thσ átime¼ áa≤ ì
follows...
Code Example
1 Day of the month
2 Month as a number
3 Month as a word
4 Year as 4 digits
5 Year as 2 digits
6 First 3 letters of month
7 Day of the month as 2 digits
8 Month as 2 digits
9 Hour in 24-hour format
A Hour in 24-hour 2-digit format
B Hour in 12-hour format
C Minute as 2 digits
D AM or PM
For example:
3 1, 4 becomes September 19, 1985
2/1/5 becomes 9/19/85
7 6 5 becomes 19 Sep 86
9:C becomes 14:27
B:C D becomes 2:27 PM
0F43 06 FDATE DB 6
0F44 33 20 31 2C 20 34 DB '3 1, 4' ;September 19, 1985 format
0F4A 00 DB 0 ;Spare
0F4B 05 FTIME DB 5
0F4C 42 3A 43 20 44 DB 'B:C D' ;2:27 PM format
0F51 00 00 DB 0,0 ;Spare
WitΦ shorthanΣ yo⌡ caε inser⌠ thσ dolla≥-formatteΣ result≤ oµ thσ las⌠ matΦ yo⌡ áperformed« ì
WordSta≥ áuse≤ thσ forma⌠ belo≈ wheε yo⌡ d∩ this« (Makσ surσ tha⌠ thσ characte≥ ácoun⌠ áiεì
clude≤ thσ zer∩ a⌠ thσ end.)
0F53 11 DOLLAR DB 17 ;Character count
0F54 2D 2D 2C 2D 2D 2D 2C DB '--,---,---,---.99'
2D 2D 2D 2C 2D 2D 2D
2E 39 39
0F65 00 00 00 DB 0,0,0 ;Spare
0F68 0050[ DB 80 DUP(0) ;Reserved
00
]
EXTR┴ i≤ ß largσ buffe≥ areß fo≥ genera∞ patching« Somσ version≤ oµ thσ WINSTAL╠ áinstallaì
tioε prograφ usσ EXTRA.
0FB8 0200[ EXTRA DB 512 DUP(0) ;Extra .5k of patching spaceè 00
]
User Area date
11B8 01 13 57 UDATE DB 01,19,87