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 LIBQZ359K R21Z3BASE LIBAZ3HDR LIBZ3HDR LIB-CPM050 DOCThis 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 9I 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 | 25b 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 iyou | inten o changin anythingIt 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 ZCP3 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 togetCP/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 ͋ ~/MM\ͣ 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 EntryoC\^X:* *T""?ͻͻͻ.ͻ&o)T])))|g}<!s#r#wͣZCPR3 LDR, Version 1.0e!/)!/)!/)!/)!/)!/)x2@#3C is not a Valid Typefͳ:\kG:iO͜2\\V͘G!xʤ~%###Ò ʰ%#¦og|G=] ?C is AmbiguousC Not Known to EnvironC Not FoundC EmptyC Contains a Format Flawͣ File ]ã\È"! \͘bC is too Large* !. =RCPZ3RCPIOPZ3IOPFCPZ3FCPNDR ENVZ3ENVZ3T @<22ͯ:ɯ22ͳy2̀~2:[#:2ͭB B:Bͭ:ͺѯ2̀~2: .q#̀ ::M*“>?ͦÚ#?̦€M#Þ!4͵>#G~A@2#~ ͣ~ ͣ#~  O o2=.>#>0#%A =22~!m=_.:,<>ȷ;ɯ~Mʜ#ͣڠWyڠڠڠڠڠOsy70 ҭ?7ɯͺͺ > ͳy~#U 0*T.~*T^#V#~ѷ*T^#V#~ѷ*T,~*T-~*T^#V#~ѷ*T ^#V#~ѷ"Ti>jiicʕͩ~#  %  îî îyʮ îyG>GO> Rî>.R R RRRR R R>^R@RO*. a2 2Õ:_:_ U Y X OG~ w#HW H W r# x . H 7 H7 |W H }W ~# xH ~+ x] R  F#xʁ ~# s y! :f3>0f3y*{3w+"{36 *{32Ow+ ʏ3 3~3w+ ~3Ô2ʢ3w+22322{=*F=+~ 6 6 ʵ3õ3!=͍ 3#6 +>1&3:>1!  4>1!4r ?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#~ѷ"Ti>jiicʕͩ~#  %  îî îyʮ îyG>GO> Rî>.R R RRRR R R>^R@RO*. a2 2Õ:_:_ U Y X OG~ w#HW 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 DIRZCPR2@w,U :ʾ̓":] vS] 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 ***6w#>ɯ] STARTUP Setup Command (?=Help)? uCD0Xd 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)? uN 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 d10P1x0G0&06 "F= ʐ1 ʐ16 Ö10}1ͱ k1å1ͱ k10ß1 ;1ù1:0 ʞ: ù1:: 1 1:"%@ʞ: ʞSTARTUP COM>2* 2+ $կE~#:a,ʼ!ڼM~1 AzAu<2* #~:ʽ?’2+ #~:ʽrG~#:ʰ0r rOxGÔx r2+ ý~:#~,! >?:* G:+ O> ~.# ! , ! * >? # , # > ! ~1 !O =_.:;,<>ɾ2 ~1 0u l u >2 #W ~1 O+~1 G: yHʵ Xʵ O Q xB ~1 D #  ~1 #H X {7R ~1 #O Q } ~1 #B {~0  !  T]_z# {~1 0O 6 O != T]_z#! {~0z z !h T]_z#V {~0ڞ Ҟ !T]_z#Á {w A ) ) ) ) ö dr sys.env,sys.rcp,sys.fcp,sys.ndr;whl systempacheecho * SYSTEM INITIALIZEDLIZED5U :U O^5yf5y n5y@{5:@=2@:@<2@:@:<(:@#~2   ! ~#o|g6: ! ~ 1 w# ! : ~#J 4 ! & & *  y yG>GO>  @ |Y }Y < g g  t 7 0 2 Ê >2 d͟  ͟ 0 ^ک á y¾ : ʾ >  ɯ2 y0 >  >        >^ @ *.  O*. $ a{_HJ Wk H` Wk r# xk {ozgҁ 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|gu"8}ovT!z!$.*8}o|g"8>2:ͪ *8::ʁ ~ 3!"8|}R}}ͪ *8͸ "8}o|gu"8}ovT!F/ F/DMA Address for Disk I/O: *:*|wF/ Address of Memory-Resident Named Directory Buffer: æF/ No Memory-Resident Named Directory BufferF/ Number of Named Dirs Allowed: :C0F/ Named Dir File: !ͤ/F/ Hex~ 4 ! & & *  y yG>GO>  @ |Y }Y < g g  t 7 0 2 Ê >2 d͟  ͟ 0 ^ک á y¾ : ʾ >  ɯ2 y0 >  >        >^ @Z3ENV@0 >PPB: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 ELSEFI nXIF _T 4F >EMEREXvINHNUTC"WH+KIF> ͶV~#Ͷ(B!w !~( KTw $KND!~G#(( ~/Ox/G~wDF(Tx_> (k!~#(= !]m  X#H]2~   Kéͨ(&:m (:!8 *~( ( %(%!6DKTrue?6 (_T(Y( (Ϳl<(Ϳl<( :(!m~#0 OxG:l <=_:y_ >~08 0 !o|g=~ɯ!~(#ȯ=!~F#  #~#fo= !~(($# +~w?@ABCDEFGHZ3MD-59KWS FIJKLMNOPQZ3MDINFOTXT>RSTUVWXYZ3PATMD ASMZ[ZCPR3 HEX-\]^_`aZCPR3 INSbcdeLDR COMfghMAKE SUBiSTARTUP COMjklmSYS ENVnSYS FCPoSYS $$$Z3RCPH dCP TECHODERA LIST.NOTEP gPOKEPROTREG MREN XTYPE8WHL WHLQSYS 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?> > y8\ C!~(7 ( ( (RR> Rx #͕R\R_>({ : !?5 6>P(0=ͥ Typing!]1!mͺ͎!\#m O~q#ʱ#<ʱ2!mI( R( S(  2&."0>ʱ"  * ~" ͥ Set to R*0W|(Oy͔}( ͥ and SY>( ] ͪ!}G|G\(] !m ͪ!\l#  #>!ͅGͥ Pee8 ͅ(G͝"qz {|}1~#> ͔ͥ~. 8(Oy͔#͕ͥͥOy0:8Ô!ͅ(.Gͥ Pok8ͅ"( G{#~#ͥ Arg!]~A8#~S(2>ͥ Wheel Byte:>(ͥOͥOFSYSTEM !~# (G$(+~( (|#x$ u> > x$> |> O x$ ͐*~#ͥ No File> ͔> Ô\<a_:i_ ͥ >.͔~#͔"!:>ͥ No Wheeͥ -ͥ atz{~!#08% 80OzW{_W{_ͥ Num~# (+ͷ(  \=ɯ!] ~?(#ͥ is AFͥ - Erasͥ (Y/N)?Y ~! ī is R/!\  8 ͅ(G͝"qz {|}1~#> ͔ͥ~. 8(Oy͔#͕ͥͥOy0:8Ô!ͅ(.Gͥ Pok8ͅ"( G{#~#ͥ Arg!]~A8#~S(2>ͥ Wheel Byte:>(ͥOͥOFSYSTEM !~# (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 1MD3SETUPMAC 2Z3MD-59KWS 9c3MD-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&'