You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

329 lines
15 KiB

ZEØ Typå ´ ö 0.4
bù Joå Wright
¹ Noö 88
Linå  formattinç  haó beeî furtheò relaxeä bù allowinç  á  singlå �
semicoloî ';§ tï denotå á commenô iæ iô ió thå firsô characteò oî �
thå  linå  oò  iæ iô ió precedeä bù á  spacå  oò  tab®   Multiplå �
Commanä syntaø ERÁ *.BAK;ERÁ *.PRN;DIÒ *.Z8° stilì workó  becauså �
thå  characteò prioò tï » ió noô á space® Thå ';;§  ZEØ  commenô �
forí  stilì  workó buô ió unnecessary® Iæ » ió requireä  aô  thå �
beginninç  oæ á linå oò afteò á space¬ uså thå $»  literaì  form® �
Alsï  addeä  ió  thå 'field§ comment®  
     û Á lefô 'curly§ brackeô '{§ aó thå firsô characteò  oæ �
     á particulaò linå wilì causå alì subsequenô  characteró �
     anä  lineó  tï  bå treateä  aó  commenô  anä  otherwiså �
     ignoreä  untiì  thå correspondinç closinç  brackeô   ió �
     encountered® Thió entirå paragrapè woulä bå treateä aó �
     á 'field§ comment® }
ZEØ Typå ´ ö 0.3
bù Joå Wright
2· Ocô 88
Thå formidablå Howarä Goldsteiî haó strucë again® Thå  followinç �
changeó aô hió suggestion® Thankó Howard.
1® Thå '¤ § literaì describeä belo÷ ió actuallù implementeä now.
2®   Thå  senså oæ thå ^¡ aborô controì ió changeä tï  bå  activå �
wheî thå flo÷ statå ió TRUÅ ratheò thaî FALSE® Morå logical.
3®   Thå  ^º Rå-executå controì ió changeä  tï  rå-establisè  thå �
defaulô flagó ratheò thaî settinç theí tï 0.
ZEØ Typå ´ ö 0.2
bù Joå Wright
24 Ocô 88
Alì thió starteä becauså É inadvertantlù lefô ZEX.COÍ ouô oæ  thå �
originaì  NÚ-COÍ  release®   Afteò  somå  complaintó  abouô  thió �
oversight¬ É pickeä uð Jay'ó NZEØ-Ä froí Ú-Nodå Centraì anä trieä �
iô out® Althougè admittedlù stilì undeò development¬ NZEØ didn'ô �
seeí tï worë right® É theî examineä thå ZEØ 3.² releaså  versioî �
anä founä iô eveî worse® Mù buttoî waó pushed.
Oveò  thå pasô fouò weekó oò sï É havå rå-writteî ZEØ morå tï  mù �
liking®   ZEØ ió no÷ á Typå ´ utilitù foò NÚ-COÍ anä  Z3PLUS®   É �
havå addeä thå controló Jaù mentionó iî NZEØ-D.DOÃ anä onå oò twï �
oæ mù owî iî thå meantime.
ZCPR3´  ió  changeä  sï thaô intrinsiã (GET¬  JUMÐ  anä  GO©  anä �
residenô (POKE¬ PEEK¬ etc.© commandó caî geô theiò argumentó froí �
ZEØ  script® Previously¬ ZCPR3ø turneä ofæ ZEØ  redirectioî  foò �
alì  buô transienô (.COM© commands® No÷ Z3´ enableó ZEØ foò  alì �
CPR¬  FCÐ anä RCÐ commandó aó welì aó transients®   NZCPR.ZRÌ  iî �
thió  packagå ió thå latesô ZCPR3´ anä shoulä bå  'installed§  oî �
youò  NÚ-COÍ systeí beforå attemptinç tï ruî Ne÷ ZEØ Typå  ´  anä �
itó demonstratioî .ZEØ files.
Thå  majoò  changå  tï ZEØ waó iî thå  CONST¬  CONIÎ  anä  CONOUÔ �Šdepartmentó  sï  thaô ZEØ maù no÷ bå useä tï  'drive§  dBASÅ  II¬ �
WordStaò  anä MultiPlan® Theså programó (anä others© attempô  tï �
flusè  keyboarä inpuô froí timå tï timå anä reallù gavå  thå  olä �
ZEØ á fit® Theså programó ruî correctlù witè ZEØ Typå 4.
Anotheò probleí witè olä ZEØ waó thaô iô requireä á calì tï CONIÎ �
tï dï anything® Manù programó calì CONSÔ tï seå iæ á keù ió dowî �
and¬ iæ not¬ gï abouô theiò business® Witè olä ZEX¬ thå ^"ß useò �
inpuô  commanä woulä noô gï intï effecô untiì CONIÎ  waó  called® �
Thå  ^"ß  commanä haó nï datá tï return® Whaô tï  do¿   Olä  ZEØ �
waiteä foò thå useò tï presó á key® Buô whaô iæ hå doesn't¿ Olä �
ZEØ simplù hunç uð anä waiteä foò it¬ eveî iæ iô wasn'ô necessarù �
foò thå program® Sï mucè foò unattendeä operation¡
ZEØ  Typå ´ haó á looë-aheaä featurå tï finä thå ^"ß commanä  anä �
executå  iô beforå returninç thå previouó character®   Subsequenô �
calló  tï  CONSÔ  yielä  reaì  keyboarä  statuó  (ZEØ  inpuô   ió �
suspended)® Wheî ZEØ ió turneä oî agaiî (witè thå 'trigger§ oò á �
ne÷ command© iô wilì picë uð witè thå characteò followinç thå ^"ß �
commanä  anä continuå normally® Notå thaô almosô  anù  characteò �
maù bå useä aó thå Useò Inpuô Triggeò excepô 'space§ anä 'tab'.
ZCPR3´ anä ZEØ Typå ´ arå verù closelù coupleä anä leavå messageó �
tï  eacè other® ZCPR3´ controló ZEØ througè thå ZEXINÐ  flaç  aô �
Z3MSG+7®   ZEØ checkó anä maù changå thå ZEXINÐ flaç foò itó  owî �
purposeó aó well® ZEØ maintainó pointeró tï thå currenô bytå  oæ �
thå  ZEØ  inpuô  strinç anä tï thå beginninç  oæ  thå  strinç  aô �
Z3MSG+¹  anä  Z3MSG+11¬ respectively®
ZEØ  caî alsï controì thå operatioî oæ ZCPR3´ bù manipulatioî  oæ �
thå  QUIEÔ  flag®   ZCPR3´ ió assembleä witè  itó  ZEXNOISÅ  (anä �
SUBNOISE© equaì 1® Thió meanó thå Z3´ commanä prompô  (A0:BASE>© �
maù  bå suppresseä undeò ZEØ (oò SUB© bù settinç thå QUIEÔ  flag® �
Thió begó á ne÷ commanä foò ZEØ (Þ-)®
Iæ thå QUIEÔ flaç ió set¬ ZEØ wilì alsï suppresó thå echï oæ  thå �
commanä  linå  froí  Z34®   Further¬  iæ  thå  ^£  (Suppresó  ZEØ �
messages©  commanä ió alsï iî force¬ ZEØ anä Z3´  arå  completelù �
silenô  anä  thå batcè commandó executå aó iæ froí  thå  multiplå �
commanä  linå oò aliaó scripô witè nï extraneouó reportó  tï  thå �
console.
Therå  arå á numbeò oæ 'flag§ optionó whicè telì ZEØ ho÷  tï  acô �
whilå executing®
^½ XSUÂ Enablå ZEØ inpuô tï COMmand
^­ QUIEÔ Seô ZCPR³ Quieô flag
^£ MSUÐ Suppresó ZEØ messages
^® PSUÐ Suppresó alì Consolå output
^¦ IPSUÐ Suppresó Console iæ false
ZEØ  Typå ´ defaultó tï alì flagó (excepô XSUB© OFÆ  anä  inviteó �
thå useò tï specifù hió optionó oî thå commanä linå oò tï specifù �
theí iî thå batcè filå (Theså flags¬ anä others¬ maù bå 'patched§ �
OÎ  witè  ZPATCÈ  oò bù otheò meanó tï customizå ZEØ  iæ  yoõ  sï �
desire® Seå PATCHEÓ below.)®
zeø batcè parm± parm² ^­ ^£ ^.
ZEØ  Typå ´ wilì picë uð thå twï parameteró anä thå ZEØ  controló �
beforå  processinç thå batcè file¬ thuó establishinç  'defaults'® �
Iî  thió case¬ Þ­ setó thå QUIEÔ flag¬ ^£ turnó ZEØ messageó  ofæ �
anä  ^® suppresseó consolå output® Controló oî thå commanä  taiì �
arå processeä firsô anä becomå thå initiaì characteró oæ thå  ZEØ �
string®   Thå batcè filå ió theî appendeä tï them® Iî thió  way¬ �
thå ^º re-executå controì wilì alsï re-executå them.
Notå thaô ZEØ Typå ´ treató alì 'flag§ commandó aó 'toggles§ sucè �Šthaô thå firsô ^£ wilì suppresó ZEØ messageó anä thå nexô ^£ wilì �
turî theí oî again® Á thirä onå wilì turî theí off¬ etc.
Yoõ  caî  probablù  uså ZEØ Typå ´ witè mosô  oæ  youò  olä  NZEØ �
scriptó witè littlå oò nï changå (^Û anä ^Ý controló oæ NZEØ  arå �
noô supporteä becauså therå ió nï discerniblå neeä foò them).
É  havå addeä thå XSUÂ (^=© togglå tï helð controì ZEØ  inpuô  tï �
thå  runninç  program®   ^½ anä ^¥ arå  useä  iî  combinatioî  tï �
controì  ZEØ input® Notå thaô theù arå complementary®   XSUÂ  OÎ �
wilì  allo÷  ZEØ inpuô foò thå remaindeò oæ thå filå  excepô  foò �
thoså  commandó whicè begiî witè ^%® Conversely¬ XSUÂ  OFÆ  wilì �
turî  ZEØ Inpuô OFÆ afteò eacè commanä excepô foò thoså  precedeä �
bù ^%.
Notå  thaô thå normaì statå oæ ZEØ Inpuô ió ON® ZCPR3´ setó  ZEØ �
Statuó tï 0± wheî promptinç anä tï 0° wheî executinç thå COMmand® �
Iî  botè cases¬ ZEØ Inpuô ió ON® Iô ió uð tï ZEX¬ anä nï  simplå �
matter¬  tï seô ZEØ Statuó tï 0² tï suspenä ZEØ Inpuô aô thå  enä �
oæ  thå commanä oò aó thå situatioî maù require® Iô ió safeò  tï �
assumå  ZEØ Inpuô OÎ anä turî iô ofæ selectivelù thaî tï turî  iô �
OFÆ witè XSUB=° anä assumå thaô iô stayó off®
Consideò  thaô ZEØ maù executå aî aliaó anä thå programmeò  wantó �
Useò  Inpuô  aô  thå  enä oæ itó  execution®   ZEØ  wilì  executå �
alias.COÍ  anä  politelù turî itselæ off®   Thå  alias¬  however¬ �
causeó Z3´ tï executå yeô anotheò commanä whicè ZEØ knowó nothinç �
about®   Z3´  theî turnó ZEØ Inpuô bacë on® Noô whaô  yoõ  mighô �
expect®   Foò thió reason¬ É havå defaulteä thå XSUÂ flaç OÎ  foò �
mù  purposes®   É havå donå extensivå testinç witè XSUÂ  ofæ  anä �
finä thaô iô workó perfectlù welì excepô foò thå caså oæ multiplå �
commanä aliaseó anä sucè aó explaineä above®
ZEØ  Typå ´ startó uð witè ZEØ Inpuô (XSUB© activå  anä  requireó �
thå  ZEØ OFÆ commanä ^¥ aô thå beginninç oæ thå linå oò thå  Useò �
Inpuô  commanä  ^"ß  tï  suspenä ZEX® Iæ  ZEØ  inpuô  shoulä  bå �
suspendeä foò thå entirå command...
^%ddô [parms]
wilì  turî  ZEØ ofæ untiì DDÔ quits® Morå elaboratå  ZEØ  on/ofæ �
controló  uså thå Useò Inpuô commanä anä itó trigger®   Therå  ió �
onå 'gotcha§ witè thå ^"ß however® Thå Useò Inpuô commanä cannoô �
immediatelù  follo÷ á COMmanä invocation® Thió ió  becauså  eveî �
thougè ZEØ haó turneä itselæ off¬ thå commanä processoò wilì turî �
ZEØ bacë oî whilå executinç thå command® Therå musô bå aô  leasô �
onå  interveninç characteò oò controì betweeî thå CÒ  whicè  wilì �
executå  thå  commanä anä thå ^"ß whicè wilì suspenä  ZEØ  input® �
Consideò thå ZEØ script:
ddt|d100,17f|^"~g0
Þ ^
ZEØ  Typå ´ findó thå Useò Inpuô command¬ executeó iô  anä  moveó �
itó  pointeò  pasô iô beforå returninç thå CÒ tï DDT®   Wheî  thå �
useò  typeó thå triggeò (þ iî thió case© ZEØ resumeó witè thå  g° �
commanä causinç DDÔ tï quit.
ddt|^"~d100...
Þ ^
Thió forí wilì noô work® Aó before¬ ZEØ doeó turî oî Useò  Inpuô �
buô  Z3´ wilì turî iô ofæ aó iô executeó DDT.COM® Therå musô  bå �
aô  leasô onå interveninç character® Knowinç thaô DDÔ useó  BDOÓ �
functioî 1° tï reaä itó commandó anä knowinç thaô á backspacå  ió �
ignoreä aó thå firsô characteò oæ thå line..
ddt|^h^"~d100...
workó  perfectly® Somå programó (WordStaò foò example©  continuå �
testinç  thå  keyboarä  eveî  aó  theù  quit®   Iô  ió  thereforå �
necessarù  tï  seô  Useò Inpuô  immediatelù  followinç  thå  quiô �
commandó  sï  thaô WordStaò won'ô trù tï reaä  thå  ZEØ  commandó �
whilå quitting..
Š
wó file.ws|^qfDear||^"~^kx^"
Þ ^
Thå firsô UÉ commanä suspendó ZEØ untiì thå useò typeó '~'®   Thå �
seconä UÉ suspendó ZEØ untiì WordStaò actuallù quits.
Commanä  linå  parsinç haó changeä witè respecô tï  thå  TAÂ  anä �
SPACÅ characters® Tabó anä Spaceó aô thå beginninç oæ á  commanä �
linå  arå  ignored®   Subsequenô tabó arå  converteä  tï  spaces® �
Subsequenô  spaceó prioò tï thå ZEØ commenô oò CÒ thaô  endó  thå �
linå arå removed®
Iæ  yoõ musô precedå á commanä witè á Space¬ uså thå ZEØ  literaì �
'¤ § tï dï so® Thió allowó morå freedoí tï formaô thå inpuô filå �
foò readability® ZEØ Commentó ';;§ caî bå useä oî anù line® Foò �
example:
;» Takå á letteò Misó Jones
wó $1.ltò ;» Creatå thå letteò file
^krform.ltò ;» Reaä iî thå standarä form
^kfDearü ;» Finä thå salutation
;» Positioî thå cursoò anä starô UÉ untiì '~'¬ resumå ZEØ
;» tï telì WordStaò tï savå thå letteò anä starô UÉ again.
^qd^"~^kx^"
;» Enä oæ thió letter
Wå caî alsï makå logiã flowó morå readablå thió way:
» Assemblå $± Sourcå Filå ;» Echï froí Z3´ controlleä bù QUIET
^-^£ ;» Z3´ Quiet¬ nï ZEØ messages
iæ eø $1.z8° ;» Tesô .Z8° first
^%z80así $± ;» ZEØ ofæ foò z80asm
else
iæ eø $1.maã »» Theî .MAC
m8° =$1
elså ;» Assumå .ASM
así $1
fi
fi
^­ ;» Cleaò Quiet
» Enä oæ $± Assembly
Notå agaiî thaô Z80ASÍ ió onå oæ thoså programó thaô periodicallù �
checë  foò keyboarä inpuô sï ZEØ musô bå turneä ofæ untiì  Z80ASÍ �
quits® M80.COÍ anä ASM.COÍ don'ô seeí tï asë anything.
Therå arå generallù threå sourceó foò Consolå Output®
1® Thå Z3´ prompô anä commanä echo.
2® ZEØ witè itó variouó messages.
Š3® Thå runninç program.
Witè  ZEXNOISÅ eqõ ± (Z34HDR.LIB© ZCPR3´ useó thå QUIEÔ  flaç  tï �
determinå  whetheò tï prinô thå commanä prompô beforå  requestinç �
thå nexô commanä (QUIEÔ ½ nï prompt)® ZEØ wilì alsï suppresó thå �
echï  oæ  thå commanä taiì froí Z3´ iæ QUIET® Thå statå  oæ  thå �
QUIEÔ flaç ió toggleä bù thå ne÷ Þ­ ZEØ command® ZEØ Typå ´ wilì �
restorå thå QUIEÔ flaç tï itó originaì valuå wheî Done.
ZEØ  haó á numbeò oæ messageó oæ itó own¬ ZEX:¬ Done¬  etc®   ZEØ �
messageó arå controlleä bù thå ^£ (MSUP© toggle® Thå ^£  controì �
suppresseó ZEØ messageó untiì thå nexô ^#.
Anù  Consolå Outpuô maù bå suppresseä durinç á falså  flo÷  statå �
witè  thå ^¦ (IPSUP© toggle® Alì Consolå Outpuô  maù  suppresseä �
maù bå suppresseä witè thå ^® (PSUP© toggle.
Iî  variouó  combination¬  theså toggleó  shoulä  givå  thå  .ZEØ �
programmeò fulì controì oæ whaô mighô bå printeä oî thå screen.
­ PATCHEÓ -
ZEØ  Typå  ´  haó á patcè areá righô afteò thå  Z3ENÖ  headeò  aô �
0200h® Eacè patchablå bytå ió precedeä bù itó namå anä á '>§ foò �
easù identification.
KDEL¾ 05
CDEL¾ 0F
Thå reasoî thaô ZEØ caî successfullù 'drive§ programó thaô  woulä �
otherwiså  'eat§ thå keyboarä inpuô string¬ ió thaô wå liå tï  iô �
abouô   keyboarä  status®   Havinç  delivereä  (oò   printed©   á �
character¬  ZEØ wilì reporô CONSÔ falså á numbeò oæ timeó  beforå �
shippinç  thå nexô character® Thió allowó 'smart§ programó  likå �
dBASÅ IÉ tï thinë theù havå flusheä thå keyboarä oò thaô á  humaî �
ió typing.
KDEÌ  representó  thå numbeò oæ falså  responseó  betweeî  normaì �
characteró anä CDEÌ thå numbeò oæ lieó afteò Carriagå Return® Iî �
thå schemå oæ things¬ theså valueó arå decrementeä beforå testinç �
sï  thaô á valuå oæ ± woulä returî gooä statuó immediatelù anä  á �
valuå   oæ  °  woulä  returî  falså  statuó  25µ  timeó   betweeî �
characters®   Theså  values¬ µ anä 15¬ werå choseî bù  triaì  anä �
erroò  anä seeí tï worë fine® ³ anä ¹ alsï worë aô mù houså  buô �
loweò valueó DÏ NOÔ WORË iî manù cases® Sticë witè thå defaults.
Foò thå followinç flags¬ 0° ió falså anä FÆ ió true.
XSUB¾ 0° oò FÆ ZEØ Inpuô Modå (FF) ^=
MSUP¾ 0° oò FÆ Suppresó ZEØ messageó ^#
PSUP¾ 0° oò FÆ Suppresó Consolå Outpuô ^.
IPSIP¾ 0° oò FÆ Suppresó Conouô IF falså ^&
QUIET¾ 0° oò FÆ Initiaì Z³ quieô flaç ^-
Thå  nexô followinç havå tï dï witè findinç thå ZEØ  inpuô  file® �ŠIæ  nï  expliciô DIRº ió invoked¬ ZEØ wilì  checë  thå  followinç �
flagó tï determinå wherå tï looë foò it.
ZEØ maù bå forceä tï searcè á specifiã directorù foò inpuô  fileó �
bù  declarinç  iô  here®   Ordeò ió  significant®   Iæ  ZEXDÕ  ió �
declared¬  nonå  oæ ROOT¬ CURDÕ oò Patè wilì eveî bå  tried®   Iæ �
ROOÔ ió set¬ neitheò CURDÕ noò Patè wilì bå tried.
ZEXDU¾ 0° 0° Nï ZEØ directorù declareä or..
ZEXDU¾ 0³ 0± Searcè directorù A3º only
ROOT¾ 0° oò FÆ Searcè Rooô directorù only
CURDU¾ 0° oò FÆ Searcè Currenô directorù only
Iæ  nonå  oæ thå above¬ ZEØ wilì searcè foò thå  filå  alonç  thå �
ZCPR3´  Externaì Path® ZEØ Typå ´ wilì invokå thå  ZCPR3´  Erroò �
Handleò appropriatelù foò alì detecteä errors.
-30-