IMD 1.16: 29/05/2007 12:47:51 FOGCPM.050 ååååååååååååååå--FOGCPM050AUTOSTRTART BAZICDATARTCPMRBOUTART% DATATRANART PILOTINTARTDSWTCHBOXART TERMCHNGARTMD-SMKEYDOC! !"#MDJUMPERTXT $%MD2DSK TXT9&'()*+,-MD2TOMD3FIX./0AUTOFORMPIL1MD3SETUPMAC82345678Z3MD-59KWS €9:;<=>?@ABCDEFGHZ3MD-59KWS FIJKLMNOPQ-06-00 86 ªZ3MDINFOTXT>RSTUVWXYZ3PATMD ASMZ[ZCPR3 HEX-\]^_`aZCPR3 INSbcdeLDR COMfghMAKE SUBiSTARTUP COMjklmSYS ENVnSYS FCPoSYS NDRpSYS RCPqrsSYSENV LIBtuvwSYSFCP LIB+xyz{|}SYSNDR LIB ~SYSRCP LIBQ€�‚ƒ„…†‡ˆ‰ŠZ359K R21‹Œ�Z3BASE LIBAŽ��‘’“”•–Z3HDR LIB€—˜™š›œ�žŸ ¡¢£¤¥¦Z3HDR LIB§¨©-CPM050 DOC«¬­®ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååThis is the disk name. ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååFrom Morrow Owners' Digest, edited by Emma Paquin: ABOUT THAT PILOT/ PROMPT----- Quitå  á fe÷ peoplå gavå directionó oî gettinç riä oæ thå  PILOT¿ � prompô error®  Thå laziesô solutioî waó tï typå iî WÓ anä á  {CRý � (oî  á  WordStaò  disk© anä thå prograí woulä  appear¬  buô  thaô � didn'ô geô riä oæ thå PILOT¿  message¬  anä nexô timå iô woulä bå � there again. Thå  mosô populaò solutioî waó tï uså thå AUTÏ command¬  anä  thå � recommendatioî  was¬  "Reaä thå User'ó Manual.¢ Iæ yoõ  havå  thå � earliesô  8-1/2¢ ø 11¢ loose-leaæ User'ó Manual¬  youò directionó � foò AUTÏ arå NOÔ right®  Everybody'ó manuaì ió noô thå same¬ jusô � aó  terminaló  arå  noô  thå samå  (whicè  ió  anotheò  poinô  oæ � confusion). Here's EXACTLY what to do to delete the PILOT? using AUTO. Turî oî thå system®  Wheî thå screeî directs¬  puô iî Drivå A¬  á � CP/í  workinç diskettå thaô haó AUTÏ COÍ oî it®  Iî Drivå B¬  puô � youò  sysgeneä WordStaô (oò whateveò program©  workinç  diskette® � Chooså  thå menõ optioî thaô exitó tï CP/M-sometimeó iô ió escapå � - and when the A} appears type in this: pip B:=A:auto.com Hit the RETURN key. The A} will reappear. Removå thå CP/Í diskettå froí Drivå Á anä puô WordStaò iî A®  Hiô � CTRÌ Ã - á gooä habiô afteò disë changes¬  whetheò yoõ neeä iô oò � not. Type in this: AUTO WS and hit the RETURN key. Pusè thå reseô button®  Thå prograí comeó uð withouô thaô  PILOT¿ � anä yoõ wilì nï longeò bå bothereä witè it® Thå CP/Í systeí ió nï � longeò   tryinç   tï   loaä  anä  executå   thå   PILOÔ   prograí � automatically. sô � aó  terminaló  arå  noô  thå samå  (whicè  ió  anotheò  poinô  oæ � confusion). Here's EXACTLY what to do to delete the PILOT? using AUTO. Turî oî thå system®  Wheî thå screeî directs¬  puô iî Drivå A¬  á � CP/í  workinç diskettå thaô haó AUTÏ COÍ oî it®  Iî Drivå B¬  puô � youò  sysgeneä WordStaô (oò whateveò program©  workinç  diskette® � Chooså  thå menõ optioî thaô e.OP CONVERTING "COMPRESSED" BAZIC DATA FILES TO ASCII Reprinted from: "MicroNotes", Micro Mike's, Inc. BAZIà  datá  fileó  arå  storeä  normallù  iî   á � "compressed¢  BCÄ  format¬   wherå  numbericó  arå � storeä  aó á fe÷ bytes¬  i.e.¬  eacè numbeò storeä � undeò  8-digiô  BAZIà (BAZIC08© ió µ  byteó  long¬ � eacè  numbeò undeò 10-digiô (BAZIC10© ió  ¶  byteó � long¬  undeò 12-digiô BAZIà eacè numbeò ió · byteó � lonç  anä  á  14-digiô numeriã ió  ¸  byteó  long® � Strinç informatioî ió storeä iî ASCII¬ buô leadinç � byteó  specifù thå strinç length®  Iæ thå  strinç � containó  feweò  thaî 25¶ byteó iô haó  ²  leadinç � bytes¬  stringó  25¶  byteó  oò longeò  contaiî  ³ � leadinç bytes. Compresseä BAZIà datá fileó caî bå converteä tï aî � ASCIÉ  filå formaô witè á prograí similaò  tï  thå � following: ³ REÍ PROGRAÍ TÏ CONVERÔ BAZIà DATÁ FILEÓ TÏ ASCIÉ � DATÁ FILES µ CLS · DIÍ B$(1000) 1° INPUÔ "NAMÅ OÆ SOURCÅ FILEº ",A$ 2° Á ½ FILE(A$)\IÆ A1<>-± THEÎ 30\!"FILÅ DOEÓ  NOÔ � EXIST"Ü GOTÏ 10 3° INPUT"NAMÅ OÆ DESTINATIOÎ FILEº ",A1$ 4° A1=FILE(A1$© Ü IÆ A1<>-± THEÎ 5° Ü CREATÅ A1$,² � Ü A1=3 5° OPEN#1%A,A¤ Ü OPEN#2A1,A1$ 6° A² =TYP(1© Ü PÍ A2+± GOTÏ 130,70,12° Ü REÍ ENÄ � MARK,STRING,NUMBER 7° READ#1,B$ 8° FOÒ Î ½ ± TÏ LEN(B$© Ü IÆ B$(N,N© ½ ",¢ THEÎ � F=± Ü NEXÔ N 9° IÆ F=± THEÎ B$=CHR$(34)+B$+CHR$(34© Ü F=°  REÍ � CHR$(34© IÓ " 10° FOÒ Î ½ ± TÏ LEN(B$© Ü WRITE#2,&ASC(B$(N,N)© Ü � NEXÔ N 11° WRITE#2,&ASC(","© Ü GOTÏ 60 12° READ#1,B± Ü B$=STR$(B1© Ü B$=B$(2© Ü GOTÏ 80 13° WRITE#2,&2´ Ü REÍ ENÄ OÆ FILÅ MARKER 14° CLOSE#± Ü CLOSE#2 15° !"CONVERSIOÎ COMPLETED¢ Ü END ###### CIÉ  filå formaô witè á prograí similaò  tï  thå � following: ³ REÍ PROGRAÍ TÏ CONVERÔ BAZIà DATÁ FILEÓ TÏ ASCIÉ � DATÁ FILES µ CLS · DIÍ B$(1000) 1° INPUÔ "NAMÅ OÆ SOURCÅ FILEº ",A$ 2° Á ½ FILE(A$)\IÆ A1<>-± THEÎ 30\!"FILÅ DOEÓ  NOÔ � EX CP/M SYSTEM ALTERATION FOR RUBOUT KEY PROCESSING by Clark A. Calkins [WARNINGº Foò thió modificatioî oæ CP/Í uså á separatå copù oæ � youò CP/Í distributioî disk® NEVEÒ USÅ YOUÒ CP/Í DISTRIBUTIOÎ � DISË ITSELF¡ Neitheò youò day-to-daù CP/Í workinç disk® Iæ � somethinç werå tï gï wronç yoõ caî theî alwayó starô oveò again.] Thå normaì CP/Í systeí haó aî annoyinç habiô oæ noô erasinç á � characteò oî thå screeî wheî thå rubouô keù ió pressed® Insteaä � iô printó thå characteò thaô waó eraseä internally® Thió actioî � remainó froí thå dayó wheî teletypeó werå useä aó outpuô deviceó � anä erasinç á characteò froí thå pagå waó noô possible® Iæ thå � backspacå keù ió useä insteaä oæ thå rubouô key¬ theî thå � previouó characteò ió eraseä froí thå screen® Thió ió thå � preferreä actioî foò thå Morro÷ Micrï Decisioî computer. Thå followinç smalì procedurå changeó thå CP/Í systeí sï thaô � thå rubouô keù anä thå backspacå keù botè eraså thå lasô � characteò froí thå screen® Thió wilì noô affecô anù oæ thå � programó thaô depenä oî theså keyó (likå WordStar)® Theù wilì � executå exactlù aó before. Iî thå followinç steps¬ useò inpuô ió showî iî [bracketsÝ anä � thå carriagå returî whicè followó everù typeä linå ió showî aó � "(cr)". 1© Thå firsô steð ió tï generatå á scratcè disë tï trù thió on® � Thå onlù programó requireä foò thió procedurå arå DDÔ anä SYSGEN® � Theså caî bå founä oî youò originaì CP/Í Systeí Disk® Thió disë � musô bå á "systeí disk¢ sï iô caî bå placeä iî drivå A. 2© Placå thå newlù createä disë iî drivå Á anä presó control-à � (^C© tï loç iô in. 3© Generatå á shorô patcè prograí usinç DDÔ aó follows.      A>[DDT](cr)      DDT VERS 2.2      -[A100](cr)      0100 [LHLD 6](cr)      0103 [LXI D,201](cr)      0106 [DAD D](cr)      0107 [XCHG](cr)      0108 [LXI H,171B](cr)      010B [MVI M,C3](cr)      010D [INX H](cr)      010E [MOV M,E](cr)      010F [INX H](cr)      0110 [MOV M,D](cr)      0111 [RET](cr)      0112 (cr)      -[G0](cr)      A>[SAVE 1 PATCH.COM](cr)      A> Š Bù thå way¬ thå lasô DDÔ linå readó "G¢ followeä bù zerï anä noô � "O". 4© Thå nexô steð ió tï loaä á copù oæ CP/Í intï memory¬ changå � iô usinç thå patcè routinå createä above¬ anä theî writå iô bacë � tï thå disë sï iô caî bå used. A>[SYSGEN](cr) SOURCE DRIVE NAME (OR RETURN TO SKIP) [A] SOURCE ON DRIVE A, THEN TYPE RETURN (cr) DESTINATION DRIVE NAME (OR RETURN TO REBOOT) (cr) A>[PATCH](cr) A>[SYSGEN](cr) SOURCE DRIVE NAME (OR RETURN TO SKIP) (cr) DESTINATION DRIVE NAME (OR RETURN TO REBOOT) [A] DESTINATION ON DRIVE A, THEN TYPE RETURN (cr) FUNCTION COMPLETE DESTINATION DRIVE NAME (OR RETURN TO REBOOT) (cr) A> 5© No÷ tesô it® Typå á buncè oæ characteró anä seå iæ thå � rubouô keù eraseó thå lasô characteò aó iô no÷ should. Iæ alì wenô well¬ thå systeí no÷ writteî oî youò scratcè � disë shoulä functioî aó desired® Botè thå backspacå anä rubouô � keyó havå thå samå effecô oî thå screen® Iæ thió diä noô happen¬ � checë thaô thå procedurå waó followeä exactly® Especiallù checë � thaô thå samå prograí versioî numberó werå displayed® Thå patcè prograí assumeó iô knowó wherå SYSGEÎ putó thå � CP/Í systeí iî memory® Thå responseó tï SYSGEÎ maù seeí confusinç � aô first® Iô ió beinç useä tï reaä thå systeí ofæ oæ thå disë anä � puô iô iî memorù (anä leavå iô there)® Theî thå patcè prograí � makeó á fe÷ changeó anä leaveó thå modifieä systeí stilì iî � memory® Theî SYSGEÎ ió useä agaiî tï writå thå systeí thaô ió iî � memorù alreadù (á carriagå returî waó giveî aó á responså tï thå � firsô message© bacë tï thå disk® Theî wheî yoõ rebooô (nï morå � destinatioî driveó tï writå to)¬ thió systeí ió reaä ofæ oæ thå � disë anä executeä (aó normallù occurs)® Thió timå thå systeí haó � beeî modifieä sï iô respondó differently. Iæ thå ne÷ systeí totallù crasheó (oò doeó somå reaì strangå � things)¬ checë thaô thå patcè addresó (171B© waó entereä � properly® Beyonä that¬ havå á frienä checë thingó foò you. Beforå writinç thió ne÷ systeí tï alì oæ youò workinç disks¬ � checë tï bå surå thaô WordStar¬ QUEST¬ PEARL¬ etc.¬ worë � properly® Again¬ á warningº Abovå all¬ dï noô changå youò � masteò CP/Í disks. Iæ yoõ havå anù questions¬ don'ô hesitatå tï geô iî toucè � witè me: Clark A. Calkins Š C.C. Software 2564 Walnut Blvd. #106 Walnut Creek, CA 94598 ysteí thaô ió iî � memorù alreadù (á carriagå returî waó giveî aó á responså tï thå � firsô message© bacë tï thå disk® Theî wheî yoõ rebooô (nï morå � destinatioî driveó tï writå to)¬ thió systeí ió reaä ofæ oæ thå � disë anä executeä (aó normallù occurs)® Thió timå thå systeí haó � beeî modifieä sï iô respondó differently. Iæ thå ne÷ systeí totallù crasheó (oò doeó somå re.OP TRANSFERRING DATA BETWEEN COMPUTERS by Clarence Heier Transferrinç  fileó anä programó amonç thå variouó � formató ió perhapó á morå significanô probleí witè � thå  Micrï  Decisioî  thaî  witè  otheò  computeró � becauså  oæ thå relativelù recenô arrivaì  oæ  thå � Morro÷   format®   Softwarå   ió  becominç   morå � availablå  iî  thå  MÄ formaô anä  thå  facô  thaô � Osbornå  anä  Xeroø  formató caî  bå  reaä  ió  aî � advantage®  Therå  arå manù occasionó wheî iô  ió � desirablå  tï bå ablå tï transfeò datá froí aî  8¢ � systeí  tï thå Morro÷ format®  Thió caî easilù bå � donå   viá  modem¬   buô  thå  timå  involveä   ió � significanô especiallù aô 30° baud® Thió transfeò � caî  morå  quicklù  bå  accomplisheä  iæ  thå  twï � computeró arå iî closå proximitù tï onå another. Thå  communicatioî prograí Modeí · (oò anù  otheró � thaô  uså thå Christensen protocol© caî servå  aó � thå softwarå tï allo÷ thå transfeò aô speedó uð tï � 19,20° bauä (960° bauä foò thå MD2)®  Alì that'ó � necessarù ió á speciallù-prepareä cablå tï connecô � thå  twï  computeró  viá  RS23²  ports¬  nï  modeí � required. Tï preparå thå cable¬  looë aô thå diagramó below® � Iô ió advantageouó tï havå botè cableó prepareä aó � outlined®  Also¬  iô woulä behoovå yoõ tï havå  á � male-femalå   anä  á  female-malå  gendeò  adapteò � handy®   Armeä  witè  theså  cables¬  youò  Modeí � program¬  youò computeò anä thå softwarå yoõ  wanô � tï  trade¬  yoõ caî swað witè anù otheò CP/Í user® � Thå  onlù thinç requireä oæ thå otheò partù  ió  á � communicatioî prograí compatiblå witè yours® Eveî � thió  prograí caî bå transferreä tï hií froí  youò � system¬ buô somå modificationó tï youò PIÐ prograí � wilì  bå necessary¬  oò yoõ musô havå thå heø filå � oæ youò modeí program. Tï  preparå thå cableó follo÷ theså twï  diagrams® � Makå thå straighô througè cablå fairlù lonç witè á � malå  RS232à connectoò oî  eacè  end®  Makå  thå � crosseä  cablå shorteò anä puô á malå connectoò oî � one end and a female connector on the other end. .pa ŠStraight-Through Cable Crossed Cable (Pinó ² ¦ ³ crossed) ----------------------- --------------------- End End End End A to B A to B Pin Pin Pin Pin 2 ----------------- 2 2 ------+ +---- 2 +-|---+ 3 ----------------- 3 3 ----+ +-------- 3 7 ----------------- 7 7 --------------- 7 4 --+ +-- 4 4 --+ +-- 4 5 --+ +-- 5 5 --+ +-- 5 6 --+ +-- 6 6 --+ +-- 6 8 --+ +-- 8 8 --+ +-- 8 20 --+ +-- 20 20 --+ +-- 20 Tï uså jusô hooë thå computeró togetheò aó iæ  thå � otheò computeò ió á modem® Thå crosseä cablå wilì � probablù bå required¬  unlesó thå crossinç ió donå � withiî  eitheò oæ thå computers®  Experimenô untiì � yoõ  geô botè computeró talkinç tï onå anotheò  iî � terminaì mode®  Theî simplù transfeò fileó aó yoõ � woulä  iæ yoõ werå oî thå phone®  Makå surå  thaô � botè computeró arå runninç aô thå samå bauä  rate® � Transfeò timå aô 960° bauä ió 3² timeó fasteò thaî � aô  30° baud®  Á fulì disë caî bå transferreä  iî � minuteó insteaä oæ hours®  Trù iô anä leô må kno÷ � of any problems you run into. ########## -------- 7 7 --------------- 7 4 --+ +-- 4 4 --+ +-- 4 5 --+ +-- 5 5 --+ +-- 5 6 --+ +-- 6 6 --+ +-- 6 8 --+ +-- 8 8 --+ +-- 8 20 --+ +-- 20 20 --+ +-- 20 Tï uså jusô hooë thå computeró togetheò aó iæ  thå � otheò computeò ió á modem® Thå crosseä cablå wilì � probablù bå required¬  unlesó thå crossinç ió donå � withiî  eitheò oæ thå computers®  Experimenô untiì � Á SLEEPEÒ IÎ YOUÒ ELECTRONIà CLOSET DAVIÄ METZLER ed. J.S. Reed Yoõ havå á powerfuì languagå hidinç oî youò systeí disk® Thå � namå oæ thió languagå ió Pilot. Puô youò systeí disë iî thå Á drivå anä typeº DIÒ PILOT.COM® � Iæ youò computeò sayó A:PILOT.COÍ alì ió well» iæ iô sayó NÏ FILÅ � yoõ havå tï looë foò thå filå A:PILOT.COÍ oî anotheò disk. (Wheî É asë yoõ tï enteò somethinç intï thå keyboarä É wilì � encloså whaô yoõ arå supposeä tï typå iî bracketó {}® Dï noô typå � thå brackets» theù arå jusô therå tï separatå whaô yoõ arå � supposeä tï typå froí thå resô oæ thå article® É wilì puô whaô � thå computeò ió supposeä tï replù tï yoõ iî alì caps.) Iæ yoõ boughô youò Micrï Decisioî somå timå ago¬ yoõ maù noô � eveî realizå thå potentiaì oæ whaô yoõ have® Iô haó beeî onlù � recentlù thaô thå Micrï Decisioî haó beeî shippeä witè thå � documentatioî foò thå Piloô language® Sï iæ yoõ havå beeî missinç � out¬ reaä on® Whilå yoõ arå waitinç foò youò copù oæ thå Piloô � manual¬ therå ió aî easù waù tï learî á loô abouô thå language. Iæ yoõ puô thå systeí disë iî youò Aº drivå anä dï á {DIÒ � *.PILý command¬ yoõ shoulä seå á lisô oæ fileó thaô alì enä witè � thå three-letteò extension¬ PIL® Onå oæ theså fileó wilì bå � CPMENU.PIL® Froí thå A¾ typå {TYPÅ CPMENU.PIL}® No÷ yoõ havå á � listinç oæ thå Piloô commanä files. Beforå wå gï anù further¬ let'ó mentioî ho÷ thå Piloô � languagå works® Thå firsô thinç á Piloô programmeò doeó ió tï � creatå á listinç oæ Piloô commandó likå thå listinç oæ thå � CPMENU.PIÌ filå yoõ jusô lookeä at® Thió listinç ió createä usinç � anù texô editoò, such as WordStaò's non-documenô mode. Afteò thå listinç ió complete¬ yoõ typå iî thå commanä PILOÔ � anä theî thå namå oæ thå filå thaô yoõ created¬ e.g® {PILOÔ � TEST.DOC}¬ anä thå Piloô prograí goeó tï work® Thå Piloô � interpreteò readó each linå oæ thå listinç thaô yoõ createä � anä executes thaô instruction® Yoõ caî learî á greaô deaì abouô whaô kinä oæ instructionó � thå Piloô interpreteò caî accepô jusô bù lookinç aô thå listinç � oæ instructionó iî alì thå fileó witè á PIÌ extension® Jusô uså � thå TYPÅ commanä likå yoõ diä tï seå á listinç oæ CPMENU.PIL. Anotheò waù yoõ caî geô weô witè Piloô programminç ió tï � copù thå followinç program® Yoõ maù wanô tï creatå thió prograí � oî youò systeí disë becauså iô wilì automaticallù format¬ sysgen¬ � anä placå á copù oæ PIP.COÍ oî á diskettå fresè froí thå box® Alì � thió wilì bå donå automatically® Theî thå belì wilì ring» anä yoõ � can¬ iæ yoõ wish¬ puô iî anotheò ne÷ diskettå anä havå iô � processeä thå samå way. Š Bå surå thaô yoõ onlù worë witè á COPÙ oæ youò systeí � diskette¡ (Iæ yoõ don'ô havå á backuð oæ youò systeí disk¬ follo÷ � the directionó foò BACKUP.COM iî youò manuaì.) No÷ thaô everythinç ió alì ready¬ puô youò systeí disë iî � drivå  anä youò WordStaò disë oî drivå A® Enteò WordStaò youò � usuaì way» anä froí thå NO-FILÅ menõ chooså optioî Î foò "opeî á � non-documenô file.¢ Yoõ maù noô havå useä thió optioî beforå buô � don'ô worry® Thå maiî differencå ió thaô worä wrað anä pagå � breakó arå off® Iî thå non-documenô modå yoõ havå tï hiô thå � returî keù tï starô á ne÷ line® Yoõ arå goinç tï creatå sourcå � codå thaô thå Piloô interpreteò ió goinç tï read® So¬ yoõ wanô � WordStaò tï behavå itselæ anä onlù uså plaiî ASCIÉ characters. Wheî WordStaò askó foò á filå name¬ picë aî appropriatå � namå sucè aó {B:WORK.PIL}® Noticå thaô thå namå ió precedeä bù á � Bº tï placå thió filå oî thå  drivå wherå youò systeí disë is¬ � anä haó á PIÌ extensioî sï iô caî bå identifieä aó á Piloô sourcå � codå file® Typå iî thå followinç listinç exactlù aó yoõ seå it® Starô � froí thå *BEGIÎ anä enä witè thå linå END:. *BEGIN CLRS: Tº THIÓ PROGRAÍ WILÌ AUTOMATICALLÙ FORMAÔ ANÄ SYSGEÎ Á BLANË Tº FACTORÙ FRESÈ DISË SÏ THAÔ IÔ WILÌ BÅ READÙ TÏ USE. Tº Tº Á COPÙ OÆ THÅ FILÅ TRANSFEÒ UTILITÙ PIP.COÍ WILÌ ALSÏ T: AUTOMATICALLÙ BÅ PLACEÄ OÎ THIÓ NEWLÙ PROCESSEÄ DISK® T: AFTEÒ ALÌ THIÓ IÓ DONÅ YOUÒ TERMINAÌ WILÌ BEEP® YOÕ THEÎ HAVE Tº THÅ CHOICÅ OÆ RETURNINÇ TÏ THÅ OPERATINÇ SYSTEÍ OÒ PROCESSINÇ Tº ANOTHEÒ BLANË DISK. T: Tº ******************************* T: Tº PLEASÅ BÅ SURÅ THAÔ THIÓ PROGRAÍ IÓ OÎ THÅ Á DRIVÅ ANÄ THAÔ Tº THÅ DISË TÏ BÅ PROCESSEÄ IÓ OÎ THÅ Â DRIVÅ Tº Tº ******************************* Tº T: *QUESTION Tº ARÅ YOÕ READÙ (Y/N)? INMAXº 1 A: Mº Y JNº *BEGIN CPM:FORMAÔ Â D CPM:SYSGEN;A;B;;PIP;B:=A:PIP.COM;; CLRS: BELL: Tº IÆ YOÕ WOULÄ LIKÅ TÏ PROCESÓ ANOTHEÒ BLANË DISË REMOVÅ THÅ Tº DISË IÎ DRIVÅ Â (BÅ SURÅ TÏ LABEÌ IÔ SÏ YOÕ CAÎ IDENTIFÙ IÔ Tº AÓ Á FORMATTEÄ SYSTEÍ DISK© ANÄ PLACÅ ANOTHEÒ BLANË DISË IÎ ŠTº DRIVÅ B. Tº J:*QUESTION END: Tï uså thió prograí takå ouô youò WordStaò disë anä placå � youò systeí disë iî drivå Á (thió disë waó iî drivå B)® Takå á � fresè unuseä blanë disë anä placå iô oî drivå B® Aô thå A>¬ typå � iî thå commanä {PILOÔ WORK}® Thå resô wilì bå selæ explanatory® Iæ thå prograí doesn'ô seeí tï worë properly¬ reaä thå resô � oæ thió explanatioî tï learî ho÷ thå prograí works® Iô wilì theî � bå easieò tï finä thå typinç error. Therå arå 3± commandó availablå tï thå Piloô programmer® � Thió examplå (WORK.PIL© accomplisheó á greaô deaì usinç onlù ¸ oæ � thå mosô ofteî useä oæ theså commands® Let'ó takå á looë aô eacè � oæ theså commandó wå jsuô useä tï learî ho÷ Piloô ticks. Firsô, thå normaì syntaø ió COMMAND:WHAÔ THÅ COMMANÄ WORKÓ OÎ � Thå COMMANÄ beforå thå coloî ió onå oæ thoså 3± commandó thaô thå � Piloô interpreteò understands® Thå WHAÔ THÅ COMMANÄ WORKÓ OÎ � afteò thå coloî ió usuallù characteró thaô yoõ choså dependinç oî � youò application. Foò examplå, thå line: Tº Thió ió easy. telló thå Piloô interpreteò tï prinô oò Typå thå linå "Thió ió � easy.¢ oî youò terminaì screen. No÷ let'ó takå á looë aô á serieó oæ three interrelateä � commandó takeî froí the WORK.PIÌ sourcå code. A: Mº Y JNº *BEGIN Thå commanä Aº telló thå interpreteò tï stoð anä waiô foò � thå operatoò tï typå somethinç oî thå keyboarä anä accepô iô foò � futurå use. Thå commanä JN:*BEGIÎ telló thå interpreteò tï jumð tï thå � linå thaô startó *BEGIÎ oî á nï oò negativå condition. Iî English¬ thaô meanó thaô thå interpreteò lookó aô whaô � thå operatoò typeä iî responså tï thå Aº (accept© command¬ anä � matcheó iô tï thå characteró thaô follo÷ thå Mº (match© command® � Iæ thå twï serieó oæ characteró dï noô matcè perfectly¬ yoõ havå � á negativå conditioî anä thå jumð takeó place® Iæ á perfecô matcè � ió made¬ yoõ havå á yeó oò positivå conditioî sï thå jumð commanä �Šdoeó noô geô executed® Thå interpreteò jusô skipó tï thå nexô � linå iî thå sourcå code. Iæ yoõ woulä likå thå jumð tï takå placå oî á yeó conditioî � insteaä oæ á negativå condition¬ thå sourcå codå woulä readº � JY:*BEGIN® Noticå thaô thå syntaø ió changeä á littlå now® Thå � ne÷ syntaø is: {COMMANDý {CONDITIONý (eitheò Ù oò N© :WHAÔ THÅ COMMANÄ WORKÓ ON Mosô Piloô commandó caî bå modifieä witè á Ù oò Î conditional. Oæ courså, thå Jº (jumð command© caî bå useä withouô á � conditional® Foò example¬ J:STARÔ woulä instrucô thå interpreteò � tï jumð tï thå linå thaô startó *STARÔ regardlesó oæ whaô � happeneä previouslù iî thå program. Thå CLRSº commanä ió easy» iô clearó thå screen. Thå BELLº commanä ringó thå bell. Thå CPMº commanä allowó direcô accesó tï CP/Í commanä files® � Foò example¬ CPM:DIÒ woulä givå á directorù oæ thå loggeä iî � drive¬ jusô aó iô woulä iæ yoõ haä giveî thå commanä yourself® Bå surå noô tï leavå anù spaceó afteò thå colon® Foò � example¬ CPM:FORMAÔ Â Ä woulä work¬ buô CPMº FORMAÔ Â Ä woulä noô � work. Noticå thaô yoõ pasó thå informatioî abouô thå  drivå anä � double-sideä formaô tï thå FORMAÔ commanä bù jusô usinç thå � spaces® Usually¬ though¬ yoõ separatå thå commanä froí thå � argumentó (instructions© witè semicolons® Foò example: CPM:PIP;A:=B:FILE1;A:=B:FILE2 Thå INMAX:± commanä telló thå interpreteò thaô thå operatoò � ió alloweä tï enteò onlù uð tï thå numbeò oæ characteró specifieä � afteò thå colon® Afteò thaô numbeò oæ characteró arå entereä thå � Pilot interpreteò wilì continuå doinç whaô iô ió supposeä tï dï � jusô aó iæ thå operatoò haä hiô thå returî key. DAVIÄ METZLER C/Ï CMDUG 22¶ BOSTOÎ POSÔ ROAD ORANGE, CT 06477 IÒ woulä givå á directorù oæ thå loggeä iî � drive¬ jusô aó iô woulä iæ yoõ haä giveî thå commanä yourself® Bå surå noô tï leavå anù spaceó afteò thå colon® Foò � example¬ CPM:FORMAÔ Â Ä woulä work¬ buô CPMº FORMAÔ Â Ä woulä noô � work. Noticå thaô yoõ pasó thå informatioî abouô thå  drivå anä � double-sideä formaô tï thå FORMAÔ commanä bù jusô usinç thå � spaces® Usually¬ though¬ yoõ separatå thå commanä froí thå � argumentó (instructions© witè semicolons® Foò example: CPM:PIP;A:=BPrinter/Modem Switch Box Dan Robinson I designed and built my own printer/modem switch for my Morrow MD3 Rev.1 computer, Epson RX printer and Signalman Mark XII modem. I drilled a hole in the back of the Morrow cabinet (with a sponge to catch chips, and vacuuming afterwards) and in the switchbox and used a long screw to hold the box firmly in place. With the help of Marc Norton, I rewired it recently to work with both BYE.COM, Modem7, Reachout and hopfully other modem programs. The wiring is something like this (I just wish it was this neat): Printer Computer Modem 1---------------1---------------1 2-------\-------2------/--------3 \, / = switches 3-------\-------3------/--------2 4-------\-------4------/--------5 5-------\-------5------/-------20 6---------------6 7-------\-------7------/--------7 8---------------8 20------\-------20-----/--------8 I think it could probably still be simpler. It would be nice to also have a switch for power to printer and modem ganged together with these. Dan ps, and vacuuming afterwards) and in the switchbox and used a long screw to hold the box firmly in place. With the help of Marc Norton, I rewired it recently to work with both BYE.COM, Modem7, Reachout and hopfully other modem programs. The wiring is something like this (I just wish it was this neat): Printer Computer Modem 1---------------1---------------1 2-------\-------2------/--------3 \, / = switches 3-------\-------3------/--------2 4-------\-------4------/--------5 5-------\-------5------/-------20 6---------------6 7-------\-------7------/--------7 8---------------8 20------\-------20-----/--------8 I think it could probably s.op GETTINÇ THÅ MOSÔ FROÍ YOUÒ TERMINAL Sincå  É alreadù owneä á terminaì thaô É waó  verù � happù  witè  (Zenitè  Z-29)¬  É  boughô  mù  Micrï � Decisioî  withouô  terminal®  É  kne÷  thaô  thió � terminaì waó aó capablå aó mosô premiuí terminals¬ � sï  É  didn'ô  eveî consideò thaô therå  woulä  bå � compatibilitù problems. Wheî É receiveä mù MD-2¬ É noticeä thaô oæ alì thå � terminaló thaô thå Zenitè coulä emulate¬  onlù thå � Hazeltinå  150° waó listeä aó á leveì ²  terminal® � É  neveò  likeä operatinç iî thió modå  becauså  É � loså  manù terminaì attributes¬  sï É seô  uð  thå � systeí  witè  thå  terminaì emulatinç  aî  H/Z-19® � Thió ió listeä aó á leveì ± terminaì bù Morrow® É � wasn'ô  verù happù witè thió becauså  amonç  otheò � features¬  É  losô  highlighting®  Thå H/Z-1¹  ió � capablå  oæ highlightinç buô bù designatinç  iô  á � leveì ± terminaì thió wasn'ô accessible. É decideä tï trù tï dï somethinç abouô this® É goô � á   printouô   oæ  TERMINAL.DAÔ  froí   thå   CP/Í � Distributioî  disk®  Thå TERMINAL.DAÔ filå ió useä � wheî  firsô  startinç thå systeí tï allo÷  yoõ  tï � chooså á terminaì anä tï leô thå systeí kno÷  whaô � codeó   youò  terminaì  requireó  tï  controì  thå � screen®  Iæ thå terminaì requireó differenô  codeó � thaî  thå operatinç systeí thå operatinç systeí ió � patcheä  tï thå ne÷ codes®  Theî wheî  installinç � thå  resô  oæ thå softwarå  alì  terminaì  controì � codeó  arå translateä intï thoså requireä bù  youò � terminal®  Tï simplifù matters¬ Morro÷ haó choseî � tï   classifù  alì  terminaló  aó  onå  oæ   threå � differenô  levels®  Softwarå supplieä bù Morro÷ ió � pre-installeä foò onå oæ theså threå levels®  Thå � probleí  ió thaô foò onå reasoî oò anotheò  Morro÷ � haó  noô  classifieä alì thå  terminaló  tï  theiò � maximuí capability. É  noticeä thaô thå VT100¬  whicè ió verù closå tï � aî  ANSÉ  standarä terminal¬  ió classifieä  aó  á � leveì ² terminaì anä thå ANSÉ standarä terminaì ió � classifieä aó á leveì 1®  É alsï noticeä thaô thå � controì  codeó foò highlightinç arå noô filleä  iî � oî eitheò thå H/Z-1¹ oò thå ANSÉ standarä (aó welì � aó severaì others)®  É alsï kne÷ thaô mù terminaì � coulä dï everythinç thaô á leveì ³ terminaì  coulä � do¬  anä  alì  É haä tï dï ió telì  thå  operatinç � systeí whaô thå controì codeó were. Sï  É  loadeä  WordStaò anä editeä á copù  oæ  thå � TERMINAL.DAÔ  filå  iî thå  non-documenô  modå  tï � reflecô  alì  thå controì codeó anä tï changå  thå � ANSÉ terminaì froí á leveì ± terminaì tï á leveì ³ �Šterminal® É addeä highlighting¬ inserô anä deletå � linå  anä  inserô anä deletå  characteò  codes®  É � moveä thå ne÷ TERMINAL.DAÔ filå tï mù backuð  copù � oæ  thå  originaì CP/Í Distributioî disë  anä  re-� installeä thå systeí aó É diä thå firsô time. Imaginå  mù  surpriså wheî É noticeä thaô mucè  oæ � thå Piloô menuó werå highlighted¡  É re-installeä � WordStaò  anä Logicalã anä noticeä thaô  theù  toï � madå  mucè uså oæ highlighting®  É decideä noô tï � re-instalì   Pearì  buô  disc overeä  thaô  iô   ió � possiblå  tï  changå terminaló iî  Pearì  bù  jusô � runninç   thå   welcomå  disë  anä   pickinç   thå � appropriatå  options®  É  jusô sysgeneä thå  otheò � diskó  tï  geô thå correcô translatioî  tableó  iî � them. É  suspecô  thaô  Morro÷  diä  noô  completå   thå � TERMINAL.DAÔ  filå  becauså  theù lackeä  alì  thå � informatioî theù needeä foò thå variouó terminals® � Iæ yoõ havå á terminaì thaô haó morå  capabilitieó � thaî your'rå usinç now¬  don'ô hesitatå tï trù it® � Iæ yoõ arå carefuì tï alwayó worë oî á backuð copù � oæ  everythinç  yoõ  havå nothinç tï  loså  buô  á � littlå  time®  Yoõ caî alwayó gï bacë tï youò olä � systeí iæ yoõ wish¬  anä yoõ caî surå learî á  loô � abouô youò system. Clarence Heierò  anä Logicalã anä noticeä thaô  theù  toï � madå  mucè uså oæ highlighting®  É decideä noô tï � re-instalì   Pearì  buô  disc(From the Santa Cruz Micro Decision Users' Group newsletter): NOTES FROM A USER Smartkey II is a very handy key-redefinition utility. It allows you to store words, phrases, and even complicated series of commands and recall them with a single keystroke. Morrow now includes Smartkey II with its software package, and my local dealer now sells this Morrow version of Smartkey II for only $25 to those of us who already own Morrows (regular price is around $80). BUT THERE'S A CATCH. This version of Smartkey II has been specially adapted for the MDT-60 terminal, and it won't work with other terminals, such as the Freedom terminals Morrow used to use or the popular Televideo terminals. Rats. Still, the price was so good, I decided to take a chance. I bought a copy of this special Smartkey II, even though I have a Televideo 925 terminal. When I got it home and tried to run it, it didn't work (just as I'd been told it wouldn't). So I got out my copy of DDT and started poking around, and half an hour later I had a working copy of Smartkey II. (Blind hog finds an acorn.) So far, I've found no problems with this modified version of Smartkey II, though there's always the off chance that a bug may be lurking somewhere, waiting for me. It runs fine on Morrows with Televideo terminals and should, I believe, work with the Freedom or any other terminal (except possibly the MDT20)--but I can't guarantee it. For $25, you can afford to take a small risk. Here's what you do. Make a working copy of your Smartkey II master disk, and put the master away in a safe place. Then copy SMARTKEY.COM onto a blank, formatted, and sysgened disk. Copy DDT.COM onto this same disk (DDT.COM is on your CP/M distribution disk if you've never seen it before). You might also want to put PIP.COM or NSWP207.COM on the disk to copy off the results when you're done. Put everything else away, stick the disk with SMARTKEY.COM and DDT.COM in the A: drive, and hit a control-C. Now try running Smartkey as is. If Smartkey signs on, tells you it's ready, and gives you back the A> prompt, then you're in luck. You can run the program as is, without any patching at all. But if your computer just goes dead, you're going to have to use DDT. Hit the reset button to clear your machine, and read on. You're going to use DDT to modify Smartkey and save the modified version under the name SK.COM. What follows is a transcript of the session you'll go through with DDT. The lowercase letters are what you type, and the UPPERCASE letters are DDT's responses. The hyphen sign (-) is DDT's prompt. The sign means that you hit a carriage return. The ^C sign means that you hit control-C. Anything on the right side preceded by a <=== sign is just a comment put in by me. OK? Let's go-- you start by typing "ddt smartkey.com" at the A> prompt. A>ddt smartkey.com DDT VERS 2.2 <===DDT signs on . . . NEXT PC 1900 0100 - <===and gives its prompt -f1113,113c,00 <===type "f113,113c,00" <===and a carriage return -^C <===hit control-C to exit A>save 24 sk.com <===type "save 24 sk.com" <===and a carriage return A> You now have a new program on your disk, called SK.COM--your modified version of SMARTKEY.COM. Try running it by typing "sk " at the A> prompt. If Smartkey II signs on, shows you its version and serial numbers, tells you it's ready, and gives you back the A> prompt, then you're in business. Copy SK.COM onto your Smartkey working disk and use it in place of SMARTKEY.COM. Go read the manual to find out how to use it. If your new SK.COM didn't work, do the patch session with DDT over again, making sure to follow the directions exactly. If it still doesn't work, you may have discovered a new problem. B ring the details on your problem, your copy of Smartkey II, and information on your terminal type to the next meeting. v <===type "f113,113c,00" <===and a carriage return -^C <===hit control-C to exit A>save 24 sk.com <===type "save 24 sk.com" <===and a carriage return A> You now have a new program on your disk, called SK.COM--your modified version of SMARTKEY.COM. Try running it by typing "sk " at the A> prompt. If Smartkey II signs on, shows you its version and serial numbers, tells you it's ready, and gives you back the A> prompt, then you're in business. Copy SK.COM onto your Smartkey working disk and use it in place of SMARTKEY.COM. Go read the manual to find out how to use it. If your new SK.COM didn't work, do the patch session with DDT over again, making sure to follow the directions exactly. If it still doesn't work, you may have discovered a new problem. B KNOWN JUMPER CONFIGURATIONS FOR MORROW SERIAL PORT #2 last MDC update 5/28/84 16 15 14 13 12 11 10 9 _____________ Standard 2-wire handshake | | Printer format . . . . . . . . MD3 rev. 1 | | | | | | . . . . . .___. . 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 .___. . . . . . . Modem Configuration | | | | | MD3 rev. 1 .___. . . . . . . 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 . . . .___. . . . Standard 2-wire handshake | | | | | | Printer format . . . . . . . . MD3 rev. 2 1 2 3 4 5 6 7 8 (left 16 pins viewed from top/front) 16 15 14 13 12 11 10 9 .___. . .__ .___. . . Modem Configuration | | MD3 rev. 2/USR Password .___. . . | . . . . (left 16 pins | | viewed from top/front) ----------- 1 2 3 4 5 6 7 8  _____________ Standard 2-wire handshake | | Printer format . . . . . . . . MD3 rev. 1 | | | | | | . . . . . .___. . 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 .___. . . . . . . Modem Configuration | | | | | MD3 rev. 1 .___. . . . . . . 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 . . . .___. . . . Standard 2-wire handshake | | | | | | Printer format . . . . . . . . MD3 rev. 2 1 2 3 4 5 6 7 8 (left 16 pins viewed from top/front) 16 15 14 13 12 11 10 9 .___. . .__ .___. . . Modem Configuration | | MD3 rev. 2/USR Password .___. . . | . . . . (left 16 pins | | viewed from top/fr DISK DRIVE ADDITIONS FOR MORROW MICRODECISION 2 I recently added two additional disk drives to my Morrow Microdecision 2 computer. These notes describe the method used. While these instructions worked on my computer, I make no guarantee that they will work for your system. Please be aware that a mistake might void your warranty. THE COMPUTER: Morrow has a number of different configurations in use in the MD series. The system described here has Shugart SA200 disk drives and a Rev. 1.1 motherboard. This configuration has 2 serial ports, no parallel port, and an expansion disk connector at the rear of the computer. Fig. 1: MD2 REAR VIEW +-------------------------------------------------------------+ | +---+ | | | o | | | | n | This is it! | | +---+  | | | +---+ V | | | A | 34 2 | | | / | +----------+ +---------+ +----------+ | | | C | | DRIVE EXP| | P/M PORT| | TERMINAL | | +-------------------------------------------------------------+ Note the numbers above the drive expansion connector in Figure 1. They refer to the pins on the edge connector. SOFTWARE: Before you make any hardware changes, make the needed changes to your software. (While you know everything still works!) You'll have to set up your CP/M to recognize the third and fourth drives. To do so, place your CP/M distribution disk in drive A and boot the system. Follow the prompts. When it asks for the number of drives, type '4'. When you get to the main menu, type ESC to exit. Place your CP/M distribution disk in a safe place. Boot your new CP/ M working disk. You should be able to access Drives A and B as before. If this works, try accessing drive E. This should act as a virtual drive. (You'll be requested to remove the disk from Drive A, and insert the disk for Drive E .) Finally, try accessing Drive C and Drive D. For either of these drives, you should receive an error message inviting you to abort, retry, or ignore the error. If you get the correct responses from the software, you can then use SYSGEN to move copies of the system to other disks. Make sure that you have 4 formatted disks on hand for testing. .cp 5 HARDWARE: To add the two drives, you will need two Shugart SA200 drives (with manual), a dual horizontal disk drive cabinet with power supply, a 34 conductor cable with edge connectors, wire, solder, and hand tools. Begin with the cable to connect the drives to the computer's expansion drive connector. You can buy it, or make it yourself. If you make one, you will need a length of 34 connector ribbon cable and three matching edge connectors. Assemble the cable with one connector at one end, and the other two connectors spaced about a foot apart at the other end. If the connectors are the slip-on style, be sure to install the connector marked 'C' before installing the other connectors. (Considerable pressure may be needed to insure good contact between the cable and the connectors. A rubber mallet or vise may be useful.) Fig. 2: CABLE LAYOUT +-+ 2 2 +-+ 2 +-+ |E|============================================| |==========| | |X|============================================|C|==========|D| |P|============================================| |==========| | | |============================================| |==========| | +-+ 34 34 +-+ 34 +-+ Next prepare the drives. Referring to Fig. 3, locate the terminating resistor pack (T in Fig. 3) and remove it. Locate the Disk Select jumper and place the jumper at DS1. This will be Drive C. Preparing Drive D is a bit more complicated. Some soldering will be required, so plug in your soldering iron. Leave the terminating resistor pack in place. Place a jumper at DS2. Now refer to Fig. 3 and locate edge connector J2. The pins on this connector are odd numbered on the bottom, and even numbered on the top. Viewed from the front of the drive, pin 2 is on the right, and pin 34 is on the left. Carefully solder a small piece of wire from pin 4 to pin 12. It is important to solder the wire on the drive side of the pins, so that the edge connector can still slide over the pins. This jumper connects +5VDC to the Drive Select 2 input. (Some documentation from Morrow indicates that pin 2 and pin 12 should be connected, but that did not work in this case.) .CP5 Fig. 3: PARTIAL TOP REAR VIEW OF SA200 J2 J1 +--------------- --+ +------+ |34 2| | | +-----+ +---+ | | T +-----+ DS 1234 | | +-----+ :::: | | | +-----------------+ | Next install the drives in the cabinet. The Shugart SA200's are 2/3 height drives that are to be installed horizontally. They may be mounted side - by - side, as in the MD2, or stacked. Important: Install the drives horizontally, with the printed circuit boards on the top. If the printed circuit boards are mounted underneath, the drives may be damaged. Connect the power supply to J1 of each drive, and perform the initial checks listed in the SA200 manual. Power up the drives for the blue smoke test. If the drives are functioning properly at this point, install the cable from the computer to the drives. Take care that pin 2 on the computer is connected to pin 2 on the drives! Power up the entire system, and if it passes the blue smoke test, try Drive A and Drive B to make sure that they still work correctly. Then try Drive C and Drive D. You should be able to read the directory for all 4 disks. If things are still going well, try to format the disks in Drive C and Drive D. Use PIP to transfer files from A and B to C and D. If that is successful, check to insure that disks written on C and D can be read on A and B. With care, you now have a functioning four drive MD2. If you have problems, review the entire procedure. Pay particular attention to the disk connector cable; it is the "weak link" in the setup. 25-Nov-83 Stan Young POB 8 Lilburn, GA 30247 Note: MicroDecision (R) is a produ ct of Morrow Designs, Inc. CP/M 2.2 (R) is an operating system developed by Digital Research, Inc. ecision (R) is a produto the drives. Take care that pin 2 on the computer is connected to pin 2 on the drives! Power up the entire system, and if it passes the blue smoke test, try Drive A and Drive B to make sure that they still work correctly. Then try Drive C and Drive D. You should be able to read the directory for all 4 disks. If things are still going well, try to format the disks in Drive C and Drive D. Use PIP to transfer files from A and B to C and D. If that is successful, check to insure that disks written on C and D can be read on A and B. With care, you now have a functioning four drive MD2. If you have problems, review the entire procedure. Pay particular attention to the disk connector cable; it is the "weak link" in the setup. 25-Nov-83 Stan Young POB 8 Lilburn, GA 30247 Note: MicroDecision (R) is a produ MORROW FIX CP/M 2.2 VERSION 1.4 09/17/83 I recently converted my Micro Decision MD2 (single sided drives) to a MD3 (double sided drives). I ran into several Problems doing this and hopefully this document will prevent others from having the same problems. Since I don't have a copy of Microsoft's M80/L80, I could not assemble the CBIOS.MAC supplied by Morrow. As an alternative, I Procured a copy of the double sided BIOS from my local dealer. The version received was REV 1.4 set up for the Morrow MDT-50 terminal. Well after several days of blaming myself, I found this version has/had several BUGS! All the bugs are related to the CONOUT strings. The symtoms are: - All supplied software setup for the Morrow MDT-50/Liberty Freedom 50 terminal will not run properly. - Cursor control functions do not work. - Highlighting does not work. If you are experiencing the afore mentioned problems, try the fix listed below. 1. Cold boot the CP/M system disk and load DDT.COM. 2. Examine address locations FA26 through FA3B. They should appear as shown below. FA26 00 00 00 FF 00 00 00 00 00 FF FA30 00 00 00 00 00 00 00 00 00 00 00 00 28 00 01 02 3. If the address locations are not the same as above, use the -S function of DDT.COM to change them as necessary. 4. Exit DDT.COM With a ^C. Without rebooting, try running Wordstar and see if the problem is corrected. 5. If the problem is gone, exit Wordstar and SYSGEN the disk by the following. A>SYSGEN A This will place the new copy of the corrected BIOS on the "A" disk. You will probably want to re-sysgen the rest of your disks as well. Use this disk for that purpose. It should be noted that this problem has only been seen on VERSION 1.4. Since Morrow has come out with 3 later versions of the BIOS, I can only assume that the problem has been corrected. Good Luck, Jerry Haigwood (408) 272-8495  FA3B. They should appear as shown below. FA26 00 00 00 FF 00 00 00 00 00 FF FA30 00 00 00 00 00 00 00 00 00 00 00 00 28 00 01 02 3. If the address locations are not the same as above, use the -S function of DDT.COM to change them as necessary. 4. Exit DDT.COM With a ^C. Without rebooting, try running Wordstar and see if the problem is corrected. 5. If the problem is gone, exit Wordstar and SYSGEN the disk by the following. A>SYSGEN A This will place the new copy of the corrected BIOS on the "A" disk. You will probably want to re-sysgen the rest of your disks as well. Use this disk for that purpose. It should be noted that this problem has only been seen on VERSION 1.4. Since Morrow has come out with 3 later versions of the BIOS, I can only assume that the problem has been corrected. Good Luck, JerT: This is a program for automatically formatting a new disk T: as well as testing it for bad sectors and locking them out, T: putting the utility PIP on the disk, and SYSGENing the disk. T: T: Press RETURN to begin T: or X to EXIT this program INMAX:1 A: M: X JY: *END *START CPM:FORMAT B D| T: Disk is formatted and verified, now checking for T: bad sectors and locking out any that are found..... CPM:FINDBAD B| T: Now putting the PIP utility on the new disk.... CPM:PIP;B:=A:PIP.COM; T: Now SYSGENing..... CPM:SYSGEN;a;b; BELL: T: If you want to format another disk this way, T: Tº  FIRST¬  removå thå onå jusô donå anä puô iî á ne÷ one¬ � T: THEN press RETURN T: T: If you are through, press X INMAX:1 A: M: X JN: *START *END END: åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå TITLE SYS.MAC ; ; Quick printer setup and system status interrogation for Morrow MD3 (Rev. 2). ; Alternative to the SETUP program for quick change of system configuration. ; Setups are specified on the command line, or by a SUBMIT file. ; No parameter specified means interrogate only. ; Special printer sequences can be added at INITP: and other options could ; be added to the program. ; The options in the original program are probably the most common ; setups for most users' MD3's. ; The sequences in the original program are for the Morrow MP100-300 ; daisy wheel printers which require the left margin set when the ; optional tractor is installed. ; You will need a Z80 assembler to generate the object code COM file. ; ; Written by Todd Merriman - Future Communications - Atlanta, Georgia - 1984 ; (c) 1984 Future Communications ; Published in the Public Domain for non-commercial use ; .Z80 LSTOUT EQU 5 ; LST: out system call CONSTG EQU 9 ; console string output system call CONCHR EQU 2 ; send character to console system call BUFF EQU 080H ; address for command tail DFLAG EQU 0F794H ; status word for LST device BAUD1 EQU 0F783H ; port 1 baud rate index BAUD2 EQU 0F784H ; port 2 baud rate index CTC EQU 0F2E1H ; BIOS routine to set baud rates in CTC LOC EQU 0F23FH ; memory location to check for REV LFLAG EQU 5 ; bit 5 in status word set for parallel = LST HFLAG EQU 4 ; handshake flag: DSR enabled if 1 DIV96 EQU 6 ; divisor for 9600 baud DIV12 EQU 3 ; divisor for 1200 baud DIV3 EQU 1 ; divisor for 300 baud REV EQU 022H ; byte expected at LOC BDOS EQU 0005H ; entry for system calls CR EQU 0DH ; carriage return LF EQU 0AH ; line feed ESC EQU 1BH ; escape BELL EQU 7 ; ASCII bell CHAR EQU 02DH ; character used in border NUMCHR EQU 50 ; number of characters in border ; ORG 100H ; START: LD DE,HEAD LD C,CONSTG CALL BDOS LD A,(LOC) ; location for the byte REV CP REV ; byte that should be at LOC JP NZ,ERR ; print error message and exit ; LD A,(BUFF) CP 0 JR Z,SHOW ; no parameter CP 2 ; CCP says there are two characters JR NZ,NONE ; more than one character parameter LD A,(BUFF+2) ; command tail CP '0' JR Z,PARAM0 ; '0' parameter CP '1' JR Z,PARAM1 ; '1' parameter CP '2' JR Z,PARAM2 ; '2' parameter CP '3' JR Z,PARAM3 ; '2' parameter JR NONE ; error return ; PARAM0: ; parameter '0' on command line LD HL,BAUD2 LD (HL),DIV12 ; store baud rate divisor JR SERSET ; PARAM1: ; paramter '1' on command line LD HL,BAUD2 LD (HL),DIV3 ; store baud rate divisor JR SERSET ; PARAM2: ; parameter '2' on command line LD HL,DFLAG SET LFLAG,(HL) ; set LST flag JR SHOW ; PARAM3: ; parameter '3' on command line LD DE,PRMPT1 LD C,CONSTG CALL BDOS LD HL,DFLAG SET LFLAG,(HL) ; set LST flag LD HL,INITP ; string for setting margin CALL SEND JR SHOW ; SERSET: LD HL,DFLAG XOR A SET LFLAG,A CPL AND (HL) ; clear LST flag LD (HL),A CALL CTC ; use BIOS routine to set baud rate JR SHOW ; NONE: ; bad parameters specified LD DE,ERROR0 LD C,CONSTG CALL BDOS JR SHOW ; ERR: LD DE,OLD ; point to error message LD C,CONSTG CALL BDOS RST 0 ; exit and warm boot ; SHOW: CALL BORDER LD DE,CONFIG ; Show final configuration LD C,CONSTG CALL BDOS LD DE,SER1 ; print SERIAL 1 LD C,CONSTG CALL BDOS LD DE,(BAUD1) ; read baud index CALL PRNT ; find in table and print ; CALL SPC LD DE,SER2 ; print SERIAL 2 LD C,CONSTG CALL BDOS LD DE,(BAUD2) ; read baud index CALL PRNT ; find in table and print ; LD DE,LINE ; point to line terminating string LD C,CONSTG CALL BDOS LD DE,LST ; print LST LD C,CONSTG CALL BDOS LD HL,DFLAG ; point to status word BIT LFLAG,(HL) ; bit 5 set for parallel = LST JP NZ,ISPAR ; jump if parallel port is LST ; LD DE,SER2 ; print SERIAL 2 LD C,CONSTG CALL BDOS ; CALL SPC CALL SPC LD DE,PUN ; print PUN LD C,CONSTG CALL BDOS LD DE,PARA ; print PARALLEL LD C,CONSTG CALL BDOS ; JP SHAKE ; ISPAR: LD DE,PARA ; print PARALLEL LD C,CONSTG CALL BDOS ; CALL SPC CALL SPC LD DE,PUN ; print PUN LD C,CONSTG CALL BDOS LD DE,SER2 ; print SERIAL 2 LD C,CONSTG CALL BDOS ; SHAKE: LD DE,LINE ; point to line terminating string LD C,CONSTG CALL BDOS ; LD DE,HSHK ; print handshake LD C,CONSTG CALL BDOS LD HL,DFLAG ; point to status word BIT HFLAG,(HL) ; set for DSR enabled JP Z,NSHAKE ; jump if disabled LD DE,YES ; point to enabled message LD C,CONSTG ; print string to console function CALL BDOS JR END ; NSHAKE: LD DE,NO ; point to disabled message LD C,CONSTG ; print string to console function CALL BDOS ; END: LD DE,LINE LD C,CONSTG CALL BDOS CALL BORDER RST 0 ; normal exit ; PRNT: LD D,0 ; set hi-byte in register pair DE to 0 SLA E ; multiply index by two for words LD HL,INDEX ; HL points to beginning of table ADD HL,DE ; add index into table LD E,(HL) ; need pointer in DE for call INC HL LD D,(HL) LD C,CONSTG ; system call to print string CALL BDOS RET ; SPC: LD DE,SPACES LD C,CONSTG CALL BDOS RET ; BORDER: LD B,NUMCHR BORD0: LD A,0 CP B JR Z,PREND ; loop until var0 contains 0 LD C,CONCHR LD E,CHAR PUSH BC CALL BDOS POP BC DEC B JR BORD0 PREND: LD DE,LINE LD C,CONSTG CALL BDOS RET ; ; SEND: ; enter with HL pointing to string to print LD A,0 CP (HL) ; null terminates RET Z PUSH HL LD E,(HL) LD C,LSTOUT CALL BDOS POP HL INC HL JR SEND ; ERROR0: DB BELL,'? Undefined parameter specified on command line' DB CR,LF,'$' OLD: DB BELL,'? Wrong Machine',CR,LF,'$' PRMPT1: DB '> Left margin set = 10',CR,LF,'$' INITP: DB CR,ESC,CR,'P' ; reset to power-up DB ' ' ; no of spaces to augment left margin DB ESC,'9',0,0 ; set left margin at present position ; HEAD: DB CR,LF,LF,'--- System Configuration and Quick Printer ' DB 'Setup by Future Communications ---',CR,LF DB '** For Morrow Designs MD3 - Rev. 2 **',CR,LF DB 'Usage: A>SYS [parameter]',CR,LF,LF DB 'Current command line parameters are:',CR,LF DB ' NONE: Iterrogate for system configuration',CR,LF DB ' 0: Serial 2 = LST:, 1200 Baud',CR,LF DB ' --> fast modem or printer',CR,LF DB ' 1: Serial 2 = LST:, 300 Baud',CR,LF DB ' --> slow modem',CR,LF DB ' 2: Parallel = LST:',CR,LF DB ' --> parallel printer',CR,LF DB ' 3: Parallel = LST:, set left margin at 10',CR,LF DB ' --> MPxxx printer w/tractor',CR,LF,'$' CONFIG: DB ' - SYSTEM CONFIGURATION -',CR,LF,'$' SER1: DB 'SERIAL 1$' SER2: DB 'SERIAL 2$' PARA: DB 'PARALLEL$' LST: DB 'LST: $' PUN: DB 'PUN: $' LINE: DB CR,LF,'$' HSHK: DB 'DSR: $' YES: DB 'ENABLED $' NO: DB 'DISABLED$' R0: DB ': 110 BAUD $' R1: DB ': 300 BAUD $' R2: DB ': 600 BAUD $' R3: DB ': 1200 BAUD$' R4: DB ': 2400 BAUD$' R5: DB ': 4800 BAUD$' R6: DB ': 9600 BAUD$' INDEX: DW R0,R1,R2,R3,R4,R5,R6 SPACES: DB ' $' ; END START ..print at 12 pitch using WordStar or NewWord .he Z3MD-59k.LBR -- A ZCPR3 installation for Morrow MD computers .fo Installation instructions *** Page # *** Z3MD-59k.LBÒ  - ZCPR3 Installatioî foò Morro÷ Micrï Decisioî MD-1¬  2¬  oò  3¬ � using Revision 1 or Revision 2 motherboard. (C© Copyrighô 198´ bù Briaî Leyton®  Thå authoò giveó permissioî tï reproducå � iî  parô  oò  iî  whole¬  bù anù means¬  aó lonç aó thå purposå  ió  foò  NON-� COMMERCIAÌ uså ONLY. Revisioî 2.1 - 11/21/84 Pleaså  reaä  thió  filå carefully®  Iæ  yoõ  havå  anù  questions¬  problems¬ � suggestions¬ etc.¬ É caî bå reacheä iî thå followinç manners: Preferably: Through the LAMUG RCP/M:  (818)340-9947‚  300/120° baud»  2´ hró  excepô �                                  wheî iî uså bù SYSOP® SYSOÐ ió Boâ Moeller® Orº  Through  the  Glendale RCP/M:    (818)956-6164‚  300/120° baud»  2´ hró  excepô �                                  wheî iî uså bù SYSOP® SYSOÐ ió Abeì Iwaz. Or:    MCI Mail ID: BLEYTON  Or: Homå phoneº (818)766-3307 � IMPORTANÔ NOTE:‚ Therå havå beeî problemó witè MOVCPM‚ oî earlù versionó oæ thå � BIOS®  Therefore¬  yoõ  wilì  wanô tï makå surå yoõ havå thå latesô  revisioî � available®  Thå latesô revisioî numberó arå 1.¶ foò Revisioî 1¬  anä 2.³  foò � Revisioî 2®  Upgradeó arå availablå froí Morro÷ foò $2µ (oò yoõ mighô bå ablå � tï coî youò locaì dealeò intï givinç yoõ á copù foò free)® Thå  fileó yoõ wilì neeä foò thió installatioî arå thió .LBÒ  file¬  Z3COM.LBÒ � whicè containó alì oæ thå ZCPR3 utilities¬  anä Z3HELP.LBÒ whicè containó thå � HELÐ fileó foò ZCPR3®  Thå HELÐ fileó arå youò documentatioî foò ZCPR3® Theù � caî bå calleä uð oî thå screen¬ oò theù caî bå printeä ouô usinç HELPPR.COÍ � whicè ió specificallù designeä foò printinç HELÐ files. Yoõ  wilì alsï wanô Z3PHASE2.LBÒ whicè haó thå Phaså ² distributioî oæ  ZCPR3® � Thió  includeó DU³ anä MU3¬  VFILER¬  CLEANDIR¬  SHSET¬  anä otheò verù usefuì � parts of ZCPR3. Also pick up ZEX31.LBR which has the latest version of ZEX. Yoõ  wilì  wanô tï obtaiî thå ZCPR3 newsletteró whicè arå puô ouô  bù  ECHELOÎ � Inc®  whï marketó ZCPR3 commercially® Theså newsletteró arå availablå froí thå � abovå RCP/Mó aó welì aó manù others® Theù arå calleä Z3NEWS.##£ anä thå latesô � onå aô thå timå oæ thió writinç ió Z3NEWS.009. Therå  wilì alsï bå á manuaì published¬  called (appropriately©: "ZCPR3º  Thå � Manual". It is available through Echelon Inc. Iæ yoõ decidå yoõ arå enougè oæ á ZCPR3‚ enthusiasô thaô yoõ wanô tï keeð uð oî � thå  latesô developmentó witè Z3¬  yoõ caî calì thå ZCPR³ BBS‚ aô (415)489-9005‚ � (300/120° baud» 2´ hró excepô whilå iî uså bù SYSOP.) NOTEº Thió particulaò installatioî ió foò anù Morro÷ MD-1¬ 2¬ oò ³ whetheò yoõ � havå thå Revisioî ± boarä oò thå Revisioî ² board® Thå ZCPR3 fileó arå exactlù � thå same¬ thå onlù differenceó arå iî thå BIOÓ patcè anä thå MAKE.SU file. NOTEº Thió revisioî oæ thå installatioî packagå useó á ne÷ versioî oæ thå BIOÓ � patcè writteî bù Teä Silveira¬  whicè eliminateó thå neeä foò Z3INIT.COM® Thå � BIOS patch does all initialization neccessary. Š ***************************************************************** * * * Address Range Size Function * * ------------- ------- -------- * * 0 - FF 256 b Standard CP/M Buffers except * * 40 - 4A 11 b for ZCPR3 External Path * * 3E 1 b Wheel Byte * * 100 - C7FF ~50 K TPA * * c800 - d005 2 K ZCPR3 Command Processor * * d006 - ddff 3.5K BDOSZ * * de00 - ebff 3.5K CBIOSZ with Buffers * * ec00 - f5ff 2.5K Resident Command Package * * f600 - f87f 640 b Flow Command Package * * F880 - f97f 256 b Environment Descriptors * * Bytes 00H-7FH: Z3 Parameters * * Bytes 80H-FFH: Z3 Terminal Cap * * f980 - f9cf 80 b ZCPR3 Message Buffers * * Byte 0: Error Flag (Z/NZ) * * Byte 1: IF (8 Levels) * * Byte 2: IF Active (8 Levels) * * Byte 3: Z3 Cmd Status * * 00B - Normal * * 01B - Shell * * 10B - Error * * Bytes 4&5: Error Address if 10B * * Byte 6: Program Error Code * * Byte 7: ZEX Message Byte * * 00B - Normal * * 01B - Z3 Prompt * * 10B - Suspend Intercept * * Byte 8: ZEX Running Flag (0=No) * * Bytes 9-10: Address of Next * * Char for ZEX to Return * * Bytes 11-12: Address of First * * Char in ZEX Memory- * * Based File Buffer * * Byte 13: SH Control Byte * * Bit 0: Enable SHCMT * * Bit 1: Enable SHECHO * * Bit 7: Enable Shell * * Entry Wait * * Bytes 14-15: Shell Scratch * * Bytes 10H-2FH: Error Cmd * * Bytes 30H-39H: Registers * * Bytes 3AH-3FH: Reserved * * Bytes 40H-4FH: User-Defined * * f9d0 - f9ff 48 b ZCPR3 External FCB * * fa00 - faff 256 b Memory-Based Named Directory * * fb00 - fb2f 48 b ZCPR3 External Stack * * fb30 - fbaf 128 b ZCPR3 Shell Stack * * fbb0 - fbff 79 b free space * * fd00 - fdfe 255 b Multiple Command Line Buffer * ***************************************************************** .pa ŠA visual representation might help also... Address FFFF ----------------------------------------------  | ROM area (?) | 512b FE00 ---------------------------------------------- | ZCPR3 Multiple Command Line Buffer | 255b FD00 ---------------------------------------------- | ROM area (?) | 256b FC00 ---------------------------------------------- | free space | 79b FBB0 ---------------------------------------------- | ZCPR3 Shell Stack | 128b FB30 ---------------------------------------------- | ZCPR3 External Stack | 48b FB00 ---------------------------------------------- | ZCPR3 Memory-Based Named Directory(s) | 256b FA00 ---------------------------------------------- | ZCPR3 External File Control Block | 48b F9D0 ---------------------------------------------- | ZCPR3 Message Buffers | 80b F980 ---------------------------------------------- | ZCPR3 | Z3TCAP (S) | \ F900 | Environment --------------------- > 256b | Descriptor (S) | / F880 ---------------------------------------------- | ZCPR3 Flow Command Package (S) | 640b F600 ---------------------------------------------- | ZCPR3 Resident Command Package (S) | 2.5K EC00 ---------------------------------------------- | ZCPR3 BIOS with Modified Cold Boot | | Routine to Initialize All Elements | 3.5K | of the ZCPR3 System Above | DE00 ---------------------------------------------- | CP/M BDOS | 3.5K D005 ---------------------------------------------- | ZCPR3 Command Processor | 2K C800 ---------------------------------------------- | Transient | | Program | ~50K | Area | 100 ---------------------------------------------- ü CP/Í anä ZCPR³ Bufferó | 25¶b 0 ---------------------------------------------- .pa ŠTherå  stilì ió á smalì amounô oæ spacå lefô overº  7¹ byteó aô thå toð enä oæ � memorù righô afteò thå Z³ Shelì Stack®  É havå expandeä thå RCÐ bù 51²  bytes¬ � anä  thå FCP‚ bù 12¸ bytes¬  morå thaî enougè tï fiô alì possiblå utilitieó anä � Flo÷ Commands®  É alsï implementeä whaô otheò utilitieó werå availablå iî  thå � CCP‚ excepô thaô É diä noô implemenô SUBMIÔ processing¬ sï yoõ wilì havå tï uså � ZEX‚ insteaä (nï biggiå there¬ ZEX‚ ió mucè morå powerfuì anyhow)® É alsï didn'ô � implemenô  thå GEÔ commanä (whicè ió supposeä tï takå á .COÍ filå anä loaä  iô � intï  memorù withouô executinç it© sincå É founä thaô iô didn'ô worë quitå ho÷ � É  felô  iô shoulä (possiblå bug?)®  É renameä thå DIR‚ commanä tï  D‚  sincå  É � prefeò tï renamå SD.COM‚ tï DIR.COM® Tï seå whaô commandó arå availablå iî thå � system¬  checë Z3HDR.LIB‚ foò CCP‚ commands¬ anä SYSRCP.LI foò RCÐ commandó (oò � jusô typå H‚ aô thå A¾ prompt). Alì  systeí  segmentó arå installeä iî thå systeí excepô foò thå I/Ï  package® � Thaô requireó arounä 2ë oæ contiguouó memorù anä ió á loô oæ worë tï  install® � Noô  tï  mentioî thaô thå lacë oæ aî IOBYTÅ iî thå Morro÷ BIOÓ mighô  makå  iô � eveî tougher® É mighô plaù witè iô somedaù though..® Aó  yoõ  wilì  noticå froí thå memorù map¬  alì oæ thå ZCPR3 buffeò  spacå  ió � contiguouó excepô foò thå 25µ bytå Multiplå Commanä Linå buffer® Bù movinç thå � MCÌ buffeò uð therå (betweeî somå fixeä bufferó useä bù thå computer)¬  É  waó � ablå  tï implemenô á fulì RCÐ anä á fulì FCÐ withouô shrinkinç thå systeí  anù � more® Thå followinç fileó arå provideä iî thió LBÒ filå foò installinç ZCPR3: Name Description =========================== SYS.ENV Environmenô Descriptor. \ \ SYS.RCP Residenô Commanä Package. \ Pre-installed > SYS.FCP  Flo÷ Commanä Package. / System Segments / SYS.NDR  Nameä Directories. / Morro÷ iniô ¦ instalì Files STARTUP.COM ZCPR² utilitù executeä aó startuð commanä bù ZCPR3. MAKE.SUB  EX/ZEØ  filå  tï  integratå  BIOÓ  patcè  anä  ZCPR3   Commanä �                 processoò intï CP/Í sysgeî image. ZCPR3.INS ZCPR3 instalì prograí useä witè Z3INS.COÍ tï instalì thå ZCPR3 �                 utilities. LDR.COM ZCPR3 loadeò prograí foò loadinç Systeí Segments. � Z3PATMD.HEX Source codå oæ BIOÓ patcè foò initializatioî oæ ZCPR3 buffers. ZCPR3.HEX Heø codå oæ ZCPR3 Commanä Processoò foò replacinç thå CCP.� .pa ŠMisc® Supporô files. MLOAD.COM Publiã  Domaiî replacemenô foò DRI'ó LOAD.COM®  Needeä iæ  yoõ �                 wanô tï re-assemblå Systeí Segments. TELL.COM Publiã   domaiî  utilitù  whicè  telló  yoõ  wherå   importanô �                 operatinç  systeí  routineó arå locateä (includinç  youò  CCP¬ �                 BDOÓ anä BIOS)® EX.COM  Á publiã domaiî utilitù whicè ZEØ waó baseä on¬  buô  designeä �                 tï ruî oî non-ZCPÒ systems® Useä iî placå oæ SUBMIÔ anä XSUB. Headeò (LIB© files:     (onlù requireä foò Re-Configuratioî oæ ZCPR3) Z3BASE.LIB Headeò  filå  describinç thå locationó oæ thå systeí  segmentó �                 anä buffers. Z3HDR.LIB ZCPR3 headeò describinç optionó selecteä foò ZCPR3 CCP. SYSENV.LIB Headeò   foò  environmenô  descriptoò  anä  Z3TCAР  (terminaì �                 definition). SYSRCP.LIB Headeò foò Residenô Commanä Packages. SYSFCP.LIB Headeò foò Flo÷ Commanä Packages. SYSNDR.LIB Headeò foò Nameä Directories.  Thå  followinç fileó arå noô provideä iî thió LBÒ file¬  buô arå oî youò  CP/Í � distributioî diskette. ------------------------------------------------------------------------------ Commerciaì Software: SYSGEN.COM Prograí foò readinç Operatinç Systeí ofæ oæ systeí trackó intï �                 memorù anä writinç modifieä systeí bacë tï disk. MOVCPM.COM Useä tï creatå CPM59.COM¬ á 59Ë CP/Í image. CPM59.COM Createä bù MOVCPÍ anä SYSGEN. DDT.COM‚ Useä tï integratå ZCPR3‚ anä thå BIOS‚ patcè intï youò CP/Í �                 systeí image.  Thå  followinç  arå  needeä  onlù iæ yoõ wanô tï  re-assemblå  ZCPR3  oò  it'ó � utilities. ------------------------------------------------------------------------------ MAC.COM DRI'ó  Macrï  Assembler®  (requireä foò re-assemblù  oæ  ZCPR3 �                 Commanä Processoò anä Systeí Segments.) M80.COM Microsofô Z8° Macrï Assembler® \ ¾ foò re-assemblinç utilities® L80.COM Microsofô Relocatablå Linker® / .pa ŠOtheò files: ZCPR3.ASM ZCPR3 CCÐ source SYSENV.ASM Environmenô Descriptor SYSRCP.ASM Residenô Commanä Packages SYSFCP.ASM Flo÷ Commanä Packages SYSNDR.ASM Nameä Directories  +----------------------------------------------------------------------------+ ü Yoõ shoulä havå thå ZCPR3 installatioî manuaì printeä aó reference¬ iæ you | ü intenä oî changinç anything® It can be found as Z3INSTAL.LBR on many RCPMs.| +----------------------------------------------------------------------------« Stepó foò installation ====================== Tï creatå CPM59.COM: 1. Yoõ shoulä starô bù placinç youò CP/Í distributioî diskettå intï drivå �         Aº  anä  pushinç RESET®  Next¬  answeò alì oæ thå questionó foò  youò �         specifiã  system¬  anä placå á blanë disë iî Bº  wheî iô telló yoõ to® �         Wheî  thå  wholå  procesó ió  completed¬  takå  ouô  thå  Distributioî �         Diskette¬  anä replacå iô witè thå disë froí Bº  anä pusè RESET® Jusô �         geô  ouô  oæ alì oæ thå Micro-Menuó bù typinç à tï geô tï  thå  Creatå �         Workinç  Disketteó  menu¬  anä theî á couplå oæ ó tï geô bacë  tï �         CP/M®  Aô thió point¬ yoõ shoulä ERAså PILOT.COÍ sï iô doesn'ô botheò �         uó anymore®  Theî puô thå CP/Í distributioî Diskettå intï Bº anä typå �         thisº PIÐ A:=B:TERMINAL.DAT          PIP A:=B:INIT.*�         Wheî thaô ió finished¬  yoõ maù puô thå Distributioî Diskettå awaù foò �         safekeepinç again® 2. Now¬  yoõ  wilì  uså MOVCPM‚ tï shrinë youò systeí tï á 59ë  systeí  bù �         typingº A>MOVCPÍ 5¹ *  NOTE:   Iæ yoõ ruî intï á SYNCHRONIZATIOÎ ERROÒ iî MOVCPM¬  thió meanó yoõ arå �         tryinç  tï uså MOVCPM‚ oî á differenô copù oæ CP/M‚ thaî thå  onå  whicè �         MOVCPM‚  ió seô uð foò (iô checkó seriaì numbers)®  Iæ  thå  Operatinç �         Systeí  anä  MOVCPÍ camå froí thå samå disk¬  yoõ shouldn'ô havå  thió �         problem¬ buô iæ yoõ do¬ yoõ wilì havå tï eitheò geô á ne÷ Distributioî �         Diskette¬  oò  trù ouô onå oæ thå messageó floatinç arounä whicè  telì �         yoõ ho÷ tï bypasó thå Syncè Error®          Theî yoõ typå SYSGEN¬  answeò thå firsô questioî witè ¬ thå seconä �         witè  "A"¬  thå thirä witè á ¬  anä thå fourtè witè  á  ®  Thå �         systeí  wilì  probablù  hang¬  sï  jusô hiô thå RESEÔ  buttoî  oî  thå �         computer. .pa Š3. Thå computeò shoulä sigî oî witè á messagå indicatinç thaô iô ió á 59ë �         CP/Í 2.² Rev® x.ø system®         Yoõ no÷ typå INIT¬ placå anotheò blanë diskettå intï Bº anä answeò alì �         of the questions again like you did before. 4. Wheî  thaô ió completed¬  yoõ shoulä booô thå computeò witè  thå  disë �         whicè waó jusô iî Bº Iô wilì comå uð witè thå familiaò PILOT?¬ anä thå �         A¾ prompt. �         Nexô yoõ shoulä typå SYSGEN¬  answeò Á tï thå firsô question¬   �         prompt¬ type: SAVÅ 4¶ CPM59.COM ------------------------------------------------------------------------------ EXPLANATIOÎ OÆ ALÌ OÆ THIÓ STUFF Whaô yoõ havå jusô done¬  ió creatå á 59ë CP/Í system¬  initializå iô witè thå � correcô  informatioî abouô youò particulaò computer¬  anä savå iô intï á  filå � calleä  CPM59.COM®  Don'ô  worrù abouô thå facô thaô iô tooë ³  disketteó  anä � abouô 2° minuteó tï dï it¬ it'ó alì downhilì froí here... Now¬  yoõ ask...whaô thå hecë ió á 59ë system??¿  Well¬  whaô yoõ starteä  ofæ � witè waó á 64ë system® Thaô is¬ yoõ werå usinç alì availablå memorù otheò thaî � thaô useä bù youò operatinç system¬ foò thå TPÁ (Transienô Prograí area© whicè � ió wherå .COÍ fileó run® Righô abovå thå TPÁ ió thå Operatinç System® Wheî yoõ � makå á 59ë system¬  yoõ arå shiftinç thå locatioî oæ thå operatinç systeí dowî � bù  5ë  (thuó  shrinkinç youò TPÁ bù 5k)®  Thió leaveó thaô 5ë  uð  abovå  thå � operatinç system¬  protecteä froí youò programs® Thå reasoî wå madå thaô spacå � uð  therå ió becauså ZCPR3 useó iô foò extensionó tï thå operatinç systeí sucè � aó thå Residenô Commanä Package¬  anä foò otheò buffers®  Sï now¬ yoõ caî looë � aô thå memorù mað above¬ anä seå ho÷ everythinç fitó iî memory® Well¬  É caî anticipatå youò nexô question..®  Buô whaô abouô thaô 5ë ??¿ Wilì � mù  programó stilì ruî witè lesó memory¿  Well¬  thå answeò ió thaô  yoõ  wilì � probablù neveò noticå thaô it'ó gone® Mosô programó wilì buffeò ontï disë wheî � theù  ruî ouô oæ memory®  Sï excepô foò á couplå oæ programó (usuallù languagå � compilers©  whicè onlù worë iî availablå memory¬  yoõ wilì havå absolutelù  nï � trouble®  Thå  solutioî  ió tï keeð á standarä CP/Í oò ZCPR² 64ë  systeí  disë � around iî caså oæ emergency..® (seå Miscellaneouó noteó aô thå bottoí oæ thió � file for more details) ------------------------------------------------------------------------------  Integratinç ZCPR3 anä Z3PATMÄ intï youò systeí image.  Alì yoõ neeä tï dï now¬ ió puô theså fileó ontï onå diskº (á  gooä onå tï uså ió thå onå yoõ jusô useä tï creatå CPM59.COÍ - jusô deletå � everythinç buô CPM59.COÍ, ASM.COM, anä DDT.COM...)  LDR.COM MAKE.SUB STARTUP.COM SYS.ENV SYS.FCP SYS.RCP SYS.NDR Z3PATMD.ASM ZCPR3.HEX EX.COM CPM59.COM DDT.COM ASM.COM  ŠYoõ no÷ havå tï customizå Z3PATMD.ASÍ (thå BIOÓ patch)¬  anä MAKE.SU foò youò � particulaò  versioî  oæ  thå  BIOS®  Jusô calì thå fileó  uð  witè  aî  editoò � (WordStaò  oò  NewWorä  iî  Non-Documenô modå wilì dï  fine©  anä  follo÷  thå � directionó aô thå toð oæ thå file. Wheî alì thaô ió finished¬ placå thå disë witè alì thoså fileó iî Aº anä type: ‰     A>EØ MAKÅ Thió wilì calì uð DDT¬  overlaù ZCPR3 oveò youò CCP¬  inserô thå patcè � intï youò BIOS¬  anä modifù á jump aô thå enä oæ thå Booô tï jumð tï thå patcè � insteaä  oæ tï GOCPM®  Then¬  iô saveó thå ne÷ operatinç systeí aó ZCPR3.COM® � Alì yoõ dï now¬ ió typå ZCPR3® Yoõ wilì seå SYSGEÎ comå uð oî thå screen® Jusô � answeò questioî ± witè á ¬  questioî ² witè "A"¬ questioî ³ witè ¬ anä � question 4 with another . Yoõ maù theî rebooô thå system®  (yoõ mighô wanô tï dï á completå restarô froí � poweò ofæ sï thaô thå computeò caî initializå memory.) Congratulations! Yoõ  no÷ havå á functioninç ZCPR3 system¡   Installinç thå ZCPÒ3 utilitieó  Yoõ wilì neeä tï instalì thå ZCPR3‚ utilitieó (.COÍ fileó froí Z3COM.LBR)® Havå � alì  thå  .COÍ fileó oî á singlå disk¬  anä alsï ZCPR3.INS‚ anä  SYS.ENV®  Theî � executå thå followinç command: A>Z3INÓ SYS.ENÖ ZCPR3.INS (iæ yoõ can'ô fiô alì thå fileó oî onå disk¬  jusô dividå theí uð ¦ ,makå surå � yoõ havå Z3INS.COM¬ SYS.ENV¬ anä ZCPR3.INÓ oî eacè disk) ALÌ ZCPR3 utilitieó wilì no÷ bå installeä anä readù tï use. Yoõ shoulä trù thå utilitù SHOW.COÍ whicè ió kinä oæ á diagnosticó prograí foò � ZCPR3®  Thió  wilì  givå  yoõ á gooä ideá whetheò  everythinç  ió  functioninç � properly® Oncå yoõ havå determineä thaô everythinç workó aó iô should¬ yoõ caî � gï  aheaä  anä SYSGEÎ youò diskó froí youò workinç ZCPR3  disk®  Anù  diskettå � Sysgeneä witè ZCPR3 wilì booô up¬  buô nonå oæ thå residenô utilitieó wilì  bå � loadeä  untiì yoõ loaä thå Systeí Segments¬  sï yoõ shoulä makå surå thaô  thå � disketteó yoõ normallù booô uð witè contaiî theså files:  STARTUP.COM LDR.COM SYS.ENV SYS.RCP SYS.FCP SYS.NDR  Theså  fileó onlù takå uð abouô 18k¬  buô thió coulä counô iî somå situations¬ � (especiallù oî aî MD-2© sï don'ô botheò witè theí excepô oî thå diskó yoõ wilì � bå bootinç from. .pa Š**************************** **ª Verù Importanô NOTEº *** ****************************  Modifyinç STARTUP.COM  STARTUP.COÍ ió á ZCPR² utility¬  foò thoså oæ yoõ noô familiaò witè ZCPR2®  Iô � containó  aî  initiaì commanä linå whicè ZCPR2/ZCPR³ executeó beforå iô  giveó � controì  oæ thå systeí tï thå user®  Tï changå thaô commanä  line¬  issuå  thå � followinç command: A>STARTUÐ S STARTUP‚  wilì  comå  uð witè á prompt®  Enteò ?‚ foò  help®  Witè  thå  STARTUP‚ � utility¬  yoõ caî havå ZCPR3‚ gï intï á menu¬ oò ruî anù typå oæ turnkeù systeí � yoõ  want¬  upoî coldboot®  Wheî yoõ changå thå commanä linå iî  STARTUP¬  yoõ � shoulä havå thå followinç commandó iî thió order¬ aó á minimuí requirement;  LDÒ SYS.ENV,SYS.NDR,SYS.FCP,SYS.RCP;WHÌ SYSTEM  Thió  loadó thå systeí segments,anä setó thå wheeì (privilegeä user© bytå  on® � Afteò that¬ yoõ caî havå iô gï intï MENU¬ MBASIà oò dBASE-II¬ etc® Iæ yoõ havå � á  verù lonç seô oæ startuð routineó (thå limiô ió currentlù 25µ  bytes)¬  yoõ � caî  dï iô iî ² startuð files®  Afteò yoõ dï alì thå initialization¬  yoõ  caî � executå anotheò STARTUÐ commanä linå (e.g®  Calleä STAR2.COM)¬  anä havå iô dï � thå  rest®  Tï creatå á STAR2.COM¬  yoõ caî eitheò uså ALIAÓ oò STARTUÐ Ó  anä � savå iô undeò á ne÷ name. MISCELLANEOUÓ NOTES 1®  Yoõ  shoulä probablù ruî SETUP.COÍ (Foò Rev®  ² machines© oò  SETBAUÄ � (foò Rev®  1© afteò thió wholå procesó tï ensurå thaô alì oæ thå defaultó  arå � seô correctlù foò youò systeí (sucè aó printeò port¬  bauä ratå oæ seriaì porô � etc.)®  Runninç  MOVCPÍ makeó alì oæ theså settingó gï bacë tï theiò  originaì � values® 2® Thå TERMCAÐ ió seô uð tï treaô thå terminaì jusô likå á TeleVideï 950® � Iæ thió ió noô satisfactorù (Iô shoulä bå finå foò almosô alì oæ thå terminaló � solä  witè  Morrowó includinç thå MDT-60/70¬  Freedoí 50/10° anä probablù  thå � MDT-2°  alsï - aó lonç aó iô useó standarä ADM-3Á Cursoò Addressing© theî  yoõ � wilì havå tï ediô thå SYSENV.LI file® 3®  Yoõ  maù encounteò problemó iæ yoõ arå usinç MEØ whicè waó configureä � usinç Sandù Berger'ó overlay®  Thió overlaù useó direcô BIOÓ calló foò consolå � outpuô  anä sincå yoõ havå changeä thå locatioî oæ thå BIOÓ witè  MOVCPM¬  yoõ � wilì  havå  tï  changå  thå overlaù foò thå correcô  positioî  oæ  thå  CONOUT‚ � routine®  Alì yoõ havå tï dï ió ruî TELL.COM‚ oî youò ne÷ ZCPR3‚ systeí anä finä � thå locatioî iô giveó foò youò Consolå Outpuô routine¬ anä patcè thaô locatioî � intï thå MEØ overlay®  Thå spoô tï changå ió dowî towardó thå bottoí afteò thå � porô anä modeí initializatioî routines. .pa Š4® Thió configuratioî ió seô uð foò á ² drivå systeí witè drivå Cº aó thå � Virtuaì Drive® ZCPR3 wilì noô recognizå driveó Ä oò E® Iæ yoõ havå morå thaî ² � drives¬  yoõ wilì havå tï modifù Z3HDR.LI anä reassemblå ZCPR3.ASM® Iæ yoõ dï � havå  tï reassemblå thå system¬  yoõ shoulä instalì ZCPR3 foò onå  morå  drivå � thaî yoõ actuallù have¬ sï iô caî bå thå Virtuaì Drive. 5®  Therå  ió á smalì probleí oæ compatibilitù betweeî ZEØ anä  SMARTKEY® � Yoõ  shoulä unloaä SMARTKEÙ beforå executinç ZEX¬  oò iô wilì senä thå  systeí � ofæ intï outeò space. 6® Therå havå beeî reportó oæ problemó witè NewWorä runninç undeò thå 59ë � systeí (lacë oæ sufficienô memory)®  Thå probleí haó beeî resolveä though¬ bù � thå releaså oæ neweò versionó oæ NewWord®  Iæ youò versioî oæ NewWorä ió  noô � at least Revision 2.x, then you can obtain an upgrade from NewStar for $25. GOOÄ LUCK!!!!! (EOF) drivå systeí witè drivå Cº aó thå � Virtuaì Drive® ZCPR3 wilì noô recognizå driveó Ä oò E® Iæ yoõ havå morå thaî ² � drives¬  yoõ wilì havå tï modifù Z3HDR.LI anä reassemblå ZCPR3.ASM® Iæ yoõ dï � havå  tï reassemblå thå system¬  yoõ shoulä instalì  Information on ZCPR3 and Z3MD-59K.LBR (implementation for Morrow MD computers) What is ZCPR3? ZCPR³ ió thå thirä versioî oæ ZCPÒ (Z8° Commanä Processoò � Replacement)® Thå maiî concepô oæ ZCPÒ ió thaô bù replacinç thå � standarä CCÐ (Consolå Commanä Processor© portioî oæ CP/Í witè á � morå powerfuì commanä processor¬ yoõ arå ablå tï implemenô manù � extensionó tï CP/Í whilå retaininç completå CP/Í compatibility. Somå oæ thå featureó whicè arå implementeä bù ZCPR³ areº ª Á Multiplå Commanä Linå Buffeò whicè noô onlù allowó � multiplå commandó oî á line¬ buô alsï provideó á simplå waù foò � programó tï chaiî tï onå anotheò withouô thå requiremenô foò á � SUBMIÔ file. ª Thå Flo÷ Commanä Package¬ whicè allo÷ IF-THEN-ELSÅ � structureó straighô froí thå commanä line. ª Á combinatioî oæ thå MCÌ buffeò anä Flo÷ Commands¬ whicè � makeó thå ne÷ batcè commanä processoò ZEØ verù powerful. ª Iî additioî tï beinç ablå tï conditionallù executå programó � baseä oî certaiî conditions¬ therå ió alsï thå abilitù tï brancè � tï commandó withiî ZEX/SUBMIÔ fileó witè thå uså oæ GOTO. ª Thå abilitù tï havå SHELLS¬ whicè arå programó thaô caî exiô � tï thå CP/Í leveì foò certaiî operations¬ anä theî automaticallù � bå re-invoked® ª Nameä directories¬ whicè caî bå implementeä eitheò iî � additioî to¬ oò iî placå oæ thå standarä CP/Í schemå oæ � Drive/Useò (DU:© form® Iî anù case¬ therå ió thå abilitù tï � displaù eitheò thå DU:¬ Directory¬ oò both¬ aó parô oæ thå � standarä CP/Í A¾ prompt. Somå oæ thå otheò featureó oæ ZCPR³ whicè É won'ô gï intï � toï mucè detaiì oî areº thå Residenô Commanä Package¬ whicè � containó somå oæ thå CP/Í residenô commands¬ aó welì aó somå ne÷ � oneó whicè arå quitå useful» wheeì useró anä passwords¬ whicè � limiô accesó tï certaiî commandó oò directorieó througè thå uså � oæ passwords» erroò handleró whicè allo÷ yoõ tï "gracefully¢ geô � arounä typoó iî lonç multiplå commanä lines» Z3TCAÐ (ZCPR³ � Terminaì Capabilities© buffeò whicè ió residenô iî memory¬ anä � allowó yoõ tï uså screeî orienteä utilitieó withouô á difficulô � installatioî procedure» anä ALIASes¬ whicè arå jusô .COÍ fileó � thaô contaiî á multiplå commanä linå tï automatå lonç procedureó � bù makinç theí onå singlå command. Everù onå oæ theså featureó ió utilizeä bù á seô oæ oveò 6° � utilitù programó thaô arå parô oæ thå ZCPR³ system® Theså includå � á seô oæ screeî orienteä utilitiesº Á filå manipulatioî utilitù � (VFILER)¬ á fulì screeî orienteä versioî oæ DU¬ anä á Memorù �ŠUtilitù (MU3© whicè letó yoõ ediô memorù witè á screeî orienteä � editor® Therå arå alsï twï menõ programó (MENU¬ anä VMENU© whicè � allo÷ yoõ tï creatå sophisticateä menõ driveî applications® Menuó � caî bå nesteä severaì layeró deep¬ anä caî bå useä tï makå � "Integrateä Softwarå Packages¢ ouô oæ standalonå CP/Í software. Aó foò documentation¬ therå arå HELÐ fileó foò alì oæ thå � ZCPR³ featureó anä utilities¬ aó welì aó programó foò readinç � theså fileó aô thå console¬ oò printinç theí ouô foò reference® � Therå wilì alsï bå á booë ouô sooî calleä "ZCPR3º Thå Manual¬" � whicè promiseó tï bå á comprehensivå referencå guidå tï ZCPR3® Do you need ZCPR3? Thå firsô thinç yoõ shoulä understanä abouô ZCPR³ ió thaô � althougè iô ió á verù powerfuì package¬ iô maù noô bå thaô usefuì � foò everyone® Thå ZCPR³ environmenô ió particularlù suiteä eitheò � tï Harä Disë users¬ tï peoplå whï spenä á loô oæ timå aô thå � systeí leveì interactinç witè manù differenô applicationó � programs¬ oò tï programmeró whï wisè tï seô uð menõ driveî � applicationó foò otheró tï use® Someonå whï turnó oî theiò computer¬ putó iî á disk¬ anä � spendó alì oæ theiò timå insidå oæ aî application¬ probablù haó � nï neeä foò ZCPR3® Iî fact¬ duå tï thå naturå oæ ZCPR3¬ theù maù � bå betteò ofæ withouô it® ZCPR³ (iî mù implementatioî anyhow)¬ � requireó abouô 5ë oæ memory® Thió meanó thaô certaiî operationó � whicè uså á loô oæ memorù maù bå morå difficulô oò impossiblå iæ � yoõ arå alsï usinç á prograí sucè aó SmartKeù whicè alsï useó uð � memory. Thå previouó paragrapè maù sounä likå É aí tryinç tï � discouragå yoõ froí gettinç ZCPR3¬ anä tï á certaiî extent¬ thaô � ió true® However¬ thå reasoî foò thió ió thaô ZCPR³ ió noô foò � thå beginner® É woulä ratheò noô seå someonå geô involveä witè � ZCPR³ iæ theù havå nï neeä foò it¬ ratheò thaî havå theí spenä � theiò (anä my© time¬ effort¬ anä moneù oî somethinç whicè maù noô � brinç theí mucè benefit® Iæ yoõ feeì thaô thå featureó É havå describeä arå oæ uså tï � you¬ theî bù alì means¬ yoõ shoulä looë intï ZCPR3® Buô iæ � nothinç herå soundó likå iô wilì helð you¬ oò iæ iô alì soundó � toï complicated¬ theî yoõ woulä probablù bå betteò ofæ withouô � ZCPR3¬ aô leasô foò thå timå being. ZCPR3 Structure Well¬ iæ yoõ havå gotteî thió faò anä stilì wanô tï kno÷ ho÷ � yoõ caî geô ZCPR3¬ theî herå yoõ goº Thå ZCPR³ systeí consistó of thå CCÐ replacement¬ anä thå � systeí segmentó (RCP¬ FCÐ etc.© whicè arå residenô iî memory® � Theså arå calleä thå "Core¢ oæ ZCPR3® Thå otheò partó oæ thå � systeí arå thå utilitieó anä thå HELÐ files® Š Yoõ alsï coulä geô thå sourcå codå tï thå utilities¬ anä tï � SYSLIB³ (thå librarù routineó requireä tï re-assemblå thå � utilities)¬ buô foò mosô people¬ therå ió nï neeä foò them® Iæ yoõ werå tï gï tï Echeloî Inc.¬ theù chargå $14¹ foò thå � Core¬ utilities¬ anä thå sourcå codå tï everything® Thå probleí � witè thió deaì ió thaô yoõ woulä havå tï modifù thå Corå tï worë � oî youò computer¬ aó welì aó writå á BIOÓ patcè tï dï thå correcô � Colä Booô initialization® However¬ É havå alreadù donå thå modificatioî whicè wilì � worë oî ANÙ Morro÷ MD-1¬ ² oò 3® Thió installatioî packagå ió � calleä Z3MD-59k.LBÒ anä containó everythinç yoõ neeä tï geô thå � Corå runninç oî youò system® Iô ió á verù simplå installation¬ � anä shoulä takå nï morå thaî á halæ houò oæ followinç directions. Thå wayó tï geô whaô yoõ neeä arå aó follows® Iæ yoõ havå á � modeí (120° bauä preferably)¬ thå cheapesô waù ió probablù tï � downloaä thå fileó froí á Remotå CP/Í system® Yoõ shoulä firsô � geô thå Z3MD-59K.LBÒ filå (whicè ió currentlù availablå oî thå � Glendalå RCP/Í oò thå LAMUÇ XBBS)® Iæ yoõ dï noô havå accesó tï á modem¬ oò livå toï faò awaù � foò thió tï bå practical¬ theî yoõ caî purchaså á floppù witè � thió packagå froí thå Loó Angeleó Morro÷ Useró Group® Thió disë � costó $· aô thå meetings¬ oò $1° througè thå maiì (checkó payablå � tï CASÈ oò Briaî Leytoî - wå don'ô havå á banë accounô yet...)® � Iî ordeò tï geô thå utilitieó anä HELÐ files¬ yoõ wilì havå tï � eitheò geô theí froí aî RCP/M¬ oò gï througè Echeloî (whï mighô � givå á speciaì deaì foò jusô thå utilitieó anä helð files)¬ � SIG/M¬ CP/MUG¬ oò anù oæ á numbeò oæ otheò useró groupó whicè caî � downloaä theså fileó tï Morro÷ format® Thå Loó Angeleó Morro÷ � Useró Grouð haó decideä NOÔ tï handlå orderó foò thå Utilitieó � anä HELÐ fileó duå tï theiò largå size®  - Briaî Leyton Addresseó anä otheò miscellaneouó information: Echeloî Inc® 10± Firsô Streeô Loó Altos¬ CA 94022 (415) 948-382° LAMUÇ Librarù Disketteó C/Ï Briaî Leytoî 1261³ Killioî St® No® Hollywood¬ CA 91607 Elliam Associates               (Has ZCPR3 and downloading capability) 24000 Bessemer Woodland Hills, CA 92367 LAMUG XBBS, Calabasas, Calif. (818) 340-9947   (Leave private message with name, Š address, phone number to SYSOP to get CP/M access password) ZCPR3 Metal BBS (415) 489-9005 Theså systemó arå uð 2´ hró excepô wheî iî uså bù SYSOP® Theù � supporô 300/120° baud. nù oæ á numbeò oæ otheò useró groupó whicè caî � downloaä theså fileó tï Morro÷ format® Thå Loó Angeleó Morro÷ � Useró Grouð haó decideä NOÔ tï handlå orderó foò thå Utilitieó � anä HELÐ fileó duå tï theiò largå size® ;This patch is for any Morrow MicroDecision MD-1, 2, or 3. The only ;changes which need to be made is to make sure you have the right ;location for GOCPM for your revision of the BIOS. ; BSL - 11/21/84 ; ; PATCH: Z3PATMD.ASM ; originally Z2PATCH.ASM ; AUTHOR: Richard Conn ; NOTE: This is a Patch to the MicroDecision BIOS (Rev. 1.6 or 2.3) ; ; Modified 11-21-84 for 59k ZCPR3 system (BIOS 1.6 or 2.3) ; by Brian Leyton ; Modified 9-4-84 for 62k ZCPR3 system (1.x BIOS). by Ted Silveira ; Modified 12-7-83 for Morrow BIOS rev 2.2 for ZCPR2 by Isaac Salzman ; ; ZCPR Equates ; zcpr3 equ 0c800h ;Base Address of ZCPR3 Itself for a 59K system gocpm equ 0dea3h ;GOCPM Entry Point in BIOS (Rev. 2.x) ;gocpm equ 0dea0h ;GOCPM Entry Point in BIOS (Rev. 1.x) mclbuf equ 0Fd00h ;Beginning of Multiple Command Line Buffer path equ 40h ;Base Address of External Path patch equ 0e700h ;Patch Begins Here ; ; Patch -- ; ; ; org patch ; mvi b,32 ;this zeroes high memory from 0ec00h to 0fbffh lxi h,0ec00h zloop: push b call zero128 pop b dcr b jnz zloop ; ; ; lxi h,clbase ;init command line lxi d,mclbuf ;copy into buffer mvi b,40 ;40 chars call move ; lxi h,pathbase ;init default path lxi d,path mvi b,10 ;10 bytes call move mvi a,0ffh ;set wheel byte non-zero sta 3eh lxi h,zcpr3 ;set pointer jmp gocpm ; ; ; zero128: mvi b,128 zerom: mvi m,0 inx h dcr b jnz zerom ret ; ; Move Routine ; move: mov a,m ;get stax d ;put inx h ;pt to next inx d dcr b ;count down jnz move ret ; ; Default Values ; clbase: dw mclbuf+4 ;pt to first char db 255 ;255 chars db 0 db 'STARTUP' ;default command db 0 pathbase: db 'A'-'@',0 ;goto A0 db 0 ; ; End of Patch ; end  of External Path patch equ 0e700h ;Patch Begins Here ; ; Patch -- ; ; ; org patch ; mvi b,32 ;this zeroes high:10C80000C329C8C329C8434F4D044420202043CD29 :10C81000474F202092CE53415645E1CD4A554D50C9 :10C820008ACE4E4F54452DCB003130FBC5791F1FAA :10C830001F1FE60F32C4CFCD7DCBCD50CBC179E6E3 :10C840000F32BFCFC455CBCD82CBCD49CB182131D0 :10C8500030FBAF3283F93C3287F92104FD2200FD21 :10C860003600E5CDF1CBAF3287F9E17EFE3B28E221 :10C870003130FBCDBECF2A00FDE57ECD93CB7723B3 :10C88000B720F7E1CDBDCAB728C5FE0328C17EFE9B :10C890003B20032318EE2200FD2200C9CD13C93A24 :10C8A00083F9FE01CABBC82105F6CD1ACDCACDCE8B :10C8B0002181F97EB7280423A628B53E00B7C29788 :10C8C000CECD17CDCACDCE2105ECCD1ACDCACACE5C :10C8D000C3C2CECDF9CA3A83F9E601201B3A80F9EA :10C8E00047B7281B3E023283F92A00C92284F92166 :10C8F00090F92200FDC370C8AF3230FBC34FC8218E :10C9000000007EB72806CD00CB2318F6CD31CBBF73 :10C91000C34FC811D0F9CDC9CA115C00CDC9CA1125 :10C92000D0F9CD60C920AC11D9F91AFE2020A4E5B8 :10C930002106C80603CD5DCCE13E0032BCC822D141 :10C94000CEE57ECDC4CA28032318F72200FDE1CD31 :10C95000BDCAC8115C00CD60C9CDBDCAC8116C008C :10C96000AF12323AC932FECC32DDC93AC4CF320BF3 :10C97000CDD50608CDE0C9D17E32B0C9FE3A202F10 :10C98000323AC923D5E5CD08CAE1D12809D5E5CD8C :10C9900047CAE1D120193AFECC12D513CDCFCAD166 :10C9A000AF32DDC9D50608CDE0C9D17E32B0C93E6F :10C9B00000EB01080009EB0603FE2E200623D5CD6F :10C9C000E0C9D1EB01050009EB3A0BCD127EFE2147 :10C9D000380ACDC4CA280523FE3D20F13E00B7C960 :10C9E000CD39CCC813FE2A20083E3F12CD01CA180B :10C9F000071223FE3FCC01CA10E6CD39CCC823185C :10CA0000F9E521DDC934E1C9EB237EFE413812D6B8 :10CA100040FE04302F32FECC237EFE20C8CDA2CCB7 :10CA2000D8E506027EFE20280DCDA2CC38152310B5 :10CA3000F37EFE20200DE1CD7ACCFE203006320BB5 :10CA4000CDAFC9E1AF3DC9EB231100FA1AB7281ADF :10CA50001313E5D506081ABE2004231310F8D1E1FC :10CA6000280BEB01100009EB18E2AF3DC9D5010816 :10CA700000EB09CD86CAD1C26ACA1B1A320BCD1B84 :10CA80001A32FECCAFC97EFE20C8E5CD31CB0D0AEF :10CA900050573FA01100FB3E09120E0AD5CD0500EC :10CAA000E1237E23E5CD58CC3620D1E106081ACD0E :10CAB00093CBBEC0FE20C8231310F3AFC97E23FE64 :10CAC0002028FA2BB7C8FE3BC9AF1213CDCFCA0638 :10CAD0000B3E20CDE1CAAF12133AC4CF12130603A6 :10CAE000AF121310FCC9CD2ECB4E6F2046696CE5FA :10CAF000C90E01CD0500C393CB3E0DCD00CB3E0A40 :10CB0000E5D5C50E025FCD0500C1D1E1C9F53E00F6 :10CB1000B72808F1E5D5C50E0518EAF1F5CD00CB2B :10CB2000F1C9115C000E14C5CD0500C1B7C9CDF91E :10CB3000CAE3CD37CBE3C97E23B7C8F5E67FCD0086 :10CB4000CBF1F818F20E1918091180000E1A18020C :10CB50000E0DC305005F0E0E18F8AF32F0F911D0BC :10CB6000F90E0FCD05003CC90E1018F7115C000E30 :10CB70001118F00E1218EC0E1318D73EFF5F0E209E :10CB800018D0CD7BCBE60F8787878721BFCFB63202 :10CB90000400C9E67FFE61D8FE7BD0E65FC9CDF90F :10CBA000CA3ABFCFC641CD00CB3AC4CFB72812FE98 :10CBB0000A3809D60AF53E31CD00CBF1C630CD009A :10CBC000CB3ABFCF3C473AC4CF4F2100FA7EB7C81B :10CBD00023B820167EB920123E3ACD00CB0608239A :10CBE0007EFE20C8CD00CB10F6C91111001918DD4A :10CBF000C92130FB7EFE2138101104FD0620CD5DD9 :10CC0000CCEB3E013283F91818CD9ECB3E3ECD00D1 :10CC1000CB0E0A1102FDCD05002103FD7E23CD5868 :10CC2000CC3600C9E5D5C5CD06DEB7C409DEFE1396 :10CC3000CC09DEC1D1E1FE03C97EFE213818FE3DDC :10CC4000C8FE5FC8FE2EC8FE3AC8FE2CC8FE3CC80F :10CC5000FE3EC8C3C4CAAFC9856FD024C97E1223A3 :10CC60001310FAC921640006087E2BFE2020041050 :10CC7000F81804FE482836215D000100117ECD39E8 :10CC8000CC281A23CDA2CC3816577907381107388B :10CC90000E81380B0738088238054F10E079C9C378 :10CCA000D3C8D630D8FE0A30023FC937C9215D004B :10CCB000110000060B7EFE20282DFE482829D630C4 :10CCC00038DDFE0A3806D607FE1030D3234F7A0728 :10CCD000070707E6F0577B070707075FE60FB2571E :10CCE0007BE6F0B15F10CEEB7DC9D5EB7E32FECC9A :10CCF000010D00097E320BCDCDFDCCD1C93E00B770 :10CD000020043ABFCF3C3DCD55CB3E00C37DCB3A4E :10CD10003E00B7C0C3D3C82109C846237EB7282028 :10CD200011D1F9C51ABE2010132310F81AFE2020C5 :10CD30000AC17E23666FAFC92310FDC1232318DC0F :10CD4000AF3DC9115C00D5131AFE202007060B3E2B :10CD50003FCDE1CAD1115C00CDEACC3A6D0006802E :10CD6000FE20280B0601FE412805FE532001057810 :10CD700032DFCD1E00D5CD6CCB2006CDE6CAAFD1BB :10CD8000C9CDD0CD281DD17B1CD5E6032005CDF91A :10CD9000CA1808CD31CB20207C20A03E01CDC7CDC4 :10CDA000CDB2CDCD24CC2805CD73CB20D4D13EFF40 :10CDB000B7C90608CDBECD3E2ECD00CB06037E23DF :10CDC000CD00CB0520F8C921800081CD58CC7EC98B :10CDD0003D0F0F0FE6604F3E0ACDC7CDE680EE0057 :10CDE000C9CD0FCDCD64CC6F2600E5216C00115C60 :10CDF00000D5060ECD5DCCD1CD3ACEE1C8E5CD5AF9 :10CE0000CE0E16CD63CBE1282B11800029EB7AB32F :10CE100028191BD511800019E5EBCD4CCB115C0016 :10CE20000E15CD27CBE1D1200B18E3115C00CD68A6 :10CE3000CB3C2003CDC8CFC349CBD513060B1AFE7C :10CE40003F28061310F805D1C9CD31CB0D0A414654 :10CE50004E204572726FF2AFD1C9115C00D5CDEA98 :10CE6000CCCD6CCBD1C8D5CD2ECB4572617365A02E :10CE7000215D00CDB2CD3E3FCD00CBCDF1CAD1FE7C :10CE800059C210C9D5CD77CBD1C9CD0FCDCDADCC41 :10CE9000183821000118333AD1F9FE2020243ADD58 :10CEA000F9FE10D2D3C811D0F9CDEACC3A0BCD326D :10CEB000C4CF3AFECCB728043D32BFCFCD82CBC31E :10CEC00070C8210001E5CDF6CEE1CDF9CA22EECE43 :10CED000210000118000D50600137ECDC4CA2806AB :10CEE0001223130418F4AF12E170CD49CBCD000129 :10CEF000CD49CBC370C822A0CFEBCD4CCB3E013285 :10CF0000DFCDAF32D2CF11D2CF21D0F97EB72004FE :10CF10003ABFCF3C1213010D00097E1213AF123A33 :10CF2000BFCF3C473AC4CF4F214000181F214000DB :10CF30007EB72837E67FFE2420043ABFCF3C472344 :10CF40007E23E67FFE2420033AC4CF4FE521D2CFD3 :10CF50007EB7280E23B820077EB92003E118D1231D :10CF600018EE702371233600E118C5AF32D0F921D5 :10CF7000D2CF7EB7CAD3C832FECC237E23E5320B94 :10CF8000CD2FE680200332DFCDCDFDCC11D0F9CD01 :10CF90006FCBE128DDE5CDD0CDE128D6CD5ACB2130 :10CFA00000013EC7BC3821E5EBCD4CCB11D0F9CD0B :10CFB00025CBE120061180001918E73D200A3E002C :10CFC000CD55CB3E00C37DCBCD2ECB46756CECC38F :02CFD0004FC848 :0000000000 3821000118333AD1F9FE2020243ADD58 :10CEA000F9FE10D2D3C811D0F9CDEACC3A0BCD326D :10CEB000C4CF3AFECCB728043D32BFCFCD82CBC31E :10CEC00070C8210001E5CDF6CEE1CDF9CA22EECE43 :10CED000210000118000D50600137ECDC4CA2806AB :10CEE0001223130418F4AF12E170CD49CBCD000129 :10CEF000CD49CBC370C822A0CFEBCD4CCB3E013285 :10CF0000DFCDAF32D2CF11D2CF21D0F97EB72004FE :10CF10003ABFCF3C1213010D00097E1213; ; Installation File for ZCPR3 Distribution, Phase 1 ; ; Filename.Typ Size Recs CRC Version ; 1 ALIAS .COM 4K 30 82D4 1.1 ; 2 CD .COM 1K 7 DA48 3.0 ; 3 CMDRUN .COM 1K 2 21B5 N/A ; 4 COMMENT .COM 1K 5 3C4A 2.0 ; 5 CPSEL .COM 1K 8 CCAA 1.0 ; 6 CRC .COM 6K 41 A89C 2.0 ; 7 DEV .COM 2K 14 F755 1.0 ; 8 DEVICE .COM 3K 17 153E 1.0 ; 9 DIFF .COM 4K 25 45A7 2.0 ; 10 DIR .COM 2K 16 9B8A 1.0 ; 11 ECHO .COM 1K 4 F2D6 1.0 ; 12 ERASE .COM 3K 20 E71E 5.0 ; 13 ERROR1 .COM 2K 12 5EB7 1.0 ; 14 ERROR2 .COM 3K 18 2F03 1.0 ; 15 ERROR3 .COM 1K 5 8542 1.0 ; 16 ERROR4 .COM 1K 5 86D1 1.0 ; 17 ERRORX .COM 1K 3 F941 1.0 ; 18 FINDF .COM 2K 14 D2A6 2.0 ; 19 GOTO .COM 1K 6 6ADA 1.0 ; 20 HELP .COM 3K 24 928B 5.0 ; 21 HELPCK .COM 2K 16 F3B3 1.0 ; 22 HELPPR .COM 5K 35 12E7 1.0 ; 23 IF .COM 3K 18 418D 1.1 ; 24 IFSTAT .COM 1K 3 6586 1.0 ; 25 LDR .COM 3K 20 A14E 1.0 ; 26 MCOPY .COM 4K 32 8341 4.0 ; 27 MENU .COM 4K 27 8CED 3.2 ; 28 MENUCK .COM 3K 20 3CDC 1.0 ; 29 MKDIR .COM 6K 41 014B 3.0 ; 30 NOTE .COM 1K 1 CB9E 1.0 ; 31 PAGE .COM 5K 36 DF9F 2.0 ; 32 PATH .COM 2K 10 E421 3.0 ; 33 PRINT .COM 6K 42 0492 2.0 ; 34 PROTECT .COM 4K 28 A130 3.0 ; 35 PWD .COM 1K 8 2B9B 1.0 ; 36 QUIET .COM 1K 4 DF6B 1.0 ; 37 RECORD .COM 1K 8 C2B4 3.0 ; 38 REG .COM 1K 8 1CC4 1.0 ; 39 RENAME .COM 4K 27 A2F2 3.0 ; 40 SAK .COM 1K 7 7842 2.0 ; 41 SETFILE .COM 1K 4 00B2 1.0 ; 42 SH .COM 4K 28 A89E 1.0 ; 43 SHCTRL .COM 1K 7 E37A 1.0 ; 44 SHDEFINE.COM 3K 23 0DEA 1.0 ; 45 SHFILE .COM 1K 4 634F 1.0 ; 46 SHOW .COM 8K 62 808A 1.0 ; 47 SHVAR .COM 3K 23 4D89 1.0 ; 48 SUB .COM 3K 20 59E5 3.0 ; 49 TCCHECK .COM 2K 14 7235 1.0 ; 50 TCMAKE .COM 6K 47 B3A0 1.0 ; 51 TCSELECT.COM 3K 22 7C29 1.0 ; 52 UNERASE .COM 2K 13 5057 1.0 ; 53 WHEEL .COM 2K 11 0CD0 3.0 ; 54 XD .COM 4K 28 465B 1.2 ; 55 XDIR .COM 8K 62 7248 2.0 ; 56 Z3INS .COM 2K 16 DFB7 1.0 ; 57 Z3LOC .COM 1K 7 A908 1.0 ; 58 ZEX .COM 6K 48 5E36 3.0 ; ; Installation Begins -- ; ; 1. General-Purpose Utilities ; comment.com crc.com diff.com dir.com echo.com erase.com findf.com mcopy.com page.com print.com protect.com rename.com unerase.com xd.com xdir.com ; ; 2. System-Specific Utilities ; cmdrun.com cpsel.com dev.com device.com ldr.com path.com quiet.com record.com reg.com sak.com setfile.com shctrl.com wheel.com z3loc.com ; ; 3. Script-Oriented Utilities ; alias.com menu.com menuck.com ; ; 4. Error Handlers ; error1.com error2.com error3.com error4.com errorx.com show.com ; ; 5. Command File Utilities ; goto.com sub.com zex.com ; ; 6. Named Directory Utilities ; cd.com mkdir.com pwd.com ; ; 7. HELP System ; help.com helpck.com helppr.com ; ; 8. SH ; sh.com shdefine.com shfile.com shvar.com ; ; 9. TCAP ; tccheck.com tcmake.com tcselect.com ; ; 10. IF ; if.com ifstat.com ; ; 11. NOTE is not installable due to its size, but that's OK ; since it does not use any ZCPR3-specific features ; ;note.com ; ; 12. Z3INS ; z3ins.com ; ; End of Installation ; .com protect.com rename.com unerase.com xd.com xdir.com ; ; 2. System-Specific Utilities ; cmdrun.com cpsel.com dev.à Z3ENV€ø* ÍPÍÇ!€Íj Í‹ ~þ/ÊM·ÊM\ÍîÍ£ Loading ÍåÍHá~#þ,Ê'ÉÍ£ LDR Syntax: LDR where entries in the list may be any of these types: FCP - Flow Cmnd Package ENV - Z3 Environ IOP - Input/Output Package NDR - Z3 Named Dir RCP - Resident Cmnd Package Z3T - Z3TCAP EntryÉÍoÍâÊCÍ\ÊÍ^ÍXÍ:ëþÀ*ì åÉ*T"Ü€"èÍ?¦Í»Í²Í»Íð¾Í»Í.ÊÍ»Õ&o)T])))|æþg}æ´<ÑÉå!Ñs#r#wÉÍ£ZCPR3 LDR, Version 1.0Ée!£Í/Ê)!¯Í/Ê)!»Í/Ê)!ÇÍ/Ê)!ÓÍ/Ê)!ßÍ/Ê)x2ë·ÉÕÅæ¾Â@#Â3ÁÑÉÍC is not a Valid TypeÉÍfͳ:\·ÊkG:iOÍœ¯2\ÍÆÊØ\ÍVÂ͘ÂëG!€x·Ê¤~þÃÂ%###Ã’þ ʰ¾Â%#¦og|µÊëG¯=É] æþ?ÈÂËÉÍC is Ambiguous¯ÉÍC Not Known to EnvironÃéÍC Not FoundÃéÍC EmptyÃéÍC Contains a Format FlawÃéÍ£ File ]Íã\È"ìëÅ!€€Í Õ\͘ÑÁÀÂbÍC is too Large*쀯Íä€ ë! Ã. ¯=ÉRCPZ3RCPIOPZ3IOPFCPZ3FCPNDR ENVZ3ENVZ3T @<2Å2ÝÍÒÕͯÑÕÍÑÁ:߷ɯ2à2ßͳy2áÕÍ€Ñ~2Þþ:Â[#:Ý·Ê2Í­ÊBÍ ÊB:Ý·ÂBÍ­:àÕͺѯ2ßÕÍ€Ñ~2Þ:Þë ëþ.Âq#ÕÍ€Ñë ë:á:ß·ÉÍMÈþ*“>?ͦÚ#þ?̦€ÍMÈ#Þå!ß4áÉåÕ͵ÑáÉÍâÊ>ë#ÍG~þAÚÚÖ@¸Ò2à#~þ ÈÍ£Øå~þ ÊôÍ£Ú#ÂÝ~þ ÂáÍ O Ío¹Ò2á¯Éá¯=ÉåÕÍÑáÉÍ.Ê>ë#·Ê>åÕ¾Â0#Â%ÑáÊAë ëï=É2á2à¯É~þ!Úmþ=Èþ_Èþ.Èþ:Èþ,Èþ<Èþ>È·Èþ;ɯÉÅ~ÍMÊœ#Í£Ú WyÚ Ú �Ú Ú ‚Ú OÂsyÁ·ÉÁ7ÉÖ0Øþ Ò­?É7ɯͺͺÉ > Íͯͳy¯ÂÍÉ~#ÂÔÉU ÍÝ0åÕ*T.~Ñá·ÉÕ*T^#V#~ëÑ·ÉÕ*T^#V#~ëÑ·ÉåÕ*T,~Ñá·ÉåÕ*T-~Ñá·ÉÕ*T^#V#~ëÑ·ÉÕ*T ^#V#~ëÑ·É"TɾÅÕåÍÊþÿÂi>ÿ·Ãj¯áÑÁÉÅÕåÍÊþÿÂiÍÊþÿÂiÃcåÅÍÊþÿÊ•¯ÁáÉåÅÍÊ·ÁáÉãÍ©ãÉÕÅõ~#·Êýþ Êç Í%þ ÊÔþ ÊÙþÊÙþÊÝîî îy·Ê® îyæG>�G�O> ÍRÂóîñÁÑÉÕÅõÍ>.ÍRÍñÁÑÉæþ ÄRÂÉþ ÒRþÊRþÊRþÊRþ ÊRþ ÊRõõ>^ÍRñÆ@ÍRñÉõÅÕåO*. aÕéáÑÁñÉõÅÕåÍ2šÿ Í2›ÕõÅÕå:š_Í:›_ ÍáÑÁñÉU õÅÕåY ÅÍÁXÍáÑÁñÉõÕåÍõÿ ÍOñGáÑñÉÅÕÍÑÁÉõå~·ÊáÍÌ w#ÃÔáñÉÅHÍíÁÉåõÅÕWÍ ÑÁñáÉÅHÍ ÁÉõÅÕWÍ ÑÁñÉr# x±Â ÉÍ. ÅH ë ëÁÉÍ7 Å ë ëÁÉÅHÍ7 ÁÉõÅÕå|ºÚW ÂH }»ÚW ~# x±ÂH áÑÁñÉ ë ë~+ x±Â] ÃR ÕÅ‹ ÿF#x·Ê� ~# Âs ¯yÁÑ!‹ ·É:Úf3>0Íf3yå*{3w+"{3áÉÁÍ6 *{3ÃÍ2Ow+Íê ¹Ê�3þ ÊÒ3Ã~3w+Íê ¹Ê~3Ô2Ê¢3w+ÃÍ2ÊÍ2úµ3ÃË2ÂË2Ñ{•=Áë*F=+~þ Ì6 þ Ì6 ëÉʵ3Íåõ3õå!Ê=Í� Òë3#6 +ëáñÉáñÉÍ>1þ&Êð3þ:Ê>1þ!Ðþ ÈõÍ Ê4ÍÊÇñÃ>1!4Ãr ?Stack overflow, try more P switches ÍÄ(:>þ ÊO4ë"ý?Íþ/ÁÑác4õ~#·Ê˜ Í« ÊŒ +ñÉõ~#·Ê˜ Í« œ Ø åÅOæ !à ¾Ê¿ #µ yÁáÉ  æþaØþ{Ðæ_Éw, try more P switches ÍÄ(:>þ ÊO4ë"ÉÕ*T^#V#~ëÑ·ÉåÕ*T,~Ñá·ÉåÕ*T-~Ñá·ÉÕ*T^#V#~ëÑ·ÉÕ*T ^#V#~ëÑ·É"TɾÅÕåÍÊþÿÂi>ÿ·Ãj¯áÑÁÉÅÕåÍÊþÿÂiÍÊþÿÂiÃcåÅÍÊþÿÊ•¯ÁáÉåÅÍÊ·ÁáÉãÍ©ãÉÕÅõ~#·Êýþ Êç Í%þ ÊÔþ ÊÙþÊÙþÊÝîî îy·Ê® îyæG>�G�O> ÍRÂóîñÁÑÉÕÅõÍ>.ÍRÍñÁÑÉæþ ÄRÂÉþ ÒRþÊRþÊRþÊRþ ÊRþ ÊRõõ>^ÍRñÆ@ÍRñÉõÅÕåO*. aÕéáÑÁñÉõÅÕåÍ2šÿ Í2›ÕõÅÕå:š_Í:›_ ÍáÑÁñÉU õÅÕåY ÅÍÁXÍáÑÁñÉõÕåÍõÿ ÍOñGáÑñÉÅÕÍÑÁÉõå~·ÊáÍÌ w#ÃÔáñÉÅHÍíÁÉåõÅÕWÍ ÑÁñáÉÅHÍ;This ZEX/EX file is for use with any Morrow MicroDecision MD-1, 2, or 3. ;The only change you have to make, is if you have a Revision 1 board (BIOS ;revision 1.x) then you must change the line below from S2DE8 to S2DE9. ; BSL - 11/21/84 ; ;Assemblying BIOS Patch ; asm z3patmd.aaz ; ;Integrating ZCPR3.HEX, and BIOS patch into 59K CP/M sysgen ;image ; era zcpr3.com ddt cpm59.com fd00,1500,0 izcpr3.hex r4500 iz3patmd.hex r4500 s2de8 00 e7 . g0 save 46 zcpr3.com ;ZCPR3.COM is ZCPR3 Sysgen Image .... ;Installation complete echo ^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G LDR COMfghMAKE $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃpÿ@ÿýÿÿ chdirÍ) þ)Ä�Ã@ >2/=ÃY+¯2/=ÃY$€@NAMES DIRÿZCPR2ö@wñþ,ÀÍU :·Ê¾̓":]þ ÊvþSÊþÍ]Íð STARTUP is used to execute an initial set of commands under ZCPR2 with Multiple Commands implemented. STARTUP is invoked by one of the following command lines: STARTUP <-- execute built-in commands STARTUP SETUP <-- define built-in commands (only the S in SETUP is needed) ÉÍ]Íð Multiple Command Line is not supported. STARTUP is based on the use of this buffer, and STARTUP cannot function without it. STARTUP is aborting. ÉÍð STARTUP, Version 1.4É*ë*~#fo~#·Â�*åëás#rë"å*##FáÍìʸ+ë*ëÍìʸÉÍ]Íð ** Command Line too Long -- Abort ***6Éw#Êü·Âì>ÿ·É¯ÉÍ]Íð STARTUP Setup Command (?=Help)? ÍuþCÊÓþDÊ0þXÊdÍð Setup Mode Commands are -- C -- Define STARTUP Multiple Command Line D -- Display STARTUP Values X -- Exit and Optionally Rewrite STARTUPÃÍð Current Multiple Command Buffer Contents is -- !Íö Íð New Line? ¯Íç ~#·Â(Íð Multiple Command Line -- --->!Íö ÍÊ ÃÍð Do you wish to update STARTUP (Y/N/=Y)? ÍuþNÈÍð STARTUP will write file to current disk/userÍð STARTUP File is !Í_Íð Enter New File Name or if OK: >ÿÍç ·Ê~Í8x¡þÿÊÐÍð ** Disk or User Specification Ignored **ÃÐÍk>.Í ~Í #ÂkÉÍ Í1 à Íð Writing File !Í_Íð to Disk ... Í¡ ÍÝ Í¡ Ͷ þÿÊê̓ͪ D!ëåÍ) !€ÑÍÓ ·ÂêÂÇÍà Íð DoneÉÍð Disk Output Error -- AbortingÉ~·ldr sys.env,sys.rcp,sys.fcp,sys.ndr;whl systempacheecho * SYSTEM INITIALIZEDLIZEDþ Âd1åÍÑ0áÃP1xÍÑ0ñGõñÂÃ0þ&ÂÃ0Ã6 ñáõ"F=Íê þ Ê�1þ Ê�1Í6 Ö1ÍÑ0Ã}1ͱ Âk1Ã¥1ͱ úk1ÍÑ0ß1Íê þ;ÊÇ1ù1ÍÆ:ÍÑ0þ Êž:Íê ù1ÍÆ:ÍÆ:þ ÊÊ1þ ÊÊ1·Íí:"%@Êž:þ ÊžSTARTUP COMÕ>ÿ2* 2+ $Õ¯ÂEÑå~#þ:Êaþ,ʼþ!Ú¼ÃMá~Í1 þAÚzÖAþÚu¯ÑÉ<2* #~þ:ʽþ?Â’2+ #~þ:ʽÃr¯G~#þ:ʰÖ0Úrþ ÒrOx‡‡€‡�GÔxþ Òr2+ ýá~þ:ÂÄ#~þ,ÊÏþ!Òç >?ÂÔ:* G:+ OÑ>ÿ·ÉÍ ~þ.Âû#Í ÃÚÍ! ÃÚÍ, Ê! þ* >?à # Í, È#à > Â! Éÿÿ~Í1 ·Èþ!ÚO þ=Èþ_Èþ.Èþ:Èþ;Èþ,Èþ<Èþ>ɾÉÅå¯2à ~Í1 Ö0Úu þ Úl ÖþÒu >2à #ÃW ~Í1 O+~Í1 Gá:à Êî yþHʵ þXʵ þOÊË þQÊË xþBÊá Íò ~Í1 þDÂî #Ãî Í ~Í1 #þHÊî þXÊî {7ÁÉÍR ~Í1 #þOÊî þQÊî ÃÇ Í} ~Í1 #þBÂÇ {·ÁÉÅ~Ö0Ú þ Ò õå!  T]áñƒ_zÎ#Ãö {ÁÉÅ~Í1 Ö0ÚO þ Ú6 ÖþÒO õå!Â= T]áñƒ_zÎ#Ã! {ÁÉÅ~Ö0Úz þÒz õå!Âh T]áñƒ_zÎ#ÃV {ÁÉÅ~Ö0Úž þÒž å!T]áƒ_zÎ#Ã� {ÁÉÅÕåõë¯w ÍA ñáÑÁÉÍÝ åÅÍ) ÁáÉåÅÍ) þÿÊÐ ¯ÁáÉåÅÍ) ÁáÉåÅÍ) ÁáÉö Èdr sys.env,sys.rcp,sys.fcp,sys.ndr;whl systempacheecho * SYSTEM INITIALIZEDLIZEDŠ5ÁÞÅÍU þ:ÌU ÍÀ·ðOæÂ^5yæÂf5yæ Ân5yæ@Â{5É:@=2@É:@<2@É:@·À:ó<·ÈÃê(:@·À#~þÈÿÕÅ2µ ê  Í!ë ~#…o|Îg6:µ ·Êç !ì ~·Êç Í1 w#ÃÚ ÁÑ!ì :ë ÉãÍö ãÉÕÅõ~#·ÊJ þ Ê4 Í× þ Ê! þ Ê& þÊ& þÊ* Ãû Ãû Ãû y·Êû Ãû yæG>�G�O> Í Â@ Ãû ñÁÑÉõ|ÍY }ÍY ñÉõõÍ< Íg ñÍg ñÉæþ Út Æ7Í ÉÆ0Í Éõõ¯2ž Ê õõ>2ž ñÅdÍŸ  ÍŸ Æ0Í ÁñÉ^�Ú© á €õy·Â¾ :ž ·Ê¾ > Í ñɯ2ž yÆ0Í ñÉõ> Í > Í ñÉþ Ò þÊ þÊ þÊ þ Ê þ Ê õõ>^Í ñÆ@Í ñÉÅÕå*.  ÕéáÑÁÉõÅÕåO*. $ ÕéáÑÁñÉÅÕÍÑÁÉæþaØþ{Ðæ_ÉÉÅHÍJ ÁÉåõÅÕWÍk ÑÁñáÉÅHÍ` ÁÉõÅÕWÍk ÑÁñÉr# x±Âk Éõ{…ozŒgÒ� ñ7Éñ·Éõ}“o|šgÒ� Ã~ õ§}o|g}ÎoñÉõ}|g}oñÉõ§}o|gÒ� Ã~ õì õ§|g}oÒ� Ã~ õ}£o|¢gñÉõ}³o|²gñÉõ}«o|ªgñÉÍê #Éõ}/o|/gñÉõÅÕ¯2:å!"8áͼ Ò å*8}ƒo|Šg"8Ò>ÿ2:áëͪ ëÂÑÁ*8::·Ê� Ã~ 3õÍõÅå!"8á|ºÚ}ÂR}»Ú}ͪ å*8͸ "8}“o|šgÚu"8á}öoÃváÂTÁñÉ!Ãz!Š$.É*8}ƒo|Šg"8Ò>ÿ2:áëͪ ëÂÑÁ*8::·Ê� Ã~ 3õÍõÅå!"8á|ºÚ}ÂR}»Ú}ͪ å*8͸ "8}“o|šgÚu"8á}öoÃváÂTÁñÉ!F/ ÍF/DMA Address for Disk I/O: *ÉÍñÉ:ß·È*Ë|µÊwÍF/ Address of Memory-Resident Named Directory Buffer: ÍñæÍF/ No Memory-Resident Named Directory BufferÍF/ Number of Named Dirs Allowed: :ÍÍC0ÍF/ Named Dir File: !ÎÍÉͤ/ÍF/ HexÉ~·Ê þ Ê4 Í× þ Ê! þ Ê& þÊ& þÊ* Ãû Ãû Ãû y·Êû Ãû yæG>�G�O> Í Â@ Ãû ñÁÑÉõ|ÍY }ÍY ñÉõõÍ< Íg ñÍg ñÉæþ Út Æ7Í ÉÆ0Í Éõõ¯2ž Ê õõ>2ž ñÅdÍŸ  ÍŸ Æ0Í ÁñÉ^�Ú© á €õy·Â¾ :ž ·Ê¾ > Í ñɯ2ž yÆ0Í ñÉõ> Í > Í ñÉþ Ò þÊ þÊ þÊ þ Ê þ Ê õõ>^Í ñÆ@ÍÃZ3ENV@ìöúýÿ€ø0û €ùÐùû>P„PB:fB:PB:fB:SH VAR TVI 950  *=%+ %+ t)(MD-SMKEYDOC! !"#MDJUMPERTXT $%MD2DSK TXT9&'()*+,-MD2TOMD3FIX./0AUTOFORMPIL1MD3SETUPMAC82345678Z3MD-59KWS €9:;<=>?@ABCDEFGHZ3MD-59KWS FIJKLMNOPQZ3MDINFOTXT>RSTUVWXYZ3PATMD ASMZ[ZCPR3 HEX-\]^_`aZCPR3 INSbcdeLDR COMfghMAKE SUBiSTARTUP COMjklmSYS $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååZ3FCPIF ËöELSE�öFI nöXIF _öT 4÷F >÷EM†÷ER ÷EXv÷INH÷NU÷TC"÷WH+÷ÍKöIF É> ͶöãÍVöãÉ~#Ͷö·ø÷ÍÇöÍø÷(B!�ù¯w ÍÇö!�ù~·( õÍKöTïñæw $ÍKöNïÃDöÍÇö!�ù~G#æ(¦( ~/ Ox/G~ ±wÍDöFÍø÷(TxåÕÅõæ_ÍñÁÑáÉ> ëÍÇöÍø÷(k!�~#·(þ= ÷!]m ¾ X#øH]2Ü÷þ~ Íà÷ Íø ÍKö‡Ã©öõͨ÷ñ¸(&é:mþ (:ùþ!8 *©ø~·( ÍÛ÷( ÿÃ%øÍÛ÷(öÃ%ø!‡ù6åÍDöÍKöTrue? Íá6þ (Îæ_þT(ÈþY(Äþ (ÀÈÍ¿÷lÍ<(º®Í¿÷lÕÍÑ<(žÍ· –ž:†ù·(Ž–!m~#Ö0Øþ ÐOx‡‡€‡�Gî:l· Í<=_Í:y_ Ã>þ~ÉÖ08þ 0 !°ù…o|Îg¯=~ɯÉ!�ù~·(#¦È¯=É!ö~·ÈF#¸ ¾ #~#fo¯=É ã!�ù~·(þ€($#¦ +~æþw?@ABCDEFGHZ3MD-59KWS FIJKLMNOPQZ3MDINFOTXT>RSTUVWXYZ3PATMD ASMZ[ZCPR3 HEX-\]^_`aZCPR3 INSbcdeLDR COMfghMAKE SUBiSTARTUP COMjklmSYS ENVnSYS FCPoSYS $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååZ3RCPH dìCP TðECHODóERA åíLIST.îNOTE¤ìP gñPOKEòPROTžïREG MòREN XïTYPE8îWHL üòWHLQóSYS 1.0A![ìÍ«ì! ì~·È ÍÀó¸ì~#Âì##å!¶ìÍ«ìáÃoìåÕÅõæ_ÍñÁÑáÉãÍ«ìãÉ~#·ÈÍ”ìøÃ«ì xÍíʱó~·Êô{·Ìåì{þ(Í¥ì | ÍúóÍ•óáõÍÀóñÉ=æ`O€{�_ÕÆ _Ñæ€îÉ >?w#üÉ2íÍñó!@6ÍÊóÈÅÍíìÁ( Åë ͪóëÁÍØó é6!@~·ÈåÍGíá¯=Éx±È`i"Pí!"Wí·!|g}o´È"Wí"hí!#"híë*Pí}“|š8Ý*hí"ƒí*Wíë!}“o|šg"ƒí8×|µ(Óë*Wí"¦íÍÀí8Æ*ƒíë!Í­íÑÍØíëÍØí Nwy#÷ÉÍØíëÍØíë ~æOæ¹À#óÉ+DM)) ) @ ÉÍôÍô:m2î>ÍíʱóåÍúó" õáÍ÷ô >þI ÍÛô ] ͪóÍõÍ* õ~·ÊôÍÀóËÍôÍô>ÿÍô¯2ï:m2 ï>Ííʱó" õ* õ~·Êô:ï·( > Íúî> ÍúîÍ0ï] ͪó" õÍõÍ<ʱó>2?> Íúî> Íúî€yþ€8åÅ\Í·Áá C!€~æþ(7þ (þ ( þ (ÍúîÊRîÍúîÊRî> ÍúîÊRîxæ ò #Í•óÊRî©\ÍÃRîåÕÅ_>·(ÕÍÑ{þ :ï· !?5 6>þP(Í0ï¯=ÁÑáÉåÍ¥ì Typing !]ÍúóÍ1ôÍÞóáõÍÀóñþÊôþÉÍôÍô!mͺôÍñóÍŽôÊô!\å#m O~q#÷ÍÊóʱóÍíìë#Í÷ôÂôÑÍ<ʱóÃôÍôÍô¯2ð!mþI( þR( þS( ð 2ð÷&€ó.€ï"0ð>Ííʱó" õ * õ~·ÊôÍÀóåÍúó" õÍ¥ì Set to R¯*0ðW|·(OyÍ”ì}·( Í¥ì and SYÓ>·á(Íæô ¸] ͪó!}ÍGð|ÍGð\͘·(ö€ÉæÉÍôÍô]þ !m ͪó!\låÕ# ¾ #øÍÃôó>ÃôóÍôÍô!�Í…ôÄGôÍ¥ì PeeëÍ8ôÕë ëÍ…ô(ÍGôáÍ�ñ"qñÃôz¼Ø {½ÈØÍÀó|Íèñ}ÍîñÍ1ôå~Íèñ#ùá> Í”ìÍ¥ìü~.æþ 8þ(OyÍ”ì#ëÍ¥ìüÍ•óµõÍ¥ì ñÅOÍùñyÁæÆ0þ:8ÆÔìÍôÍô!�Í…ô(.ÍGôÍ¥ì PokåÍ8ôÕÍ…ôÊôþ"( ÍGô{ÑìÑ#~·Êô#öÍ¥ì Arg¿Ãô!]~õþA8#~ÍæòñþS(<þP(2þM(1¯GÍòòxþ ÊÀóÍ¥ì Reg xÆ0Í”ìÍ¥ì ½ÅͶòÁxæÌÀó#×45mÖ08þ 0 Ox‡‡€‡�GìpÍ¥ì ~dÍÌò ÍÌòÆ0Ôì0�8ú€_zþ0 y·(zÍ”ì {ÉÖ08þ 0Gx!°ù…o|ÎgÉ!]~þ (<ó¾ #ø>ÿ¯2>Í¥ì Wheel Byte :>·(Í¥ìOÎÉÍ¥ìOFÆÉSYSTEM !�~#þ (úGþ$(+~·(þ (Í|ó#òxþ$ Íuó> > êxþ$À> Í|ó> OåÅ xþ$ Í�óÁáÉ*éåÕÅÿÍÁÑáþÊôþÉ~#úÉÍ¥ì No FileóÃô> Í”ì> ÔìÅå\Í<áÁÉÅåðåÕÅÍÁÑáæþaØæ_É:i_ ÃÍ¥ì Í ô>.Í”ì~#Í”ìùÉÑá"ôåÕÉ!é:>·ÀñÍ¥ì No WheeìÉÍ¥ì - ÉÍ¥ì at zÍîñ{Ãîñ~þ!Ø#Ö08%þ 8Öþ0OzæðW{_æ²W{æð±_ÓÉÍ¥ì Num¿Ãô~#þ (ú+·ÉÍ·ôÍÊó(ÍíìëåÍúóáÍ÷ô ÍÛô \ͯ=ɯÉ!]å ~æþ?(#öÑÉáÍúóÍ¥ì is AFÎÃôÍ¥ì - ErasåÍ¥ì (Y/N)? ÍÞóþYÉå ~æ€õ! õÄ«ìñáÉ is R/Ï!\å ¯Í íÑÉëÍ8ôÕë ëÍ…ô(ÍGôáÍ�ñ"qñÃôz¼Ø {½ÈØÍÀó|Íèñ}ÍîñÍ1ôå~Íèñ#ùá> Í”ìÍ¥ìü~.æþ 8þ(OyÍ”ì#ëÍ¥ìüÍ•óµõÍ¥ì ñÅOÍùñyÁæÆ0þ:8ÆÔìÍôÍô!�Í…ô(.ÍGôÍ¥ì PokåÍ8ôÕÍ…ôÊôþ"( ÍGô{ÑìÑ#~·Êô#öÍ¥ì Arg¿Ãô!]~õþA8#~ÍæòñþS(<þP(2þM(1¯GÍòòxþ ÊÀóÍ¥ì Reg xÆ0Í”ìÍ¥ì ½ÅͶòÁxæÌÀó#×45mÖ08þ 0 Ox‡‡€‡�GìpÍ¥ì ~dÍÌò ÍÌòÆ0Ôì0�8ú€_zþ0 y·(zÍ”ì {ÉÖ08þ 0Gx!°ù…o|ÎgÉ!]~þ (<ó¾ #ø>ÿ¯2>Í¥ì Wheel Byte :>·(Í¥ìOÎÉÍ¥ìOFÆÉSYSTEM !�~#þ (úGþ$(+~·(þ (Í|ó#òxþ$ Íuó> > êxþ$À> Í|ó> OåÅ xþ$ Í�óÁáÉ*éåÕÅÿÍÁÑáþÊôþÉ~#úÉÍ¥ì No FileóÃô> Í”ì> ÔìÅå\Í<áÁÉÅåðåÕÅÍÁÑáæþaØæ_É:i_ ÃÍ¥ì ; LIBRARY: SYSENV.LIB ; AUTHOR: Richard Conn ; Version: 1.0 ; Date: 18 May 84 ; Previous Versions: None ; ; SYSENV is the definition for my ZCPR3 environment. ; sysenv macro ; ; Environment Descriptor ; If inline, there is a leading JMP just before this ; envorg1: db 'Z3ENV' ; Environment ID db 1 ; class 1 environment (external) dw expath ; external path address db expaths ; number of 2-byte elements in path dw rcp ; RCP address db rcps ; number of 128-byte blocks in RCP dw iop ; IOP address db iops ; number of 128-byte blocks in IOP dw fcp ; FCP address db fcps ; number of 128-byte blocks in FCP dw z3ndir ; NDR address db z3ndirs ; number of 18-byte entries in NDR dw z3cl ; ZCPR3 Command Line db z3cls ; number of bytes in Command Line dw z3env ; ZCPR3 Environment Descriptor db z3envs ; number of 128-byte blocks in Descriptor dw shstk ; Shell Stack address db shstks ; number of shsize-byte entires in Shell Stack db shsize ; size of a Shell Stack entry dw z3msg ; ZCPR3 Message buffer dw extfcb ; ZCPR3 External FCB dw extstk ; ZCPR3 External Stack db 0 ; quiet flag (1=quiet, 0=not quiet) dw z3whl ; address of Wheel Byte db 4 ; Processor Speed in MHz db 'C'-'@' ; maximum disk db 31 ; maximum user db 1 ; 1=OK to accept DU, 0=not OK db 0 ; CRT selection (0=CRT 0, 1=CRT 1) db 0 ; Printer selection (n=Printer n) db 80 ; width of CRT 0 db 24 ; number of lines on CRT 0 db 22 ; number of lines of text on CRT 0 db 132 ; width of CRT 1 db 24 ; number of lines on CRT 1 db 22 ; number of lines of text on CRT 1 db 80 ; width of Printer 0 db 66 ; number of lines on Printer 0 db 58 ; number of lines of text on Printer 0 db 1 ; form feed flag (0=can't formfeed, 1=can) db 102 ; width of Printer 1 db 66 ; number of lines on Printer 1 db 58 ; number of lines of text on Printer 1 db 1 ; form feed flag (0=can't formfeed, 1=can) db 80 ; width of Printer 2 db 66 ; number of lines on Printer 2 db 58 ; number of lines of text on Printer 2 db 0 ; form feed flag (0=can't formfeed, 1=can) db 102 ; width of Printer 3 db 66 ; number of lines on Printer 3 db 58 ; number of lines of text on Printer 3 db 0 ; form feed flag (0=can't formfeed, 1=can) db 'SH ' ; shell variable filename db 'VAR' ; shell variable filetype db ' ' ; filename 1 db ' ' ; filetype 1 db ' ' ; filename 2 db ' ' ; filetype 2 db ' ' ; filename 3 db ' ' ; filetype 3 db ' ' ; filename 4 db ' ' ; filetype 4 ds 80H-($-envorg1+3) ; make exactly 80H bytes long ; (+3 compensates for leading JMP) ; ; Terminal Capabilities Data ; envorg2: DB 'TVI 950 ' ;Name of Terminal DB 'K'-'@' ;Cursor UP DB 'V'-'@' ;Cursor DOWN DB 'L'-'@' ;Cursor RIGHT DB 'H'-'@' ;Cursor LEFT DB 00 ;CL Delay DB 00 ;CM Delay DB 00 ;CE Delay DB 1bh,'*',0 ;CL String DB 1bh,'=%+ %+ ',0 ;CM String DB 1bh,'t',0 ;CE String DB 1bh,')',0 ;SO String DB 1bh,'(',0 ;SE String DB 0 ;TI String DB 0 ;TE String ds 80H-($-envorg2) ; make exactly 80H bytes long ; ; End of Environment Descriptor ; endm  of text on Printer 3 db 0 ; form feed flag (0=can't formfeed, 1=can) db 'SH ' ; shell variable filename db 'VAR' ; shell variable filetype db ' ' ; filename 1 db ' ' ; filetype 1 db ' ' ; filename 2 db ' ' ; filetype 2 db ' ' ; filename 3 db ' ' ; filetype 3 db ' ' ; filename 4 db ' ' ; filetype 4 ds 80H-($-envorg1+3) ; make exactly 80H bytes long ; (+3 compensates for leading JMP) ; ; Terminal Capabilities Data ; envorg2: DB 'TVI 950 ' ;Name of Terminal DB 'K'-'@' ;Cursor UP DB 'V'-'@' ;Cursor DOWN DB 'L'-'@' ;Cursor RIGHT DB 'H'-'@' ;Cursor LEFT DB 00 ;CL Delay DB 00 ;CM Delay DB 00 ;CE Delay DB 1bh,'*',0 ;CL String DB 1b; SYSTEM SEGMENT: SYS1.FCP ; SYSTEM: ZCPR3 ; CUSTOMIZED BY: RICHARD CONN ; ; PROGRAM HEADER: SYSFCP.LIB ; AUTHOR: RICHARD CONN ; ; ; This program header defines the IF Conditions to be placed ; into the target SYS.FCP file (generated by assembling SYSFCP.ASM). ; ; ; 1. IF NEGATION ; ; The following equate determines if leading negation is to be ; allowed. If this equate is TRUE, then forms like the following are ; permitted: ; IF ~EXIST filename.typ ; ; meaning to complement the meaning of the test (the above returns TRUE ; if filename.typ does NOT exist). ; IFONEG EQU TRUE ; ; Assuming IFONEG to be TRUE, the following equate defines the ; character to be placed in front of the IF option to indicate that ; negation is to be performed. In the above example, this character ; was tilde (~). ; NEGCHAR EQU '~' ; ; 2. IF: T (TRUE) or F (FALSE) ; ; Setting the following equate to TRUE enables the simple T and F ; options to IF. The format of this option is: ; ; IF T or IF F ; ; and it always returns TRUE or FALSE, resp. ; IFOTRUE EQU true ; ; 3. IF: EM (EMPTY) ; ; Setting the following equate to TRUE enables IF to test to see if ; the indicated file is empty or not. The format of this option is: ; ; IF EM dir:filename.typ ; ; and it returns TRUE if the indicated file does not exist or is empty. ; IFOEMPTY EQU true ; ; 4. IF: ER (ERROR) ; ; Setting the following equate to TRUE enables IF to test the error ; code byte (program error code byte). If this byte is 0 (no error), it ; returns TRUE, else it returns FALSE. The format of this option is: ; ; IF ER ; IFOERROR EQU TRUE ; ; 5. IF: EX (EXIST) ; ; Setting the following equate to TRUE enables IF to test for the ; existence of a file. The format of this option is: ; ; IF EX dir:filename.typ ; ; and it returns TRUE if the indicated file exists. ; IFOEXIST EQU TRUE ; ; 6. IF: IN (INPUT) ; ; Setting the following equate to TRUE enables user input of the ; character T (or any other character for FALSE). ZEX processing is ; suspended for this single-character input. The format of this option is: ; ; IF IN ; ; and the IF FCP command responds with: ; ; IF True? ; ; to which the user types T, Y, SPACE, or CR to set the IF to TRUE and ; anything else to set the IF to FALSE. ; IFOINPUT EQU TRUE ; ; 7. IF: NU (NULL) ; ; Setting the following equate to TRUE enables IF to test to see if ; the second argument which follows is NULL (not specified) or not. This ; test is particularly useful in command file processing to see if, for ; example, argument $2 exists and to include it if it does. The format of ; this option is: ; ; IF NU ; or: ; IF NU arg ; ; If the first format is encountered, IF NU returns TRUE; IF NU returns ; FALSE with the second format. ; IFONULL EQU TRUE ; ; 8. IF: n (Register Value) ; ; Setting the following equate to TRUE enables IF to test to see if ; the indicated register contains the indicated value. If this is preceeded ; by the NEGCHAR and IFONEG is TRUE, then this tests to see if the indicated ; register does not contain the indicated value. Registers are one-byte ; memory buffers, and are identified by the digits 0 to 9. The format of ; this option is: ; ; IF n val ; ; Example: ; IF 0 -- if Reg 0 = 0 ; IF 0 5 -- if Reg 0 = 5 ; IF 5 2 -- if Reg 5 = 2 ; IF ~0 -- if Reg 0 <> 0 ; IF ~9 2 -- if Reg 9 <> 2 ; IFOREG EQU TRUE ; ; 9. IF: WH (WHEEL) ; ; Setting the following equate to TRUE enables IF to test to see if ; the Wheel Byte is set or not. If so, IF WHEEL is TRUE. ; IFOWHEEL EQU true ; ; 10. IF: TC (TCAP) ; ; Setting the following equate to TRUE enables IF to test to see if ; the ZCPR3 TCAP contains a terminal definition or not. This test is ; particularly useful in command file or alias processing to see if, for ; example, a Z3TCAP entry is defined and to invoke screen-oriented routines ; if it is.  The format of this option is: ; ; IF TC ; IFOTCAP EQU true ; ; 11. IF: fcb1=fcb2 ; ; Setting this equate to TRUE will enable IF to evaluate the ; equality condition, checking to see if the two FCBs contain the same ; values. If so, the IF is TRUE; if not, the IF is FALSE. ; ; Enabling this equate eliminates the need for the NULL test, since ; a NULL test can be performed by using the syntax: ; IF fcb1= ; IFOEQ EQU TRUE ; ; 12. COMIF - Run IF.COM Instead of FCP-Internal Processing ; ; Setting this equate to TRUE will cause an IF executed during an ; IF TRUE or NO IF state to look in the ROOT directory (base of path ; starting in current directory) for the file IF.COM, and, if found, ; load IF.COM and transfer control to it. If IF.COM is not found, then ; IF F is raised. Using IF.COM provides much more power and flexibility ; but also requires IF.COM to be present and takes up disk space. ; COMIF EQU false ; ; 13. NOISE - Have FCP Print IF Status Messages ; ; Setting this equate to TRUE will cause any change in the IF ; status to be printed to the user. This is useful for debugging purposes, ; but in normal runs, particularly where ALIASes are concerned, it is ; usually desirable to reduce the "noise" as much as possible and have ; this equate set to FALSE. ; NOISE EQU true ; ; END of SYSFCP CUSTOMIZATION ;  be performed by using the syntax: ; IF fcb1= ; IFOEQ EQU TRUE ; ; 12. COMIF - Run IF.COM Instead of FCP-Internal Processing ; ; Setting this equate to TRUE will cause an IF executed during an ; IF TRUE or NO IF state to look in the ROOT directory (base of path ; starting in current directory) for the file IF.COM, and, if found, ; load IF.COM and transfer control to it. If IF.COM is not found, then ; IF F is raised. Using IF.COM provides much more power and flexibility ; but also requires IF.COM to be present and takes up disk space. ; COMIF EQU false ; ; 13. NOISE - Have FCP Print IF Status Messages ; DATA FILE: SYSNDR.LIB ; AUTHOR: Richard Conn ; VERSION: 1.0 ; DATE: 24 Feb 84 ; ; SYSNDR.LIB defines the structure of the memory-based named directory. ; It also defines a few elements for it and is suitable for enclosure in ; an NDR file. ; ; The general structure is: ; ; DB Disk,User ; A=1 ; DB 'NDIRNAME' ; 8 chars ; DB 'PASSWORD' ; 8 chars ; ... ; other entries ; DB 0 ; End of NDR ; defdu macro ?disk,?user db ?disk-'@' ; Convert Disk db ?user ; User is OK endm sysndr macro defdu 'A',0 db 'BASE ' db ' ' defdu 'A',15 db 'ROOT ' db ' ' defdu 'A',16 db 'HELP ' db ' ' defdu 'B',0 db 'WORK ' db ' ' defdu 'B',1 db 'ASM ' db ' ' defdu 'B',2 db 'C ' db ' ' defdu 'B',3 db 'PASCAL ' db ' ' defdu 'B',4 db 'SCR ' db ' ' defdu 'B',5 db 'BASIC ' db ' ' defdu 'B',7 db 'TEXT ' db ' ' defdu 'B',8 db 'CAT ' db ' ' defdu 'B',9 db 'DATA ' db ' ' defdu 'C',0 db 'VIRTUAL ' db ' ' db 0 ;End of List endm ; ; End of SYSNDR.LIB ; e. ; ; The general structure is: ; ; DB Disk,User ; A=1 ; DB 'NDIRNAME' ; 8 chars ; DB 'PASSWORD' ; 8 chars ; ... ; other entries ; DB 0 ; End of NDR ; defdu macro ?disk,?user db ?disk-'@' ; Convert Disk db ?user ; User is OK endm sysndr macro defdu 'A',0 db 'BASE ' db ' ' defdu 'A',15 db 'ROOT ' db ' ' defdu 'A',16 db 'HELP ' db ' ' defdu 'B',0 db 'WORK ' db ' ' defdu 'B',1 db 'ASM ' db ' ' defdu 'B',2 db 'C ' db ' ' defdu 'B',3 db 'PASCAL ' db ' ' defdu 'B',4 db 'SCR ' db ' ' defdu 'B',5 db 'BASIC ' db ' ' defdu 'B',7 db 'TEXT ' db ' ' defdu 'B',; SYSTEM SEGMENT: SYS1.RCP ; SYSTEM: ZCPR3 ; WRITTEN BY: RICHARD CONN ; ; PROGRAM HEADER: SYSRCP.LIB ; AUTHOR: RICHARD CONN ; ; ; This program header selects the commands to be incorporated into ; SYS.RCP. It also allows selection of some options for these commands. ; ; ; 0. ID ; ; The following ID is a single character, displayed as a part of ; the RCP ID, which distinguishes this RCP from others made from the same ; base file (SYSRCP.ASM). ; RCPID EQU 'A' ; ; 1. CP COMMAND ; TRANSIENT COUNTERPART: MCOPY ; ; The following equate determines if the CP command is made available. ; Setting this equate to TRUE enables the CP command. ; ; The CP command copies one file from one DU to another or into the ; same DU under a different name. The syntax is: ; ; CP dir:ufn=dir:ufn ; ; Examples: ; CP f1.txt=f2.txt ; CP a15:=f1.txt ; CP a15:f2.txt=c5:f1.txt ; CPON EQU TRUE ; ; 2. DIR COMMAND ; TRANSIENT COUNTERPART: DIR, XD, XDIR ; ; The following equate determines if the DIR command is made available. ; Setting this equate to TRUE enables the DIR command. ; ; The DIR command displays the directory of files in alphabetical order ; across the lines to the user. The syntax is: ; ; DIR dir:afn ; ; Examples: ; DIR b7: ; DIR root:*.com ; DIRON EQU FALSE ; ; The DIR command allows two options. One is a flag to tell it ; to look at both System and Non-System files, and the other is a flag ; to tell it to look only at System files. By default, DIR looks at ; Non-System files. ; ; SYSFLG defines the character used to instruct DIR to look at ; both System and Non-System files. The recommended value is 'A' for All. ; ; SOFLG defines the character used to instruct DIR to look at ; only System files. The recommended value is 'S' for System. ; SYSFLG EQU 'A' SOFLG EQU 'S' ; ; The following equate determines if the directory displays are ; sorted by filename and filetype or by filetype and filename. Set SORTNT ; to TRUE to sort by name and type, FALSE to sort by type and name. ; SORTNT EQU TRUE ; ; The following equates define some features of the directory display. ; If WIDE is TRUE, the file names are spaced farther abort; if WIDE is FALSE, ; they are closer together (for a 64-column display). FENCE defines the ; character used to separate the file name entries in the display. ; WIDE EQU TRUE FENCE EQU '|' ; ; 3. ERA COMMAND ; TRANSIENT COUNTERPART: ERASE ; ; The following equate determines if the ERA command is made available. ; Setting this equate to TRUE enables the ERA command. ; ; The ERA command erases files. The syntax is: ; ; ERA dir:afn ; or: ; ERA dir:afn I -- Inspect ; ; Examples: ; ERA b7:*.bak ; ERA text:*.tmp i ; ERAON EQU true ; ; 4. LIST and TYPE COMMANDS ; TRANSIENT COUNTERPART: PRINT and PAGE ; ; The following equate determines if the LIST and TYPE commands are ; made available. Setting this equate to TRUE enables these commands. ; ; The LISTON equate can disable the LIST command without affecting the ; TYPE command. ; ; The TYPE command displays a group of files on the CRT while the ; LIST command prints a group of files on the Printer. The syntax is: ; ; TYPE dir:afn -or- LIST dir:afn ; ; Examples: ; TYPE b7:*.asm ; LIST text:*.txt ; LTON EQU true LISTON EQU true ; ; TYPE can be made to page or not page by default. If PGDFLT is ; TRUE, TYPE pages by default and does not page if the PGFLG character ; (recommended to be 'P') is used. If PGDFLT is FALSE, TYPE pages only ; when the PGDFLG character is seen in the command line. ; PGDFLT EQU TRUE PGDFLG EQU 'P' ; ; NLINES defines the number of lines on the user's CRT screen. ; This is usually 24. ; NLINES EQU 24 ; ; 5. PEEK and POKE COMMANDS ; TRANSIENT COUNTERPART: None (Subset of DDT) ; ; The following equates determine if the PEEK and POKE commands are ; made available. Setting these equates to TRUE enables these commands. ; ; The PEEK command allows the user to examine a chunk of memory. ; If the user simply types "P" with no address, the next 256 bytes of ; memory are displayed. If the user types "P address", 256 bytes of memory ; starting at the indicated address are displayed. If the user types ; "P addr1 addr2", memory in this address range is displayed. The syntax: ; ; P ; or: ; P address ; or: ; P addr1 addr2 ; ; The POKE command allows the user to change the content of memory. ; The user must specify an address to POKE, and two basic forms are allowed: ; ; POKE address val1 val2 ... valn ; and: ; POKE address "character string ; The two forms may be intermixed with leading values and a trailing character ; string: ; POKE address val1 val2 ... valn "character string ; ; Examples: ; P ; P f400 ; P f400 f425 ; POKE f400 0 1 2 ; POKE f400 "this is a test ; POKE f400 1 2 3 "hello, world ; PEEKON EQU true POKEON EQU true ; ; 6. PROT COMMAND ; TRANSIENT COUNTERPART: PROTECT ; ; The following equate determines if the PROT command is made available. ; Setting this equate to TRUE enables the PROT command. ; ; The PROT command sets the file protection attributes for a group of ; files. The R/O and System attributes may be set with the R and S options, ; resp, given in any order as "RS" or "SR". Omission of one of these options ; toggles the opposite (ie, omission of R makes the files R/W). The syntax: ; ; PROT dir:afn ; or: ; PROT dir:afn R ; or: ; PROT dir:afn S ; or: ; PROT dir:afn RS -or- PROT dir:afn SR ; ; Examples: ; PROT b7:*.com rs ; PROT text:*.txt ; PROTON EQU true ; ; 7. REN COMMAND ; TRANSIENT COUNTERPART: RENAME ; ; The following equate determines if the REN command is made available. ; Setting this equate to TRUE enables the REN command. ; ; The REN command changes the name of one file to another. The syntax: ; ; REN dir:ufn1=ufn2 ; ; Examples: ; REN newfile.txt=oldfile.txt ; REN root:sys.rcp=sys1.rcp ; RENON EQU true ; ; 8. The REG COMMAND ; TRANSIENT COUNTERPART: REG ; ; The following equate determines if the REG command is made ; available. Setting this equate to TRUE enables the REG command. ; ; The REG command forms are: ; REG D or REG = display values of all registers ; REG Mreg = subtract 1 from register (Minus) ; REG Preg = add 1 to register (Plus) ; REG Sreg value = set value of indicated register ; ; A register is a ZCPR3 register buffer, indicated by a digit from ; 0 to 9. ; ; Examples: ; REG S0 4 -- reg 0 = 4 ; REG S5 -- reg 5 = 0 ; REG P -- reg 0 = reg 0 + 1 ; REG P5 -- reg 5 = reg 5 + 1 ; REG M9 -- reg 9 = reg 9 - 1 ; REG D -- show values ; REG -- show values ; REGON EQU true ; ; 9. WHL COMMAND ; TRANSIENT COUNTERPART: WHEEL ; ; The following equate determines if the WHL command is made available. ; Setting this equate to TRUE enables the WHL command. ; ; The WHL command is used to turn off the Wheel Byte (make the user ; non-priveleged) or to turn on the Wheel Byte (make the user priveleged). ; The syntax is: ; ; WHL -- make user non-priveleged ; or: ; WHL password -- make user priveleged ; ; Also, this equate enables the WHLQ command, which displays the ; state of the Wheel Byte. The syntax is: ; ; WHLQ ; ; Examples: ; WHL ; WHL mypass ; WHLQ ; WHLON EQU true ; ; The following equate defines the password to be used by the WHL ; command. It must always be 8 bytes long (trailing spaces allowed) and ; must be upper-case. ; WPASS MACRO DB 'SYSTEM ' ;8 characters ENDM ; ; The Wheel equate table enables the WHEEL facility of ZCPR3. With this ; facility, a WHEEL BYTE, which exists somewhere in memory, is examined ; before a set of installer-selected commands are executed. ; If this byte is not zero, then the command proceeds. If it is zero, ; then the command is not allowed to proceed and is exited with an error ; message. ; ; The following set of equates make each of the indicated commands ; selectable to respond to the Wheel Byte or not. For instance, if ; WERA=TRUE, then it responds to the Wheel Byte; if WERA=FALSE, it does not. ; ; These options will only be effective if a Wheel Byte is Defined ; (Z3WHL NE 0) ; WCP equ true ;Make CP a Wheel-Oriented Command WDIR equ FALSE ; " DIR " " " " WERA equ true ; " ERA " " " " WLIST equ true ; " LIST " " " " WPEEK equ true ; " PEEK " " " " WPOKE equ true ; " POKE " " " " WPROT equ true ; " PROT " " " " WREG equ true ; " REG " " " " WREN equ true ; " REN " " " " WTYPE equ FALSE ; " TYPE " " " " WHEEL set WCP OR WDIR OR WERA OR WLIST OR WPEEK OR WPOKE WHEEL set WHEEL OR WPROT OR WREG OR WREN OR WTYPE ; ; 10. NOTE COMMAND ; TRANSIENT COUNTERPART: NOTE ; ; NOTE is simply a NOP (do nothing) command which can be used ; to place comments into multiple command lines. For instance, in the ; following line: ; ; dir *.com;note this is a dir display;era *.bak ; ; the DIR and ERA commands perform normally, and NOTE simply does ; nothing very efficiently. ; ; Setting the following equate to TRUE enables the NOTE Command. ; NOTEON EQU true ; ; 11. ECHO COMMAND ; TRANSIENT COUNTERPART: ECHO ; ; The following equate enables the ECHO command. ; ; ECHO is useful in issuing both messages (to the user, say within ; a command file during execution) and escape sequences. ECHO can send its ; output to the console (by default) or to the printer (if the first non- ; blank character is a dollar sign). It uses BIOS calls, so all control ; characters are passed exactly. Hence, console-level programming of such ; devices (CRTs and Printers) is possible. ; ; The ECHOLST equate determines if ECHO is allowed to direct its output ; to the printer. If ECHOLST is TRUE, ECHO may direct its output to the ; printer via the $ prefix character in the text. ; ECHOON EQU true ECHOLST EQU true ; ; END of SYS.RCP CUSTOMIZATION ; ; nothing very efficiently. ; ; Setting the following equate to TRUE enables the NOTE Command. ; NOTEON EQU true ; ; 11. ECHO COMMAND ; TRANSIENT COUNTERPART: ECHO ; ; The following equate enables the ECHO command. ; ; ECHO is useful in issuing both messages (to the user, say within ; a command file during execution) and escape sequences. ECHO can send its ; output to the console (by default) or to the printer (if the first non- ; blank character is a dollar sign). It uses BIOS calls, so all control ; characters are passed exactly. Hence, console-level programming of such ; devices (CRTs and Printers) is possible. ; ; The ECHOLST equate determines if ECHO is allowed to direct its output ; to the printer. If ECHOLST is TRUE, ECHO may direct its output to the ; printer via the $ prefix character in the text. ; ECHOON EQU true ECHOLST EQU true ; ; END of Speciaì interesô messagå foò thoså tinkereró whï havå thå pre-reö � 2.³  BIOÓ anä arå toï cheað tï invesô iî á $2µ update¬  buô woulä � ratheò  grinä iô ouô themselvesº  Therå ió stilì hopå foò  movinç � youò systeí tï 59K¡  Usinç theså simplå (uhh...© steps¬  yoõ  caî � movå  youò systeí tï á workinç 59ë CP/Í thaô caî theî bå useä  tï � instalì ZCPR3. Thió  installatioî ió iî fouò partsº  (1© Generatå á baä 59ë � systeí  usinç  MOVCPM¬  (2© Re-assemblå thå BIOÓ anä  colä  starô � loadeò  foò 59k¬  (3© integratå thå ne÷ BIOÓ anä loadeò intï  thå � 59K cp/M image, (4) put the new image on the system tracks. Fileó neededº M80.com Microsoft Macro assembler L80.COM Microsoft Linking Loader MOVCPM, SYSGEN, DDT CBIOS.MAC¬   CBOOT.MAà BIOÓ  anä  Booô   codå � supplied by MORROW. First¬  geô  á 59ë "non-working¢ systeí bù usinç MOVCPÍ  anä � then saving it as "DFNCT59K.COM": MOVCPM 59 * SAVE 46 DFNC59K.COM THen¬  ediô CBIOS.MAà anä CBOOT.MAC¬ changinç thå MEMSIZÅ tï � 59: (a line in the beginning of the code should look like this) MEMSIZE EQU 64 (and should be changed to look like this) MEMSIZE EQU 59 Then, you must Assemble CBIOS and CBOOT using M80. Link the two as follows: L80 /p:100,CBIOS,CBIOS/n/x/e l80 /p:100,CBOOT,CBOOT/n/x/e You then should have to hex files CBOOT.HEX and CBIOS.HEX. Then¬  uså DDÔ tï integratå thå ne÷ BIOÓ anä loadeò intï thå CP/Í � image: A> DDT DFNC59k.com [signon etc...] - ICBOOT.HEX - R800 - ICBIOS.HEX - R2200 - ^C [control c] A> SAVE 46 CPM59.com Yoõ  arå  no÷ readù tï SYSGEÎ thå imagå ontï thå  ne÷  disk®  (Nï � source drive; Destination drive: The one for tHe new system.) Presto¡ Yoõ no÷ havå á perfectlù gooä 59Ë Cp/Í system® (witè onlù �Š4 hours of work..) This needlessly complex blurb was brought to you by: Erik Olson 346-8194 (voice) 348-3348 (modem)64 (and should be changed to look like this) MEMSIZE EQU 59 Then, you must Assemble CBIOS and CBOOT using M80. Link the two as follows: L80 /p:100,CBIOS,CBIOS/n/x/e l80 /p:100,CBOOT,CBOOT/n/x/e You then should have to hex files CBOOT.HEX and CBIOS.HEX. Then¬  uså DDÔ tï integratå thå ne÷ BIOÓ anä loadeò intï thå CP/Í � image: A> DDT DFNC59k.com [signon etc...] - ICBOOT.HEX - R800 - ICBIOS.HEX - R2200 - ^C [control c] A> SAVE 46 CPM59.com Yoõ  arå  no÷ readù tï SYSGEÎ thå imagå ontï thå  ne÷  disk®  (Nï � source drive; Destination drive: The one for tHe new system.) Presto¡ Yoõ no÷ havå á perfectlù gooä 59Ë Cp/Í system® (witè onlù �Š4; Z3BASE - Maximum Configuration ; Offset: 5100H ;**************************************************************** ;* * ;* Z3BASE.LIB -- Base Addresses for ZCPR3 System * ;* by Richard Conn * ;* * ;* These addresses are used by the following System * ;* Segments: * ;* * ;* Segment Function * ;* ------- -------- * ;* ABOOTFD Boot System from Floppy Disk * ;* ABOOTHD Boot System from Hard Disk * ;* BDOSZ Customized BDOS * ;* CBIOSZ Customized BIOS * ;* ZCPR3 ZCPR3 Command Processor * ;* *.ENV All Environment Descriptors * ;* *.FCP All Flow Command Packages * ;* *.IOP All Input/Output Packages * ;* *.NDR All Named Directory Definition Files * ;* *.RCP All Resident Command Packages * ;* * ;* * ;* Memory Map of System: * ;* * ;* Address Range Size Function * ;* ------------- ------- -------- * ;* 0 - FF 256 b Standard CP/M Buffers except * ;* 40 - 4A 11 b for ZCPR3 External Path * ;* 3E 1 b Wheel Byte * ;* 100 - C7FF ~50 K TPA * ;* c800 - d005 2 K ZCPR3 Command Processor * ;* d006 - ddff 3.5K BDOSZ * ;* de00 - ebff 3.5K CBIOSZ with Buffers * ;* ec00 - f5ff 2.5K Resident Command Package * ;* f600 - f87f 640 b Flow Command Package * ;* F880 - f97f 256 b Environment Descriptors * ;* Bytes 00H-7FH: Z3 Parameters * ;* Bytes 80H-FFH: Z3 Terminal Cap * ;* f980 - f9cf 80 b ZCPR3 Message Buffers * ;* Byte 0: Error Flag (Z/NZ) * ;* Byte 1: IF (8 Levels) * ;* Byte 2: IF Active (8 Levels) * ;* Byte 3: Z3 Cmd Status * ;* 00B - Normal * ;* 01B - Shell * ;* 10B - Error * ;* Bytes 4&5: Error Address if 10B * ;* Byte 6: Program Error Code * ;* Byte 7: ZEX Message Byte * ;* 00B - Normal * ;* 01B - Z3 Prompt * ;* 10B - Suspend Intercept * ;* Byte 8: ZEX Running Flag (0=No) * ;* Bytes 9-10: Address of Next * ;* Char for ZEX to Return * ;* Bytes 11-12: Address of First * ;* Char in ZEX Memory- * ;* Based File Buffer * ;* Byte 13: SH Control Byte * ;* Bit 0: Enable SHCMT * ;* Bit 1: Enable SHECHO * ;* Bit 7: Enable Shell * ;* Entry Wait * ;* Bytes 14-15: Shell Scratch * ;* Bytes 10H-2FH: Error Cmd * ;* Bytes 30H-39H: Registers * ;* Bytes 3AH-3FH: Reserved * ;* Bytes 40H-4FH: User-Defined * ;* f9d0 - f9ff 48 b ZCPR3 External FCB * ;* fa00 - faff 256 b Memory-Based Named Directory * ;* fb00 - fb2f 48 b ZCPR3 External Stack * ;* fb30 - fbaf 128 b ZCPR3 Shell Stack * ;* fbb0 - fbff 79 b free space * ;* fd00 - fdfe 255 b Multiple Command Line Buffer * ;**************************************************************** ; ; True and False ; FALSE equ 0 TRUE equ NOT FALSE ;* ;* ZCPR3 BASE EQUATES ;* ; ; 1. VERSION NUMBERS, MEMORY SIZE, and CP/M BASE ADDRESS ; ; The following equates define the version numbers of the ZCPR3 ; Command Processor and the CBIOSZ. They also ex plicitly state the size ; of the TPA for inclusion in the CBIOSZ header printed at Cold Boot. ; Z3REV EQU 30 ; ZCPR3 REV NUMBER CBREV EQU 23 ; CBIOSZ REV NUMBER MSIZE EQU 59 ; SIZE OF TPA ; ; BASE - Base Address of user's CP/M system (normally 0 for DR version) ; This equate allows easy modification by non-standard CP/M (eg,H89) ; BASE EQU 0 ; ; 2. PROCESSOR SELECTION ; ; The following equate selects the use of the 8080/8085 micro or ; the Z80 micro for the target for ZCPR3. Note that selecting the ; 8080/8085 should be done ONLY if you have an 8080 or 8085. If you have ; a Z80, by all means select this one since the code is much smaller and ; you can cram more features into the system as a result. ; If the processor is an 8080 or 8085, set this equate to TRUE. ; If the processor is a Z80, set it to FALSE. ; I8080 EQU FALSE ; ; 3. EXTERNAL PATH ; ; The following equates define the address of the ZCPR3 External ; Path and the number of two-byte elements contained in this path (maximum). ; If there is no ZCPR3 External Path, both of these values should be set to 0. ; EXPATH EQU 40H ; EXTERNAL PATH EXPATHS EQU 5 ; 5 2-byte Path Elements ; (PATH SIZE = EXPATHS*2 + 1) ; ; 4. WHEEL BYTE ; ; The following equate defines the address of the ZCPR3 Wheel Byte. ; If there is no ZCPR3 Wheel Byte, this value should be set to 0. ; Z3WHL EQU 3EH ; WHEEL BYTE ADDRESS ; ; 5. CCP LOCATION ; ; The following equate defines the address of the ZCPR3 Command ; Processor. This address MUST be supplied. ; CCP EQU 0C800H ; ZCPR3 COMMAND PROCESSOR ; ; 6. RCP LOCATION ; ; The following equates define the address of the ZCPR3 Resident ; Command Package and its size in 128-byte blocks. If there is no ; ZCPR3 Resident Command Package, both of these values should be 0. ; RCP EQU 0Ec00H ; RESIDENT COMMAND PACKAGE RCPS EQU 20 ; 20 128-byte Blocks (2.5K bytes) ; 20 X 128 = 2560 BYTES ; ; 7. IOP LOCATION ; ; The following equates define the address of the ZCPR3 Input/Output ; Package and its size in 128-byte blocks. If there is no ZCPR3 Input/Output ; Package, both of these values should be 0. ; IOP EQU 0 ; REDIRECTABLE I/O PACKAGE IOPS EQU 0 ; 12 128-byte Blocks (1.5K bytes) ; ; 8. FCP LOCATION ; ; The following equates define the address of the ZCPR3 Flow Command ; Package and its size in 128-byte blocks. If there is no ZCPR3 Flow Command ; Package, both of these values should be 0. ; FCP EQU 0f600H ; FLOW COMMAND PACKAGE FCPS EQU 5 ; 4 128-byte Blocks (0.5K bytes) ; ; 9. ENV LOCATION ; ; The following equates define the address of the ZCPR3 Environment ; Descriptor and its size in 128-byte blocks. If there is no ZCPR3 Environment ; Descriptor, both of these values should be 0. ; Z3ENV EQU 0F880H ; ENVIRONMENT DESCRIPTORS Z3ENVS EQU 2 ; SIZE OF ENVIRONMENT DESCRIPTOR IN 128-BYTE BLOCKS ; ; 10. SHELL STACK ; ; The following equates define the address of the ZCPR3 Shell Stack, ; the number of entries permitted in the ZCPR3 Shell Stack, and the size ; of each entry in the Shell Stack in terms of bytes. If there is no ZCPR3 ; Shell Stack, all three values should be 0. ; SHSTK EQU 0fb30H ; ZCPR3 SHELL STACK SHSTKS EQU 4 ; NUMBER OF SHSIZE-BYTE SHELL STACK ENTRIES SHSIZE EQU 32 ; SIZE OF A SHELL STACK ENTRY ; (STACK SIZE = SHSTKS * SHSIZE) ; ; 11. ZCPR3 MESSAGES ; ; The following equate defines the address of the ZCPR3 Message Buffer. ; This buffer is always 80 bytes long. If there is no ZCPR3 Message Buffer, ; this address should be 0. ; Z3MSG EQU 0f980H ; ZCPR3 MESSAGE BUFFER ; ; 12. EXTERNAL FCB ; ; The following equate defines the address of the ZCPR3 External FCB. ; This buffer is always 36 bytes long. If there is no ZCPR3 External FCB, ; this address should be 0. ; EXTFCB EQU 0f9d0H ; ZCPR3 EXTERNAL FCB ; ; 13. NAMED DIRECTORY BUFFER ; ; The following equates define the address and size (in terms of 18-byte ; entries) of the ZCPR3 Named Directory Buffer. If there is no such buffer, ; both of these values should be 0. ; Z3NDIR EQU 0Fa00H ; ZCPR3 NAMED DIRECTORY AREA Z3NDIRS EQU 14 ; 14 18-byte Named Directory Elements permitted ; (NDIR SIZE = Z3NDIRS*18 + 1 for trailing 0) ; ; 14. COMMAND LINE ; ; The following equates define the address and size (in terms of bytes) ; of the ZCPR3 Command Line Buffer (formerly called the Multiple Command Line ; Buffer under ZCPR2). If there is no such buffer, both of these values should ; be 0. ; Z3CL EQU 0fd00H ; ZCPR3 COMMAND LINE BUFFER Z3CLS EQU 255 ; SIZE OF COMMAND LINE BUFFER ; ; 15. EXTERNAL STACK ; ; The following equate defines the address of the ZCPR3 External Stack. ; This stack is always 48 bytes in size. If there is no such stack, this ; value should be 0. ; EXTSTK EQU 0Fb00H ; ZCPR3 EXTERNAL STACK ; ; 16. USER EQUATES ; ; The following equates are available for the implementer's target ; system. These are implementation-defined. ; DJEPROM EQU 0fb30H ; EPROM BASE ADDR!ESS ;* ;* END of ZCPR3 BASE EQUATES ;* ; 14 18-byte Named Directory Elements permitted ; (NDIR SIZE = Z3NDIRS*18 + 1 for trailing 0) ; ; 14. COMMAND LINE ; ; The following equates define the address and size (in terms of bytes) ; of the ZCPR3 Command Line Buffer (formerly called the Multiple Command Line ; Buffer under ZCPR2). If there is no such buffer, both of these values should ; be 0. ; Z3CL EQU 0fd00H ; ZCPR3 COMMAND LINE BUFFER Z3CLS EQU 255 ; SIZE OF COMMAND LINE BUFFER ; ; 15. EXTERNAL STACK ; ; The following equate defines the address of the ZCPR3 External Stack. ; This stack is always 48 bytes in size. If there is no such stack, this ; value should be 0. ; EXTSTK EQU 0Fb00H ; ZCPR3 EXTERNAL STACK ; ; 16. USER EQUATES ; ; The following equates are available for the implementer's target ; system. These are implementation-defined. ; DJEPROM EQU 0fb30H ; EPROM BASE ADDR; Z3HDR - Maximum Configuration ; Offset: 5100H ************************************************************************* * * * Z C P R 3 -- Z80-Based Command Processor Replacement, Version 3.0 * * * * Copyright (c) 1984 by Richard Conn * * Copyright Pending, US Government * * All Rights Reserved * * * * ZCPR3 was written by Richard Conn, who assumes no responsibility * * or liability for its use. ZCPR3 is released to the CP/M user * * community for non-commercial use only. * * * * All registered users of CP/M are encouraged to freely copy and use * * ZCPR3 and its associated utilities on their registered systems for * * non-commercial purposes. * * * * Any commercial use of ZCPR3 is prohibited unless approved by the * * author, Richard Conn, or his authorized agent, Echelon, Inc, in * * writing. * * * * This is the RELEASE VERSION of ZCPR3. * * * ************************************************************************* ; ; Module: Z3HDR ; Author: Richard Conn ; Module Used By: ZCPR3 Version 3.x ; Note: Z3HDR contains the key customization equates for ZCPR3. These ; equates allow the user to select various ZCPR3 options and do an ; extensive amount of tailoring of ZCPR3 to the user's desires. ; ; ; 1. BASIC SYSTEM DEFINITIONS ; ; The following equates may be used to customize this CPR for the user's ; system and integration technique. The following equate are provided: ; ; REL - TRUE if integration is to be done via MOVCPM ; - FALSE if integration is to be done via DDT and SYSGEN ; ; CPRLOC - Base Page Address of CPR; this value can be obtained by running ; the CCPLOC program on your system, and if REL is FALSE, this ; value is supplied through the Z3BASE.LIB CCP equate ; REL EQU FALSE ; IF REL CPRLOC EQU 0 ELSE CPRLOC EQU CCP ;VALUE PROVIDED IN Z3BASE.LIB ENDIF ; ; 2. DEFAULT FILE TYPES ; ; The following macros define the file types of the command object files ; (COM files under CP/M 2.2) to be loaded when a non-resident ZCPR3 command ; is given and of the indirect command files (SUB files under CP/M 2.2) to ; be used to extract commands from when the indirect command facility is ; invoked. ; COMTYP MACRO DB 'COM' ENDM SUBTYP MACRO DB 'SUB' ENDM ; ; 3. SUBMIT FILE PROCESSING ; ; The following flag enables the ability of ZCPR3 to process ; SUBMIT files (command files of the form $$$.SUB). If SUBON is TRUE, then ; ZCPR3 will process such files like CP/M's CCP normally does; if SUBON is ; FALSE, ZCPR3 will not process such files (ignore them). In such a case, ; only indirect command file facilities like ZEX will work. Much code is ; saved inside of the ZCPR3 Command Processor if SUBON is set to FALSE, ; but this rather useful facility is lost. ; SUBON EQU false ; ; 4. COMMAND PREFIX ; ; The following flag allows ZCPR3 to accept commands of the form ; "du:command params" or "dir:command params". If DRVPREFIX is TRUE, ; this form is accepted; if FALSE, this form is not accepted. ; DRVPREFIX equ TRUE ; ; 5. COMMAND ATTRIBUTES ; ; The following equate allows the user to select the attributes of the ; COM files which are selected for execution. The ZCPR3 Command Processor ; can be made to execute only COM files with the System attribute set, with ; the Directory (non-System) attribute set, or with either attribute set. ; The following values are defined for this equate: ; ; COMATT Files Selected ; 0 System ; 80H Directory ; 1 Both System and Directory ; COMATT equ 01H ; ; 6. ZCPR3 RESIDENT COMMAND ACTIVATION AND WHEEL FACILITY ; ; The following equates enable various ZCPR3-resident commands. ; The user may invoke these as desired, but should keep in mind the size ; of the resulting ZCPR3 and make sure it does not exceed the required ; limits. ; DIRON equ true ;DIR COMMAND LTON equ false ;LIST, TYPE COMMANDS GOON equ t"rue ;GO COMMAND ERAON equ false ;ERA COMMAND SAVEON equ true ;SAVE COMMAND RENON equ false ;REN COMMAND GETON equ false ;GET COMMAND JUMPON equ true ;JUMP COMMAND NOTEON equ true ;NOTE COMMAND ; ; The Wheel equate table enables the WHEEL facility of ZCPR3. With this ; facility, a WHEEL BYTE, which exists somewhere in memory, is examined ; before a set of installer-selected commands are executed. ; If this byte is not zero, then the command proceeds. If it is zero, ; then the command is not allowed to proceed and is exited with an error ; message. ; ; The following set of equates make each of the indicated commands ; selectable to respond to the Wheel Byte or not. For instance, if ; WERA=TRUE, then it responds to the Wheel Byte; if WERA=FALSE, it does not. ; IF Z3WHL NE 0 ;IF A WHEEL BYTE ADDRESS IS DEFINED WERA equ true ;Make ERA a Wheel-Oriented Command WREN equ true ; " REN " " " " WLT equ FALSE ; " L/T " " " " (LIST/TYPE) WGO equ FALSE ; " GO " " " " WSAVE equ true ; " SAVE " " " " WGET equ true ; " GET " " " " WJUMP equ true ; " JUMP " " " " WDU equ FALSE ; " DU: " " " " (DU/DIR Change) WHEEL equ WERA OR WREN OR WLT OR WGO OR WSAVE OR WGET OR WJUMP OR WDU ENDIF ;Z3WHL ; ; 7. ZCPR3 RESIDENT COMMAND TABLE ; ; This table consists of the names of the various ZCPR3-resident ; commands and their addresses. The NCHARS equate defines how many ; characters long each name may be, and all table entries must be exactly ; the indicated number of characters (trailing spaces are used to fill ; out shorter names). ; ; Each table entry is structured as follows: ; ; DB 'CMND' ;Name of Command (NCHARS long) ; DB CMNDADR ;Address of Command within ZCPR3 ; ; The installer should only change the names of the commands as ; desired and should not, as a rule, touch the address definition since ; this is fixed within the body of ZCPR3. ; NCHARS EQU 4 ;NUMBER OF CHARS/COMMAND CTABLE MACRO ; IF DIRON DB 'D ' DW DIR ;DIRECTORY DISPLAY COMMAND ENDIF ; IF LTON DB 'LIST' DW LIST ;LIST FILE ON PRINTER COMMAND DB 'TYPE' DW TYPE ;TYPE FILE ON CONSOLE COMMAND ENDIF ; IF GOON DB 'GO ' DW GO ;EXECUTE CURRENT TPA COMMAND ENDIF ; IF ERAON DB 'ERA ' DW ERA ;ERASE FILES COMMAND ENDIF ; IF SAVEON DB 'SAVE' DW SAVE ;SAVE TPA COMMAND ENDIF ; IF RENON DB 'REN ' DW REN ;RENAME FILES COMMAND ENDIF ; IF GETON DB 'GET ' DW GET ;LOAD FILE INTO TPA COMMAND ENDIF ; IF JUMPON DB 'JUMP' DW JUMP ;JUMP TO ANY MEMORY LOCATION COMMAND ENDIF ; IF NOTEON DB 'NOTE' DW NOTE ;NOTE - NULL COMMAND (NOP) ENDIF ; ENDM ; ; 8. CONTROLS ON ZCPR3 RESIDENT COMMANDS ; ; The following sets of equates provide special controls and ; parameters on various ZCPR3-resident commands. ; ; ; The following equates set the width of the spacing between the ; file names for the DIR command and the character used to separate file ; names from one another on the same line. ; ; Assuming that FENCE is set to the character '|', If WIDE is TRUE, ; then the output will look like: ; ; filename.typ__|__filename.typ ... ; ; while if WIDE is FALSE, the output will look like: ; ; filename.typ_|_filename.typ ... ; ; (underscore represents a space) ; WIDE EQU TRUE FENCE EQU '|' ; ; The following equates define two flags which are used in ; conjunction with the DIR command on the command line. SYSFLG is ; the character used to indicate to DIR that all files, both System ; and Non-System, are to be displayed. SOFLG is the character used ; to indicate to DIR that only the System files are to be displayed. ; By default, DIR displays non-System files. ; ; For example, if SYSFLG is set to 'A' and SOFLG is set to ; 'S', then: ; DIR *.COM A ; ; displays all COM files with both System and non-System attributes ; while: ; DIR *.COM S ; ; displays only COM files with the System attribute. Naturally: ; ; DIR *.COM ; ; displays only COM files with the non-System attribute. ; SYSFLG EQU 'A' SOFLG EQU 'S' ; ; The following equate causes ERA to confirm the files to be erased ; before it goes ahead and erases them. If ERAOK is TRUE, then the user ; will be prompted each time; if it is FALSE, then the user will not be ; prompted. ; ERAOK equ true ; ; If ERAOK is TRUE, the following equate adds a Verify option to the ; ERA command which causes the user to be prompted only if the Verify ; option letter, defined by ERDFLG, is given after the file name. If ; ERAV is TRUE, then the user will be asked to verify only when ERDFLG ; is contained in the command line; if ERAV is FALSE, the user will always ; be asked to verify. ; ; For example, if ERAOK is TRUE, ERAV is TRUE, and ERDFLG is 'V', ; then the command: ; ERA *.* V ; will result in the file names being displayed and the user being asked ; for verification. If the V option were not given, the user would #not ; be asked for verification. ; ERAV equ true ERDFLG equ 'V' ; ; The following equates set the paging parameters for the TYPE ; command. ; ; PGDFLT determines if TYPE pages by default. If PGDFLT is TRUE, ; then: ; TYPE FILE.TXT ; ; will be paged. If PGDFLT is FALSE, the above command will not be paged. ; ; PGDFLG defines the option character in the TYPE command line which ; is used to toggle the default set by PGDFLT. Assuming that PGDFLG is set ; to 'P', then: ; TYPE FILE.TXT P ; ; will page the file listing if PGDFLT is FALSE and not page it if PGDFLT is ; TRUE. ; PGDFLT EQU TRUE PGDFLG EQU 'P' ; ; The following equate defines the number of lines on the user's CRT ; screen for use by the TYPE command when it is paging. This value is usually ; 24. ; NLINES EQU 24 ; ; The following equate defines the option letter used with the ; SAVE command to indicate that the associated number is 128-byte sectors ; as opposed to 256-byte pages. For example, if SECTFLG is set to 'S', then: ; ; SAVE 25 FILE.BIN S ; ; save 25 128-byte sectors starting at location 100H into the file named ; FILE.BIN. IF the S option was not present, SAVE would have saved 25 ; 256-byte blocks starting at location 100H into the file named FILE.BIN. ; SECTFLG EQU 'S' ; ; 9. PATH DEFINITION ; ; The following equate specifies the address of the PATH to be followed ; for the PATH command-search if the PATH is to be initialized by the BIOS ; and set by the user via a PATH.COM program. The value of PATH should ; be the address of the PATH data area in memory. If the internal PATH ; provided by ZCPR3 is to be used, then PATHBASE should be equated to 0, ; which selects the PATH located just after the MEMLOAD routine. If the ; external PATH is to be used, then PATHBASE should be set to the address ; of the external path. ; ; A PATH is a series of byte-pairs, terminated by a binary 0. The first ; byte of each pair is the disk number (1-16 for disks A-P), and the second ; byte of each pair is the user number (0-31). The special character '$' ; indicates the current user or current disk. For example, the path ; from current disk/current user to current disk/user 0 to disk A/user 0 ; is selected by the following sequence: ; ; DB '$$' ;current disk/user ; DB '$',0 ;current disk/user 0 ; DB 1,0 ;disk A/user 0 ; DB 0 ;end of path ; IF EXPATH NE 0 ;External Path Selected ; ; This equate defines the base address of the external path ; PATH equ EXPATH ;External ZCPR3 PATH at CBIOS Buffer Area ELSE ;Internal Path Selected ; ; The following macro defines the n-element internal path ; IPATH MACRO db 'A'-'@','$' ;Disk A, Current User db 'A'-'@',0 ;Disk A, User 0 db 0 ;End of Path -- MUST be here ENDM ; ENDIF ; ; The following flag enables ZCPR3 to perform an optimized path ; search when it is searching along a path for a file. If this equate ; is TRUE, ZCPR3 will build a path in memory of absolute entries (A1, B7, etc) ; from the symbolic path (one containing '$') which is the path it would ; otherwise use. This new path would contain no duplicate path elements, ; where a symbolic path analysis may. For example, if the path is: ; ; db 'A'-'@','$' ;disk A, current user ; db 'A'-'@',15 ;disk A, user 15 ; db 0 ; ; then if the user is logged into A15, setting the below equate to TRUE ; would allow ZCPR3 to build the path: ; ; db 'A'-'@',15 ;only one entry ; db 0 ; ; in the analysis of this symbolic path, while with this equate FALSE, ; ZCPR3 may log into A15 as many as three times (once for the default ; and twice more for the symbolic path) in looking for a file which is ; not found before it gives up. Using this minimum path facility costs ; some code in ZCPR3, but it speeds up processing noticably in some cases. ; ; Enable this equate if MINIMUM PATH SEARCH is to be employed. ; MINPATH EQU TRUE ; ; In searching for a file along a path, ZCPR3 can be commanded ; to always look in the current logged-in directory before beginning ; the path search. This equate controls this feature. If SCANCUR ; is set to TRUE, the current directory need never be referenced in ; a symbolic path expression (DB '$','$') since SCANCUR insures that ; the current directory is scanned. ; ; Enable this equate if the current DU is always to be scanned. ; SCANCUR EQU TRUE ; ; 10. DU AND DIR CONTROLS ; ; ; The following equate enables the appearance of the current disk/user ; in the ZCPR3 prompt. If set to FALSE, the prompt appears as '>' (assuming ; > is the current value of CPRMPT). If set to TRUE, the prompt appears ; as 'd>' or 'dn>'. (see INCLNDR below) ; INCLDU equ TRUE ; ; The following equate allows ZCPR3 to accept the DU: prefix or ; login form for input. Set this to TRUE if DU: prefix is to be allowed. ; ; Setting this equate to TRUE allows the following forms: ; ; A>B1: ; A>TYPE B4:FILE.TXT ; A>B: ; A>1: ; ACCPTDU EQU TRUE ; ; This equate enables ZCPR3 to process DIR: forms inte$rnally ; through the memory-based named directory buffer. This equate and ; the NDBASE address should be TRUE (non-zero) in order to enable ; ZCPR3 to process named directories. ; ; If NDINCP is TRUE, the following forms are allowed: ; ; A>ROOT: ; A>TYPE TEXT:FILE.TXT ; ; if the other associated equates (below) are set correctly. ; NDINCP EQU TRUE ; ; The following equate will cause the name of the current directory ; to be displayed as part of the prompt along with the DU form if enabled. ; (see INCLDU above) ; ; For example, if INCLNDR is TRUE, the prompt would look like: ; ; B7:TEXT> -- if INCLDU is also TRUE ; TEXT> -- if INCLDU is FALSE ; INCLNDR EQU TRUE ; ; The following equate allows ZCPR3 to accept the DIR: prefix or ; login form for input. Set this to TRUE if DIR: prefix is to be allowed. ; ; Setting this equate to TRUE allows the following forms: ; ; A>ROOT: ; A>TYPE TEXT:FILE.TXT ; ACCPTND EQU TRUE ; ; The following equate determines the hierarchy of DU:/DIR: evaluation. ; Set this to TRUE if DU: is to be tested for before DIR: or set this to ; FALSE if DIR: is to be tested for before DU:. If this is FALSE, named ; directories like C: (standing for C work area - NOT disk C) are permitted. ; ; Assuming that a directory for C programs, named 'C', and a root ; directory, named 'ROOT', exist, then if DUFIRST is set to FALSE: ; ; A>C: -- logs the user into the directory named 'C' ; A>ROOT: -- logs the user into the directory named 'ROOT' ; ; while if DUFIRST is set to TRUE: ; ; A>C: -- logs the user into disk C: (dir C can't be accessed) ; A>ROOT: -- logs the user into the directory named 'ROOT' ; DUFIRST EQU true ; ; Enable password check on named directory references. If a named ; directory is referenced and has a password associated with it, ZCPR3 ; will ask the user for this password and approve the reference only ; if he gives a valid response. One and only one try is permitted. ; Setting this equate to TRUE will enable the password check facility. ; PWCHECK EQU TRUE ; ; 11. COMMAND LINE BUFFER CONTROL ; ; The MULTCMD equate enables the feature of having more than ; one command on the same line, separated by a separation char ; which is defined by the CMDSEP equate. If this feature is ; enabled, the command line buffer and buffer pointers are ; moved outside of ZCPR3 at the indicated address of Z3CL. ; ; MULTCMD indicates if the ability to have more than one command ; on a line is to be enabled, and CMDSEP is the character used to separate ; these commands. For example, if CMDSEP is ';' and MULTCMD is TRUE, then ; commands like this are possible: ; ; ERA *.BAK;DIR ; IF Z3CL NE 0 MULTCMD equ TRUE ELSE MULTCMD equ FALSE ENDIF CMDSEP equ ';' ; ; 12. CMDRUN -- ZCPR3 EXTENDED COMMAND PROCESSING FACILITY ; ; This equate enables the ZCPR3 CMDRUN facility. If CMDRUN is TRUE, then ; another stage of command processing is invoked should ZCPR3 fail to find ; a COM file when the user gives a command. This stage involves invoking ; the COM file specified by CMDFCB and giving it the current command line ; as an argument. In this way, if, say, M80 PROG2 fails as a command, ; a new command like LRUNZ M80 PROG2, SUB M80 PROG2, or ZEX M80 PROG2 may ; be processed. If the new command fails, an appropriate error message is ; given. ; ; The ROOTONLY option causes ZCPR3 to only look at the Root (bottom of ; path) for the Extended Command Processor if it is set to TRUE. If it ; is set to FALSE, the path is searched for the Extended Command Processor. ; The tradeoff here is that ROOTONLY = TRUE is less flexible but somewhat ; faster than ROOTONLY = FALSE. ; CMDRUN equ FALSE ; Enable the Facility if CMDRUN ROOTONLY equ TRUE ; TRUE if look at Root Only for Extended ; Command Processor, FALSE if look along ; path CMDFCB MACRO db 0 db 'CMDRUN ' ;Name of Program db 'COM' ;File Type ENDM endif ;CMDRUN ; ; 13. FLOW COMMAND FACILITY ; ; This equate enables ZCPR3 to respond to IF processing. ; ZCPR3 simply flushes commands if a FALSE IF is currently engaged. ; FCPs must be enabled for IFON to work correctly. ; IFON EQU TRUE ; ; 14. MISCELLANEOUS EQUATES ; MAXUSR EQU 31 ;MAXIMUM USER NUMBER ACCESSABLE MAXDISK EQU 3 ;MAXIMUM NUMBER OF DISKS ACCESSABLE SUPRES EQU true ;SUPRESSES USER # REPORT FOR USER 0 SPRMPT EQU ')' ;CPR PROMPT INDICATING SUBMIT COMMAND CPRMPT EQU '>' ;CPR PROMPT INDICATING USER COMMAND NUMBASE EQU 'H' ;CHAR USED TO SWITCH FROM DEFAULT NUMBER BASE CURIND EQU '$' ;SYMBOL FOR CURRENT DISK OR USER COMMENT EQU ';' ;LINES BEGINNING WITH THIS CHAR ARE COMMENTS ; ; END OF ZCPR3 CUSTOMIZATION SECTION ;  if look at Root Only for Extended ; Command Processor, FALSE if look along ; path CMDFCB MACRO db 0 db 'CMDRUN ' ;Name of Program db 'COM' ;File Type ENDM endif ;CMDRUN ; ; 13. FLOW COMMAND FACILITY ; ; This equate enables Z% This is the release date of the disk. BAZICDATART €CPMRBOUTART €€DATATRANART € PILOTINTART €"SWTCHBOXART €TERMCHNGART €€MD-SMKEYDOC €€MDJUMPERTXT €$€MD2DSK TXT €&€MD2TOMD3FIX €.€AUTOFORMPIL €1€MD3SETUPMAC €2Z3MD-59KWS À9cå3MD-59KWS I#MD2DSK .TXT E5 08 7296 57 MD2TOMD3.FIX A3 D4 2176 17 AUTOFORM.PIL 51 FA 896 7 MD3SETUP.MAC 61 1B 7168 56 Z3MD-59K.WS AC 81 25344 198 Z3MDINFO.TXT 91 2F 7936 62 Z3PATMD .ASM 4B 73 1920 15 ZCPR3 .HEX C3 85 5760 45 ZCPR3 .INS 56 D1 3968 31 LDR .COM 48 81 2560 20 MAKE .SUB 00 5B 640 5 STARTUP .COM 39 A6 3840 30 SYS  Fog Library Disk FOG-CPM.050 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Morrow MicroDecision programs. Filename Description -06-00 .86 This is the release date of the disk. -CPM050 .DOC This is the description of the disk contents. AUTOSTRT.ART 117C 2K Discussion of how to change the AUTO message on the Morrow Microdecision systems. BAZICDAT.ART 113F 2K Discussion on converting BAZIC files to ASCII. CPMRBOUT.ART 0F01 5K Discussion on converting the Morrow delete key to a rubout key. DATATRAN.ART 7F97 4K Discussion of transferring data between computers using MDM7 without using a modem. Aimed at Morrow users but useful to others needing to move file between two computers with incompatible disk formats. PILOTINT.ART 84D2 9K Discussion on the use of the Morrow Pilot. SWTCHBOX.ART 2CAD 2K Discussion on making a printer/modem switch. Aimed at Morrow users but useful for all. TERMCHNG.ART 1EAD 4K Discussion on adapting any terminal to the MD2. MD-SMKEY.DOC 5A43 5K Discussion on how to adapt SmartKey II to the various Morrow terminals. MDJUMPER.TXT 365C 2K Discussion of the various jumper configurations for the Morrow serial port #2. MD2DSK .TXT E508 8K Information about adding two drives to Morrow MD2. MD2TOMD3.FIX A3D4 3K More information and bug fixes on the conversion of a Morrow MD2 to MD3. AUTOFORM.PIL 51FA 1K Addition to the Morrow Pilot program. This handles formatting, SYSGENing, etc. MD3SETUP.MAC 611B 7K Source for an alternative to the Morrow MD3 (Rev 2) SETUP program. Z3MD-59K.WS AC81 25K [ZCPR3 1 of 18] ZCPR3 for the Morrow computers, including patch information for BIOS revisions 1.6 and 2.3 Z3MDINFO.TXT 912F 8K [ZCPR3 2 of 18] Z3PATMD .ASM 4B73 2K [ZCPR3 3 of 18] ZCPR3 .HEX C385 6K [ZCPR3 4 of 18] ZCPR3 .INS 56D1 4K [ZCPR3 5 of 18] LDR .COM 4881 3K [ZCPR3 6 of 18] MAKE .SUB 005B 1K [ZCPR3 7 of 18] Z359K .R21 0098 3K [ZCPR3 8 of 18] SYS .ENV 499E 1K [ZCPR3 9 of 18] SYS .FCP 2FA0 1K [ZCPR3 10 of 18] SYS .NDR F12C 1K [ZCPR3 11 of 18] SYS .RCP 182D 3K [ZCPR3 12 of 18] SYSENV .LIB F0C8 4K [ZCPR3 13 of 18] SYSFCP .LIB 4E1C 6K [ZCPR3 14 of 18] SYSNDR .LIB B1A1 2K [ZCPR3 15 of 18] SYSRCP .LIB D598 11K [ZCPR3 16 of 18] Z3BASE .LIB AB28 9K [ZCPR3 17 of 18] Z3HDR .LIB 20B0 19K [ZCPR3 18 of 18] STARTUP .COM 39A6 4K ZCPR2 startup program for Morrow computers. 10 of 18] SYS .NDR F12C 1K [ZCPR3 11 of 18] SYS .RCP 182D 3K [ZCPR3 12 of 18] SYSENV .LIB F0C8 4K [ZCPR3 13 of 18] SYSFCP .LIB 4E1C 6K [ZCPR3 14 of 18] SYSNDR .LIB B1A1 2K [ZCPR3 15 of 18] SYSRCP .LIB D598 11K [ZCPR3 16 of 18] Z3BASE .LIB AB28 9K [ZCPR3 17 of 18] Z3HDR .LIB 20B&ååååå'ååååå