ß<-BAMDUA TK2!þñ19200 $ZxCONFIG BAS~zw4DIAGNOSEASMø• DIAGNOSECOMþ.óFORMAT QD ÿ}£ INIT COM|(¼‡NSWP COM¤\õâQFORMAT COM‰)SWAP COM]TERMINALDAT2=,-BAMDUA.TK2 Thió  speciaì librarù volumå containó Georgå Borys§  CONFIG � patchinç  prograí foò Morro÷ computeró thaô allo÷ yoõ tï  instalì � anù  combinatioî  oæ uð tï fouò (4© singlå oò doublå  sideä  disë � driveó iî doublå oò quaä density® Alsï  includeä  oî thió disë ió INIT.COÍ anä itó  datá  filå � TERMINAL.DAÔ   thaô   allowó  yoõ  tï   instalì   youò   terminaì � characteristicó  WITHOUÔ usinç á speciaì utilitù  program®   Reaä � thå  TERMINAL.DAÔ  filå  foò  instructionó oî  ho÷  tï  adä  youò � terminaì iæ iô ió noô listeä oî thå menu® Here'ó thå instructionó oî ho÷ tï uså CONFIG´ writteî bù thå � author: CONFIG.BAS version 4.6 Copyright 1987 by George Borys, all rights reserved. CONFIG.BAS is a patching utility for manipulating the MD2/MD3 system image. All disk drive parameters may be individually adjusted, including the number of drives (1 to 4), number of sides (1 or 2), tracks per inch (48 or 96), motor on wait times (0 to 1020 mS), head settling times after seek (0 to 1020 mS), stepping rates (1 to 15 mS), head unload times (16 to 240 mS) and head load times (2 to 254 mS). Quad density drives will of course require a modified format program (like QFORMAT.COM) to take advantage of the 784K quad density format. To create a boot disk for a "special" drive (3.5 inch, quad density 5 inch, slow stepping standard drive, etc.), proceed as follows: 1. Temporarily configure your hardware with the "special" drive connected as drive C. 2. Format the special disk and copy the following programs to it: CONFIG.BAS MBASIC.COM SYSGEN.COM 3. Add a copy of the system image to the special disk: C: {press [RETURN] } SYSGEN {press [RETURN] } A {response to "SOURCE DRIVE" prompt} [RETURN] {response to "PRESS [RETURN]" prompt} [RETURN] {response to "DESTINATION" prompt} SAVE 46 SYSTEM.CPM {and press [RETURN], of course} 4. Invoke CONFIG.BAS by typing: MBASIC CONFIG {press [RETURN] } 5. Respond to the "FILESPEC" prompt with "SYSTEM.CPM". 6. Respond to the "PHYSICAL DRIVES" prompt with the number of drives that will appear in the final computer configuration. 7. For each drive in the ultimate hardware configuration, respond to the drive characteristics queries about single or double sided media, 48 or 96 tracks per inch, motor on wait time, head settling time after seek, stepping rate, head load time and head unload time. 8. Respond to the "UPDATE" prompt by pressing [RETURN]. 9. Install the updated system image on the special disk by typing: SYSGEN CPM64.COM {press [RETURN] } C {response to "DESTINATION" prompt} [RETURN] {response to "PRESS [RETURN]" prompt} 10. Reconfigure your hardware in its ultimate configuration with the "special" drive connected as drive A. Boot and run! If you find CONFIG valuable, please consider making a tax-deductable contribution to BAMDUA (Bay Area Micro Decision Users Association), the users group that inspired it all, at: BAMDUA P.O. Box 5152 Berkeley, CA 94705 Thå followinç fileó arå containeä oî thió disk: -BAMDUA.TK² 6Ë [Yoõ arå readinç iô now] 19200 12K CONSTRUCTION ARTICLE: BAUD RATE DOUBLER FOR MD3 CONFIG.BAÓ 16K CBOOT/CBIOS PATCHER (SAVED AS ASCII FILE) DIAGNOSE.ASM 2K SOURCE CODE FOR DIAGNOSE.COM: DIAGNOSE.COM 2K SOFTWARE EQUIVALENT OF MD3 DIAGNOSTIC JUMPER FORMAT.QD 16K A DISCUSSION OF MD2/MD3 DISKETTE FORMATS INIT.COÍ 6Ë INSTALLS NEW TERMINAL PARAMETERS � NSWP.COÍ 12Ë HANDY LITTLE FILE TRANSFER UTILITÙ (Vers® 2.07) QFORMAT.COÍ 4Ë REPLACES FORMAT.COM FOR SSDD,DSDD,SSQD,DSQD SWAP.COÍ 2Ë SWAP DRIVES: TEMPORARILY TRADES DRIVE LETTERS TERMINAL.DAÔ 8Ë DATA FOR INIT.COM (ASCII FILE - EDITABLE) NOTEº Yoõ wilì alsï neeä SYSGEN.COÍ anä MBASIC.COÍ froí your Morrow CP/Í Distributioî Disk. Iæ  youò terminaì ió capablå oæ reliablå operatioî aô 1920°  bauä � buô  youò  revisioî ² motherboarä ió keepinç youò speeä  dowî  tï � 960°  baud¬ takå heart® Therå ió á cheað (undeò $1.0° iî  parts© � anä  easù  (lesó thaî aî houò oæ youò time© modificatioî  oæ  thå � revisioî  ² motherboarä thaô precicelù doubleó thå bauä  ratå  oæ � thå  terminaì port® Thå booô-uð defaulô bauä ratå becomeó  1920° � baud¬  whicè translateó tï FASÔ screeî update®   SETUP.COÍ  stilì � works¬  thougè  oæ courså thå terminaì porô wilì  alwayó  ruî  aô � exactlù  doublå  thå bauä ratå specified®   Beforå  orderinç  anù � parts¬ however¬ leô må emphasizå thå openinç caveat® Whilå  mosô � terminaló havå switcè settingó foò 1920° bauä operation¬ noô  alì � oæ theså wilì perforí reliablù foò morå thaî á fe÷ characteró  aô � á time® Somå terminaló wilì droð characteró afteò á fe÷  secondó � oæ  sustaineä  operatioî  aô  eveî 960° baud®   Tï  seå  iô  youò � favoritå  terminaì  ió trulù capablå oæ  sustaineä  operatioî  aô � 1920°  baud¬  connecô iô tï á computeò seô uð  foò  operatioî  aô � 1920°  bauä  anä  trù tï TYPÅ á 10Ë texô file®   Iæ  thå  displaù � garbleó  beforå thå enä oæ thå file¬ you'lì havå tï upgradå  youò � terminaì beforå yoõ caî upgradå youò computer. Assuminç thaô yoõ caî takå advantagå oæ thå upgrade¬ thå  magicaì � fiø ió jusô á digitaì frequencù doubler® Iî technicaì terms¬ thå � terminaì  porô  bauä  ratå clocë  signaì  ió  differentiateä  anä � combineä witè thå differentiateä complemenô oæ thå clocë  signal® � Foò  everù clocë pulså thaô goeó in¬ yoõ geô twï pulseó out®   Aó � lonç  aó thå pulseó arå aô leasô 0.µ uÓ widå anä spaceä aô  leasô � 1.µ  uÓ  apart¬ thå 825± USARÔ ió morå thaî happù tï ruî  aô  thå � appropriatå bauä rate® Besô oæ all¬ nï ne÷ chipó arå needed® Thå � Japaneså revisioî ² boarä haó ´ unuseä gateó iî thå 740´ aô boarä � locatioî ¸-C¬ anä thå Koreaî boarä haó µ unuseä gateó iî thå 740¶ � aô  boarä locatioî ·-A® Alì iô takeó tï turî theså unuseä  gateó � intï á frequencù doubleò ió á fe÷ resistoró anä capacitoró  (and¬ � iî thå caså oæ thå Japaneså board¬ á paiò oæ diodes)® Thå  addeä � componentó arå soldereä directlù tï thå motherboard¬ sï yoõ don'ô � eveî  neeä tï builä á daughterboard® Iæ thå thoughô oæ makinç  á � permanenô circuiô changå makeó yoõ queasy¬ eitheò á seô oæ jumpeò � pinó oò á doublå polå doublå thro÷ (DPDT© switcè wilì enablå  yoõ � tï  bypasó thå frequencù doubleò anä reverô tï thå originaì  slo÷ � circuit® Thió fast/slo÷ switchinç (similaò tï thå MÄ-11'ó jumpeò � selectioî  oæ  9600/1920°  booô uð bauä rate© ió  handù  iæ  youò � computeò  wilì  eveò bå useä witè á terminaì  incapablå  oæ  fulì � 1920° bauä operation. Differenceó betweeî thå Japaneså anä thå Koreaî revisioî ² boardó � necessitatå twï disticô setó oæ directionó foò upgradinç tï 1920° � baud® Tï minimizå thå chanceó oæ fallinç victií tï Murphy'ó law¬ � firsô  locatå  thå appropriatå seô oæ  directions¬  theî  proceeä � slowlù  anä  checë ofæ eacè steð aó yoõ completå  it®   Keeð  thå � jumpeò   wireó   short¬  thå  solderinç  iroî  clean¬   anä   thå � distractionó  tï á minimum® Thå FAST/SLO× switcè maù bå  mounteä � oî  thå reaò paneì oæ thå caså foò (perhapó too© easù access¬  oò � glueä tï thå toð oæ thå 825³ timeò chið witè cyanoacrylatå cemenô � tï keeð iæ safå froí accidentaì switching® ŠFirst¬   thå  instructioî  seô  foò  thå  JAPANESÅ   revisioî   ² � motherboard: Û ]1 Locatå   á   convenienô  worë  spacå  witè  GOOÄ   LIGHTINÇ   anä � preferablù equippeä witè á groundinç wrisô strap. Û ]2 Locatå   á  tinù  tið  solderinç  iroî  (1°-3°  Watts©   witè   á � groundinç plug. Û ]3 Locatå á smalì paiò oæ sidå cutteró (pointù anä sharp). Û ]4 Locatå á paiò oæ smalì needlå noså pliers. Û ]5 Locatå á phillipó screwdriver. Û ]6 Locatå á regulaò bladå screwdriver. Û ]7 Locatå ²-³ feeô oæ wirå wrað wirå (2¶-3¶ gauge). Û ]8 Locatå ² signaì diodeó (1N91´ oò equivalent). Û ]9 Locatå ³ capacitoró (100° pF¬ 10%¬ NPÏ ceramiã oò silveò mica). Û ]10 Locatå ³ resistoró (100° ohm¬ 1/´ Watt¬ 5¥ carbon). Û ]11 Locatå smalì DPDÔ switcè foò fast/slo÷ switching. Û ]12 Locatå isopropyì alcohoì anä toothbrusè foò cleaî-up. Û ]13 Disconnecô thå poweò corä anä alì cableó froí thå MÄ-3® Movå  iô � tï thå welì lighteä worë areá anä teaò iô apart: Û ]14 Removå thå screwó thaô holä thå coveò oî anä slidå thå coveò  ofæ � towarä thå front. Û ]15 Unpluç thå flaô ribboî cablå anä thå ´-wirå poweò cablå froí  thå � disë drives. Û ]16 Iæ thå poweò supplù ió blockinç accesó tï thå disë drivå mountinç � screws¬  removå thå ´ screwó froí thå bottoí oæ thå poweò  supplù � anä movå thå poweò supplù tï á lesó inconvenienô position. Û ]17 Removå  thå  screwó mountinç thå disë driveó anä  slidå  ouô  thå � driveó towarä thå back. Û ]18 Disconnecô thå poweò supplù cablå anä thå smalì cablå runninç  tï � thå reseô button. Û ]19 Removå thå screwó holdinç thå motherboarä anä lifô iô out. Û ]20 Locatå thå 825³ programmablå intervaì timeò (boarä locatioî  4E)® � Snið  piî  1³ aô boarä leveì anä benä thå resô oæ piî  1³  uð  tï � cleaò thå circuiô boarä pad. Û ]21 ŠLocatå  thå  740´ heø inverteò aô boarä locatioî  8C®   Soldeò  á � jumpeò  wirå  froí  piî ± oæ thå 740´  tï  thå  swingeò  (center© � contacô oæ switcè S1B. Û ]22 Soldeò  á  jumpeò  wirå  froí piî 1² oæ  thå  740´  tï  thå  FASÔ � (normallù closed© contacô oæ switcè S1A. Û ]23 Soldeò  á  jumpeò wirå froí thå FASÔ (normallù open©  contacô  oæ � switcè S1 tï thå SLO× (normallù open© contacô oæ switcè S1A¬ anä � continuå thå jumpeò wirå tï piî 1³ oæ thå 8253. Û ]24 Soldeò á 1N91´ diodå froí piî ´ tï piî 1³ (cathodå banä aô piî 4© � oî thå 7404. Û ]25 Soldeò á 1N91´ diodå froí piî ¶ tï piî 1³ (cathodå banä aô piî 6© � oî thå 7404. Û ]26 Soldeò á 1Ë resistoò froí piî µ tï piî · oî thå 7404. Û ]27 Soldeò á 1Ë resistoò froí piî ³ tï piî · oî thå 7404. Û ]28 Soldeò á 1Ë resistoò froí piî 1³ tï piî 1´ oî thå 7404. Û ]29 Soldeò á 100° pÆ capacitoò froí piî ± tï piî µ oî thå 7404. Û ]30 Soldeò á 100° pÆ capacitoò froí piî ² tï piî ³ oî thå 7404. Û ]31 Soldeò á 100° pÆ capacitoò froí piî · tï piî 1³ oî thå 7404. Û ]32 Soldeò  á  jumpeò wirå froí thå SLO× (normallù open©  contacô  oæ � switcè S1 tï piî · oæ thå 7404. Û ]33 Thoroughlù  cleaî thå motherboarä witè thå isopropyì alcohoì  anä � aî olä toothbrush® Looë foò soldeò bridges¬ colä soldeò  joints¬ � diodeó connecteä backwards¬ anä otheò manifestationó oæ  Murphy'ó � law® Iæ nothinç else¬ aô leasô counô thå connectionó aô thå pinó � oæ thå 7404: piî ± ­ ± wirå tï swingeò oæ switcè S1B ­ ± capacitor piî ² ­ ± capacitor piî ³ ­ ± capacitor ­ ± resistor piî ´ ­ ± diodå (bandeä cathodå end) piî µ ­ ± capacitor ­ ± resistor piî ¶ ­ ± diodå (bandeä cathodå end) piî · ­ ± capacitor ­ ² resistors ­ ± wirå tï SLO× contacô oæ switcè S1B pinó ¸-1± arå useä bù MD³ ­ makå nï connections! piî 1²­ ± wirå tï FASÔ contacô oæ switcè S1A piî 1³­ ² diodeó (unbandeä anodå end) ­ ± resistor ­ ± capacitor piî 1´­ ± resistor Š Iæ  everythinç checkó ouô visually¬ rå-assemblå iî reverså  ordeò � oæ disassembly® Remembeò tï rå-connecô thå cablå tï thå terminaì � anä seô thå terminaì tï 1920° bauä beforå firinç iô alì up. Thå  proceedurå  foò copinç witè thå Koreaî revisioî ²  boarä  ió � similar¬ buô here'ó thå blo÷-bù-blo÷ checklist: Û ]1 Locatå   á   convenienô  worë  spacå  witè  GOOÄ   LIGHTINÇ   anä � preferablù equippeä witè á groundinç wrisô strap. Û ]2 Locatå   á  tinù  tið  solderinç  iroî  (1°-3°  Watts©   witè   á � groundinç plug. Û ]3 Locatå á smalì paiò oæ sidå cutteró (pointù anä sharp). Û ]4 Locatå á paiò oæ smalì needlå noså pliers. Û ]5 Locatå á phillipó screwdriver. Û ]6 Locatå á regulaò bladå screwdriver. Û ]7 Locatå ²-³ feeô oæ wirå wrað wirå (2¶-3¶ gauge). Û ]8 Locatå ³ capacitoró (100° pF¬ 10%¬ NPÏ ceramiã oò silveò mica). Û ]9 Locatå · resistoró (56° ohm¬ 1/´ Watt¬ 5¥ carbon). Û ]10 Locatå smalì DPDÔ switcè foò fast/slo÷ switching. Û ]11 Locatå isopropyì alcohoì anä toothbrusè foò cleaî-up. Û ]12 Disconnecô thå poweò corä anä alì cableó froí thå MÄ-3® Movå  iô � tï thå welì lighteä worë areá anä teaò iô apart: Û ]13 Removå thå screwó thaô holä thå coveò oî anä slidå thå coveò  ofæ � towarä thå front. Û ]14 Unpluç thå flaô ribboî cablå anä thå ´-wirå poweò cablå froí  thå � disë drives. Û ]15 Iæ thå poweò supplù ió blockinç accesó tï thå disë drivå mountinç � screws¬  removå thå ´ screwó froí thå bottoí oæ thå poweò  supplù � anä movå thå poweò supplù tï á lesó inconvenienô position. Û ]16 Removå  thå  screwó mountinç thå disë driveó anä  slidå  ouô  thå � driveó towarä thå back. Û ]17 Disconnecô thå poweò supplù cablå anä thå smalì cablå runninç  tï � thå reseô button. Û ]18 Removå thå screwó holdinç thå motherboarä anä lifô iô out. Û ]19 Locatå  thå  825³ programmablå intervaì timer® Snið  piî  1³  aô �Šboarä  leveì anä benä thå resô oæ piî 1³ uð tï cleaò thå  circuiô � boarä pad. Û ]20 Locatå  thå  740¶ heø inverteò aô boarä locatioî  7A®   Soldeò  á � jumpeò  wirå  froí  piî ³ oæ thå 740¶  tï  thå  swingeò  (center© � contacô oæ switcè S1B. Û ]21 Soldeò á jumpeò wirå froí piî ¸ oæ thå 740¶ tï thå FASÔ (normallù � closed© contacô oæ switcè S1A. Û ]22 Soldeò  á jumpeò wirå froí thå FASÔ (normallù closed© contacô  oæ � switcè S1 tï thå SLO× (normallù open© contacô oæ switcè S1A¬ anä � continuå thå jumpeò wirå tï piî 1³ oæ thå 8253. Û ]23 Soldeò á 56° ohí resistoò froí piî 1´ tï pinó ´ anä µ (joined© oî � thå 7406. Û ]24 Soldeò á 56° ohí resistoò froí piî 1´ tï piî ¶ oî thå 7406. Û ]25 Soldeò á 56° ohí resistoò froí piî 1´ tï piî 1° oî thå 7406. Û ]26 Soldeò á 56° ohí resistoò froí piî 1´ tï piî ¹ anä 1° (joined© oî � thå 7406. Û ]27 Soldeò á 56° ohí resistoò froí piî 1´ tï piî ¸ oî thå 7406. Û ]28 Soldeò á 56° ohí resistoò froí piî 1± tï piî · oî thå 7406. Û ]29 Soldeò á 56° ohí resistoò froí piî 1³ tï piî · oî thå 7406. Û ]30 Soldeò á 100° pÆ capacitoò froí piî 1± tï piî ¶ oî thå 7406. Û ]31 Soldeò  á 100° pÆ capacitoò froí piî 1³ tï pinó ´ anä µ  (joined© � oî thå 7406. Û ]32 Soldeò  á  100°  pÆ  capacitoò froí piî · tï  pinó  9,1°  anä  1² � (joined© oî thå 7406. Û ]33 Soldeò  á  jumpeò wirå froí thå SLO× (normallù open©  contacô  oæ � switcè S1 tï piî · oæ thå 7406. Û ]34 Thoroughlù cleaî youò handiworë witè isopropyì alcohoì anä aî olä � toothbrush®   Looë  foò soldeò bridges¬ colä  soldeò  jointó  anä � otheò manifestationó oæ Murphy'ó law® Iæ nothinç else¬ aô  leasô � counô thå connectionó aô thå pinó oæ thå 7406: pinó ± anä ² arå useä bù MD³ ­ makå nï connections! piî ³ ­ ± wirå tï swingeò oæ switcè S1B pinó ´ anä µ (joined): ­ ± capacitor ­ ± resistor piî ¶ ­ ± capacitor ­ ± resistor piî · ­ ² resistors ­ ± capacitor Špiî ¸ ­ ± resistor ­ ± wirå tï FASÔ contacô oæ switcè S1B pinó 9¬ 1° anä 1² (joined) ­ ² resistors ­ ± capacitor piî 1±­ ± capacitor ­ ± resistor piî 1³­ ± resistor ­ ± capacitor piî 1´­ µ resistors Iæ  everythinç checkó ouô visually¬ rå-assemblå iî reverså  ordeò � oæ disassembly® Remembeò tï rå-connecô thå cablå tï thå terminaì � anä seô thå terminaì tï 1920° bauä beforå firinç iô alì up. 10 PRINT CHR$(26)CHR$(13)TAB(29)"CONFIG 4.6 - 08 JUL 87" 20 PRINT TAB(14)"Copyright 1987 by George Borys, all rights reserved." 30 PRINT "If you find this program valuable, please consider making "; 40 PRINT "a tax-deductable"CHR$(10)CHR$(13)" contribution to the Bay Area "; 50 PRINT "Micro Decision Users Association (BAMDUA)" 60 PRINT TAB(23)"P.O. Box 5152, Berkeley, CA 94705"CHR$(10) 70 DIM MTAB(5,9),DPB(4,15),FORMAT(5),SIDES(5),TPI(5),MTR(5),HST(5),SRT(5) 80 DIM HUT(5),HLT(5),DRM(5),DSM(5),BLS(5),DAT(11,5) 'USE ARRAYS TO STORE DATA 90 RESTORE 150 'FIRST, READ DATA FOR VARIOUS DPB'S 100 FOR I=1 TO 4 'THAT'S SSDD, DSDD, SSQD, DSQD 110 FOR J=1 TO 15 '15 BYTES PER DPB 120 READ N$ 'GET HEX BYTE FROM DATA STATEMENTS 130 DPB(I,J)=VAL("&H"+N$) 'CONVERT HEX TO DECIMAL 140 NEXT J,I 'AND NOW, THE DPB DATA FOR SSDD, DSDD, SSQD, DSQD: 150 DATA 28,00,04,0F,01,5E,00,7F,00,C0,00,20,00,02,00 'SSDD 160 DATA 28,00,04,0F,01,C2,00,BF,00,E0,00,30,00,02,00 'DSDD 170 DATA 28,00,04,0F,01,C7,00,BF,00,E0,00,30,00,02,00 'SSQD 180 DATA 28,00,05,1F,03,C7,00,BF,00,C0,00,30,00,02,00 'DSQD 190 ON ERROR GOTO 330 'ERROR TRAP IN CASE OF BOGUS FILESPEC 200 PRINT TAB(32)"FILES" 'PROVIDE A HEADING FOR THE DIRECTORY DUMP 210 FILES 'DISPLAY DIRECTORY 220 PRINT CHR$(10) 'START FOLLOWING PROMPT ON A NEW LINE: 230 LINE INPUT "SYSTEM IMAGE TO PATCH (OR [RETURN] TO EXIT): ";FILESPEC$ 240 IF FILESPEC$="" THEN SYSTEM 'ABORT TO CP/M IF NO FILESPEC IS GIVEN 250 FOR I=1 TO LEN(FILESPEC$) 'FOLD FILESPEC INTO UPPER CASE 260 C=ASC(MID$(FILESPEC$,I,1)) 'GET ASCII VALUE OF EACH CHARACTER 270 MID$(FILESPEC$,I,1)=CHR$(C+32*(C=>ASC("a"))) 'FORCE TO UPPER CASE 280 NEXT I 'DO EVERY CHARACTER 290 PRINT CHR$(10)"Loading system image from file "FILESPEC$" ->" 300 OPEN "I",1,FILESPEC$ 'WILL GENERATE ERROR HERE IF FILE DOES NOT EXIST 310 CLOSE 'FILE EXISTS 320 GOTO 350 'SKIP OVER ERROR MESSAGE 330 PRINT "ERROR ACCESSING "FILESPEC$" -- IS IT THERE?" 340 RESUME 230 'TRY AGAIN TO GET VALID FILESPEC 350 ON ERROR GOTO 0 'TURN OFF ERROR TRAP 360 OPEN "R",1,FILESPEC$,128 ' OPEN FILESPEC FOR RANDOM ACCESS 370 FIELD 1,128 AS BUFFER$ 'FIELD THE BUFFER AS ONE LARGE BLOCK 380 DEF FNBLOCK(N)=INT(N/128)-1 'TRANSLATES ADDRESS TO BLOCK NUMBER 390 BOOTBLK=FNBLOCK(&H900) 'BOOT SECTOR BEGINS AT ADDRESS 0900H 400 GET 1,BOOTBLK ' GET BOOT SECTOR FOR CBIOS ADDRESS, LOOK FOR CODE: 410 T$=CHR$(&HB7)+CHR$(&HC2)+CHR$(&H18)+CHR$(0)+CHR$(&HC3) 'JUST BEFORE BIOS 420 X=INSTR(BUFFER$,T$) 'IS THE TARGET STRING IN THE BOOT SECTOR? 430 IF X>0 THEN 470 ELSE CLOSE'IF IT IS, THEN SKIP TO PROCESS THE INFORMATION 440 PRINT FILESPEC$" IS NOT A VALID SYSTEM IMAGE!" 'TARGET STRING NOT FOUND 450 ON ERROR GOTO 330 'RE-INSTALL ERROR TRAP 460 GOTO 230 'GO BACK TO INPUT PROMPT 470 BIOS=ASC(MID$(BUFFER$,X+5,1))+256*ASC(MID$(BUFFER$,X+6,1)) 'BIOS ADDRESS 480 OFFSET=BIOS-&H2300 'ADDRESS OFFSET WITHIN SYSTEM IMAGE 490 BIOSBLK=FNBLOCK(&H2300) 'BLOCK CONTAINING BEGINNING OF CBIOS 500 GET 1,BIOSBLK 'GET FIRST BLOCK OF CBIOS WITH ITS ADDRESS VECTORS 510 MTAB=ASC(MID$(BUFFER$,69,1))+256*ASC(MID$(BUFFER$,70,1)) 'MTAB ADDRESS 520 RAMDATX=ASC(MID$(BUFFER$,65,1))+256*ASC(MID$(BUFFER$,66,1)) 'RAMDATX ADR 530 DPB0=RAMDATX-75 'BACKUP TO DPB FOR DRIVE "A" 540 DPBBLK=FNBLOCK(DPB0-OFFSET) 'BLOCK CONTAINING THE 75 BYTES OF DPB'S 550 DPBSTART=DPB0-128*INT(DPB0/128) 'OFFSET TO START OF DPB0 IN DPBBLK 560 MTBLOCK=FNBLOCK(MTAB-OFFSET) 'BLOCK CONTAINING MTAB 570 MTSTART=MTAB-128*INT(MTAB/128) 'OFFSET TO START OF MTAB IN MTBLOCK 580 GET 1,MTBLOCK 'GET BLOCK CONTAINING MTAB 590 T1$=BUFFER$ 'SAVE BUFFER FOR MTAB DISPLAY 600 GET 1,DPBBLK 'GET DISK PARAMETER BLOCK 610 T2$=BUFFER$ 'SAVE BUFFER FOR DPB DISPLAY 620 IF MTSTART>(128-45) THEN 650 'SKIP TO BLOCK BRIDGE 630 MTAB$=MID$(T1$,MTSTART+1,45) 'OTHERWISE THIS IS THE MTAB INFO 640 GOTO 670 'BYPASS THE BLOCK BRIDGE: 650 GET 1,MTBLOCK+1 'GET REST OF MTAB 660 MTAB$=MID$(T1$,MTSTART,45)+LEFT$(BUFFER$,MTSTART+45-128) 'BUILD MTAB$ 670 IF DPBSTART>(128-75) THEN 700 'SKIP TO BLOCK BRIDGE 680 DPB$=MID$(T2$,DPBSTART+1,75) ' OTHERWISE THIS IS THE DPB INFO 690 GOTO 720 'SKIP THE BLOCK BRIDGE 700 GET 1,DPBBLK+1 'GET REST OF DPB 710 DPB$=MID$(T2$,DPBSTART+1,75)+LEFT$(BUFFER$,DPBSTART+75-128) 'BUILD DPB$ 720 DRIVES=1 'INITIALIZE COUNT OF CURRENTLY INSTALLED DRIVES 730 FOR D=1 TO 5 'ONE MTAB FOR EACH OF 5 DRIVES (A-E) 740 FOR I=1 TO 9 'NINE BYTES PER MTAB 750 MTAB(D,I)=ASC(MID$(MTAB$,I+9*(D-1),1)) 'GET MTAB DATA 760 NEXT I 'NEXT BYTE IN MTAB 770 DRIVES=DRIVES-(MTAB(D,1)<>MTAB(1,1)) 'TALLY UP NUMBER OF PHYSICAL DRIVES 780 NEXT D 'NEXT DRIVE 790 GOSUB 2190 ' DISPLAY MTAB INFORMATION 800 PRINT CHR$(10)FILESPEC$" IS CURRENTLY CONFIGURED AS A"DRIVES"DRIVE SYSTEM." 810 INPUT " -PRESS [RETURN], OR ENTER NEW NUMBER OF DRIVES (1 - 4): ";MAXDRV 820 IF MAXDRV<1 OR MAXDRV>4 THEN MAXDRV=DRIVES 'ACCEPT VALID NUMBERS 830 PRINT MAXDRV"DRIVE SYSTEM." 840 MTAB(1,1)=(MTAB(1,1) AND &HF8) OR 1 'INITIALIZE MTAB MOTOR CONTROL BITS 850 MTAB(2,1)=(MTAB(2,1) AND &HF8) OR 2 ' FOR A 4-DRIVE SYSTEM 860 MTAB(3,1)=(MTAB(3,1) AND &HF8) OR 4 ' (CAN ALWAYS BE CRUNCHED DOWN 870 MTAB(4,1)=(MTAB(4,1) AND &HF8) OR 4 ' TO FEWER DRIVES LATER) 880 FOR I=1 TO 4 '4 PHYSICAL DRIVES NUMBERED 0-3 890 MTAB(I,2)=(MTAB(I,2) AND &H7C) OR I-1 900 NEXT I 'MOTOR CONTROL BITS NOW SET FOR UP TO 4 DRIVES. 910 FOR DRIVE=0 TO MAXDRV-1 'GET INFORMATION FOR NUMBER OF DRIVES SPECIFIED 920 DRIVE$=CHR$(65+DRIVE) 'CREATE DRIVE LETTER 930 PRINT CHR$(10)"DRIVE "CHR$(34)DRIVE$CHR$(34)" CURRENTLY"; 940 PRINT SIDES(DRIVE+1)"SIDED." 'PRINT DEFAULT SETTING 950 INPUT "-PRESS [RETURN], OR ENTER NEW NUMBER OF SIDES (1 - 2): ";S 960 IF S<1 OR S>2 THEN S=SIDES(DRIVE+1) 'USE DEFAULT IF NO VALID ENTRY 970 PRINT S"SIDED DRIVE "CHR$(34)DRIVE$CHR$(34) 'SAY WHAT YOU'RE USING 980 IF S=1 THEN 1020 'SKIP IF SINGLE SIDED DRIVE 990 MTAB(DRIVE+1,1)=MTAB(DRIVE+1,1) OR &H20 'SET BIT FOR DS 1000 MTAB(DRIVE+1,2)=MTAB(DRIVE+1,2) OR 4 'SET BIT FOR DOUBLE SIDED MEDIA 1010 GOTO 1040 'SKIP SINGLE SIDED ROUTINE 1020 MTAB(DRIVE+1,1)=MTAB(DRIVE+1,1) AND &HDF 'RESET BIT -> SINGLE SIDED 1030 MTAB(DRIVE+1,2)=MTAB(DRIVE+1,2) AND &HFB 'RESET BIT -> SINGLE SIDED 1040 PRINT CHR$(10)"DRIVE "CHR$(34)DRIVE$CHR$(34)" IS"TPI(DRIVE+1)"TPI." 1050 INPUT "-PRESS [RETURN] OR ENTER NEW TPI (48 - 96): ";TPI 1060 IF TPI<>48 AND TPI<>96 THEN TPI=TPI(DRIVE+1) 'INSTALL DEFAULT IF NEEDED 1070 MTAB(DRIVE+1,2)=MTAB(DRIVE+1,2) AND &HDF 'RESET BIT -> 40 TRACK 1080 IF TPI=48 THEN 1100 'SKIP SETTING QUAD DENSITY BIT IF 48 TPI 1090 MTAB(DRIVE+1,2)=MTAB(DRIVE+1,2) OR &H20 'SET BIT -> 80 TRACK 1100 PRINT TPI"TRACKS PER INCH DRIVE "CHR$(34)DRIVE$CHR$(34)CHR$(10) 1110 PRINT "MOTOR ON WAIT TIME FOR DRIVE "CHR$(34)DRIVE$CHR$(34)" IS"; 1120 PRINT MTR(DRIVE+1)" mS." 'DISPLAY DEFAULT 1130 PRINT "-PRESS [RETURN] OR ENTER A NEW MOTOR ON WAIT TIME (0-1020 mS): ?"; 1140 LINE INPUT Q$ 'GET THE NEW MOTOR ON WAIT TIME 1150 IF Q$="" THEN 1170 ELSE Q=VAL(Q$) 'SKIP TO DEFAULT IF [RETURN] 1160 IF Q=>0 AND Q<=1020 THEN MTR(DRIVE+1)=4*INT(Q/4) 'INSTALL VALID NUMBERS 1170 PRINT "MOTOR ON WAIT TIME:"MTR(DRIVE+1)"mS."CHR$(10) 1180 MTAB(DRIVE+1,3)=INT(MTR(DRIVE+1)/4) 'INSTALL MOTOR ON WAIT TIME 1190 PRINT "HEAD SETTLING TIME AFTER SEEK FOR DRIVE "CHR$(34)DRIVE$CHR$(34); 1200 PRINT " IS"HST(DRIVE+1)" mS." 'DISPLAY DEFAULT 1210 PRINT "-PRESS [RETURN] OR ENTER NEW HEAD SETTLING TIME (0-1020 mS): ?"; 1220 LINE INPUT Q$ 1230 IF Q$="" THEN 1250 ELSE Q=VAL(Q$) 1240 IF Q=>0 AND Q<=1020 THEN HST(DRIVE+1)=4*INT(Q/4) 'ACCEPT LEGIT NUMBERS 1250 PRINT "HEAD SETTLING TIME AFTER SEEK:"HST(DRIVE+1)"mS."CHR$(10) 1260 MTAB(DRIVE+1,4)=INT(HST(DRIVE+1)/4) 'INSTALL NUMBER IN MTAB 1270 PRINT "STEPPING RATE FOR DRIVE "CHR$(34)DRIVE$CHR$(34)" IS"; 1280 PRINT SRT(DRIVE+1)"mS." 1290 INPUT "-PRESS [RETURN] OR ENTER A NEW STEPPING RATE (1-15 mS): ";Q 1300 IF Q=>1 AND Q<=15 THEN SRT(DRIVE+1)=INT(Q) 'ACCEPT VALID NUMBERS 1310 PRINT "STEPPING RATE:"SRT(DRIVE+1)"mS."CHR$(10) 1320 PRINT "HEAD UNLOAD TIME FOR DRIVE "CHR$(34)DRIVE$CHR$(34)" IS"; 1330 PRINT HUT(DRIVE+1)"mS." 1340 INPUT "-PRESS [RETURN] OR ENTER NEW HEAD UNLOAD TIME (16-240 mS): ";Q 1350 IF Q=>16 AND Q<=240 THEN HUT(DRIVE+1)=16*INT(Q/16) 'ACCEPT VALID NUMBERS 1360 PRINT "HEAD UNLOAD TIME:"HUT(DRIVE+1)"mS."CHR$(10) 1370 MTAB(DRIVE+1,5)=HUT(DRIVE+1)/16+16*(16-SRT(DRIVE+1)) 1380 PRINT "HEAD LOAD TIME FOR DRIVE "CHR$(34)DRIVE$CHR$(34)" IS"; 1390 PRINT HLT(DRIVE+1)"mS." 1400 INPUT "-PRESS [RETURN] OR ENTER NEW HEAD LOAD TIME (2-254 mS): ";Q 1410 IF Q=>2 AND Q<=254 THEN HLT(DRIVE+1)=2*INT(Q/2) 'ACCEPT VALID HLT 1420 PRINT "HEAD LOAD TIME:"HLT(DRIVE+1)"mS."CHR$(10) 1430 MTAB(DRIVE+1,6)=1+2*INT(HLT(DRIVE+1)/2) 'THAT'S THE WAY IT'S STORED. 1440 NEXT DRIVE 1450 PRINT CHR$(10)"Validating data..." 'SOUNDS BETTER THAN 'DIDDLING AROUND' 1460 FOR DRIVE=MAXDRV+1 TO 5 'INSTALL VIRTUAL DRIVE INFORMATION 1470 FOR I=1 TO 9 '9 BYTES IN MTAB 1480 MTAB(DRIVE,I)=MTAB(1,I) 'VIRTUAL DRIVES == DRIVE 'A' 1490 NEXT I,DRIVE 'FINISH INSTALLING VIRTUAL MTABS 1500 FOR D=1 TO 5 'NOW INSTALL ALL 5 DRIVES IN DPB$ AND MTAB$ 1510 FOR I=1 TO 9 '9 BYTES PER MTAB 1520 MID$(MTAB$,I+9*D-9,1)=CHR$(MTAB(D,I)) 'INSTALL BYTE IN MTAB IMAGE 1530 NEXT I 'FINISH ONE MTAB 1540 SINGLE=((MTAB(D,2) AND 4)=0) 'CHECK FOR SINGLE SIDED DRIVE 1550 QUAD=((MTAB(D,2) AND 32)=32) 'CHECK FOR QUAD DENSITY DRIVE 1560 FORMAT(D)=(2+SINGLE-2*QUAD) '4 POSSIBLE FORMATS ARE SSDD,DSDD,SSQD,DSQD 1570 FOR J=1 TO 15 '15 BYTES PER DPB TO INSTALL NOW 1580 MID$(DPB$,J+15*D-15,1)=CHR$(DPB(FORMAT(D),J)) 'INSTALL BYTE IN DPB IMAGE 1590 NEXT J,D 'FINISH INSTALLING DPB FOR EACH DRIVE 1600 GOSUB 2190 'DISPLAY ALL THAT WONDERFUL DATA ABOUT THE CONFIGURATION 1610 PRINT CHR$(10)"PRESS [RETURN] TO UPDATE "FILESPEC$ 1620 PRINT " [ESC] TO EXIT WITHOUT CHANGING, OR 1630 PRINT " ANY OTHER KEY TO RE-CONFIGURE: "; 1640 Q$=INKEY$ 'CHECK KEYBOARD - LOOP UNTIL KEY PRESSED 1650 IF Q$="" THEN 1640 ELSE IF Q$=CHR$(13) THEN 1680 'CHR$(13)=[RETURN] 1660 IF Q$=CHR$(27) THEN SYSTEM ELSE CLOSE 'CHR$(27)=[ESC] 1670 GOTO 190 'FILE IS CLOSED, RUN THE PROGRAM AGAIN 1680 GET 1,MTBLOCK 'GET MTAB INTO BUFFER 1690 T$=BUFFER$ 'TEMP STORAGE OF BUFFER FOR UPDATE 1700 MID$(T$,MTSTART+1,45)=MTAB$ 'INSTALL MTAB 1710 LSET BUFFER$=T$ 'BACK INTO BUFFER 1720 PUT 1,MTBLOCK 'BACK INTO FILE 1730 IF NOT (MTSTART>(128-45)) THEN 1790 'SKIP IF NO DEBLOCKING TO DO 1740 GET 1,MTBLOCK+1 'GET SECOND PART OF MTAB INTO BUFFER 1750 T$=BUFFER$ 'TEMP STORAGE OF BUFFER FOR UPDATE 1760 MID$(T$,1,MTSTART+45-128)=RIGHT$(MTAB$,MTSTART+45-128) 1770 LSET BUFFER$=T$ ' INSTALL REMAINDER OF MTAB 1780 PUT 1,MTBLOCK+1 'PUT BACK INTO FILE 1790 GET 1,DPBBLK 'GET BLOCK WITH DPB INFO 1800 T$=BUFFER$ 'TEMP STORAGE OF DPB BLOCK 1810 MID$(T$,DPBSTART+1,75)=DPB$ 'INSTALL DPB IN TEMP BUFFER 1820 LSET BUFFER$=T$ 'BACK INTO BUFFER 1830 PUT 1,DPBBLK 'BACK INTO FILE 1840 IF NOT (DPBSTART>(128-75)) THEN 1900 'SKIP IF NO DEBLOCKING TO DO 1850 GET 1,DPBBLK+1 'GET SECOND PART OF DPB INTO BUFFER 1860 T$=BUFFER$ 'TEMP STORAGE OF BUFFER FOR UPDATE 1870 MID$(T$,1,DPBSTART+75-128)=RIGHT$(DPB$,DPBSTART+75-128) 'UPDATE DPB 1880 LSET BUFFER$=T$ 'INSTALL REMAINDER OF DPB 1890 PUT 1,DPBBLK+1 'PUT BACK INTO FILE 1900 GET 1,FNBLOCK(&H980) 'GET BOOT SECTOR WITH BTAB, DPB 1910 XSUM=0 'INITIALIZE CHECKSUM TO ZERO 1920 FOR I=1 TO 25 'CHECK ALL 25 BYTES, JUST LIKE THE CBIOS DOES 1930 XSUM=XSUM XOR ASC(MID$(BUFFER$,I,1)) ' CHECKSUM 1940 NEXT 'PROCESS NEXT BYTE THROUGH CHECKSUM ALGORITHM 1950 T$=BUFFER$ 'PUT BUFFER INTO TEMP STORAGE 1960 FOR I=1 TO 9 '9 BYTES IN MTAB 1970 MID$(T$,I,1)=CHR$(MTAB(1,I)) 'INSTALL MTAB BYTES INTO TEMP STORAGE 1980 NEXT I 'NEXT BYTE 1990 IF XSUM<>0 THEN 2080 'SKIP DPB AND CHECKSUM ON REV 1.3 2000 FOR I=1 TO 15 '15 BYTE DPB TO INSTALL: 2010 MID$(T$,I+9,1)=CHR$(DPB(FORMAT(1),I)) ' INSTALL APPROPRIATE DPB 2020 NEXT I 'NEXT BYTE 2030 XSUM=0 'INITIALIZE NEW CHECKSUM: 2040 FOR I=1 TO 24 '25TH BYTE WILL BE THE CHECKSUM 2050 XSUM=XSUM XOR ASC(MID$(T$,I,1)) 'CALCULATE CHECKSUM 2060 NEXT I 'NEXT BYTE 2070 MID$(T$,25,1)=CHR$(XSUM) 'INSTALL CHECKSUM INTO TEMP STORAGE 2080 LSET BUFFER$=T$ 'PUT TEMP STORAGE INTO BUFFER 2090 PUT 1,FNBLOCK(&H980) 'PUT BOOT SECTOR BACK INTO FILE 2100 CLOSE 'DONE. -BUT LEAVE A PARTING MESSAGE: 2110 PRINT CHR$(26) 'CLEAR THE DISPLAY 2120 PRINT "The system image in "FILESPEC$" has been re-configured." 2130 PRINT CHR$(10)"TO INSTALL "FILESPEC$" ON SYSTEM TRACKS, TYPE:"CHR$(10) 2140 PRINT " SYSGEN "FILESPEC$;CHR$(10) 2150 PRINT " - THEN JUST FOLLOW THE PROMPTS." 2160 PRINT " (TO INITIALIZE THE NEW SYSTEM FOR A DIFFERENT TERMINAL," 2170 PRINT " USE INIT.COM)."CHR$(10) 2180 SYSTEM 'EXIT BACK TO THE SYSTEM (YOU'RE DONE!) 2190 FOR I=1 TO 5 '5 LOGICAL DRIVES TO GET PARAMETERS ON: 2200 SIDES(I)=1+(MTAB(I,1) AND 32)/32 'NUMBER OF SIDES (1 OR 2) 2210 DAT(1,I)=SIDES(I) 'NUMBER OF SIDES (1 OR 2) 2220 TPI(I)=48+48*(MTAB(I,2) AND 32)/32 'TRACKS PER INCH (48 OR 96) 2230 DAT(2,I)=TPI(I) 'TRACKS PER INCH (48 OR 96) 2240 MTR(I)=4*MTAB(I,3) 'MOTOR ON WAIT TIME IN mS 2250 DAT(3,I)=MTR(I) 'MOTOR ON WAIT TIME IN mS 2260 HST(I)=4*MTAB(I,4) 'HEAD SETTLING TIME IN mS 2270 DAT(4,I)=HST(I) 'HEAD SETTLING TIME IN mS 2280 SRT(I)=16-INT(MTAB(I,5)/16) 'STEPPING RATE IN mS 2290 DAT(5,I)=SRT(I) 'STEPPING RATE IN mS 2300 HUT(I)=16*(MTAB(I,5) MOD 16) 'HEAD UNLOAD TIME IN mS 2310 DAT(6,I)=HUT(I) 'HEAD UNLOAD TIME IN mS 2320 HLT(I)=MTAB(I,6) AND 254 'HEAD LOAD TIME IN mS, THEN DIRECTORY SPACE: 2330 DAT(7,I)=HLT(I) 'HEAD LOAD TIME DATA 2340 DRM(I)=1+ASC(MID$(DPB$,8+15*I-15,1))+256*(ASC(MID$(DPB$,9+15*I-15,1))) 2350 DAT(8,I)=DRM(I) 'NUMBER OF DIRECTORY ENTRIES 2360 BLS(I)=2^(ASC(MID$(DPB$,3+15*I-15,1))-3) 'BLOCK SIZE IN KBYTES; BLOCKS: 2370 DAT(10,I)=BLS(I) 'BLOCK SIZE DATA 2380 BLOCKS=1+ASC(MID$(DPB$,6+15*I-15,1))+256*ASC(MID$(DPB$,7+15*I-15,1)) 2390 DSM(I)=BLOCKS*BLS(I) 'DISK SIZE IN K (JUST BASED ON NUMBER OF BLOCKS) 2400 FOR AL01=10 TO 11 'TO BE REALISTIC ABOUT IT THOUGH, LET'S SUBTRACT 2410 FOR BIT=0 TO 7 'THE BLOCKS THAT ARE DEVOTED TO THE DIRECTORY: 2420 USED=(ASC(MID$(DPB$,AL01+15*I-15,1)) AND 2^BIT)<>0 'INFO FROM AL0, AL1 2430 DSM(I)=DSM(I)+BLS(I)*USED 'RE-ADJUST THE DISK SIZE BY SUBTRACTING 2440 NEXT BIT,AL01 'EVERY BLOCK THAT'S DEVOTED TO THE DIRECTORY AREA. 2450 DAT(9,I)=DSM(I) 'FREE SPACE ON DISK 2460 NEXT I '(16 BITS TO CHECK IN AL0 AND AL1) 2470 PRINT CHR$(10)TAB(2)"SYSTEM IMAGE FILE: "FILESPEC$; 'NOW DISPLAY INFO: 2480 PRINT " (*->VIRTUAL DRIVE)" 2490 PRINT TAB(14)"DRIVE: A "; 2500 FOR I=2 TO 5 'USE * TO FLAG VIRTUAL DRIVES 2510 PRINT CHR$(64+I);MID$(" *",1-(MTAB(I,1)=MTAB(1,1)),1);" "; 2520 NEXT I 'DISPLAY INFO FOR ALL 5 LOGICAL DRIVES 2530 RESTORE 2640 'point to data for display 2540 FOR J=1 TO 10 '10 lines of data to display 2550 READ T$ 'read title 2560 PRINT TAB(19-LEN(T$))T$": "; 2570 READ PU$ 'READ DATA PRINT FORMAT 2580 FOR I=1 TO 5 '5 DRIVES OF DATA 2590 PRINT USING PU$;DAT(J,I); 'print data 2600 NEXT I 'next drive 2610 PRINT 'new line 2620 NEXT J 'next line of data 2630 RETURN 'end of display routine 2640 DATA "SIDES","#### " 2650 DATA "TRACKS PER INCH","#### tpi" 2660 DATA "MOTOR ON WAIT TIME","#### mS " 2670 DATA "HEAD SETTLING TIME","#### mS " 2680 DATA "STEPPING RATE","#### mS " 2690 DATA "HEAD UNLOAD TIME","#### mS " 2700 DATA "HEAD LOAD TIME","#### mS " 2710 DATA "DIRECTORY ENTRIES","#### " 2720 DATA "DISK STORAGE","#### K " 2730 DATA "BLOCK SIZE","#### K " 10 DATA "DIRECTORY ENTRIES","#### " 2720 DATA "DISK STORAGE","#### K "; DIAGNOSE is the software equivalent of opening ; up the case on your MD-3 and plugging a shorting ; jumper across JP4 (Rev. 2 Kohjinsha) or E5 (Rev. ; 2 Korean motherboard). Assumes ROM 3.1. ; ASEG BOOT EQU 0 ;COLD BOOT DIAGADR EQU 004EH ;DIAGNOSTICS ADDRESS ROMCTL EQU 0F6H ;OUT=ROM, IN=RAM RAM EQU 2000H ;SAFELY BEYOND ROM ; ORG 100H BEGIN: LXI H,PROGRAM ;HL > PROGRAM LXI D,RAM ;DE > RAM LXI B,LENGTH ;BC = BYTE COUNT DB 0EDH,0B0H ;Z-80 LDIR BLOCK MOVE JMP RAM ;NOW GO EXECUTE IT ; PROGRAM:OUT ROMCTL ;TURN ON THE ROM LXI H,BOOT ;COLD BOOT RETURN ADDRESS PUSH H ;ON THE STACK LHLD DIAGADR ;GET ADDRESS OF DIAGNOSTICS PCHL ;GO TO IT FINISH EQU $ LENGTH EQU FINISH-PROGRAM ;LENGTH OF PROGRAM END BEGIN IAGADR ;GET !  í°Ã Óö!å*NéÁ Proposeä Standarä Formaô foò Quaä Densitù Micrï-Decisioî Diskettes (Standard© (Proposeä© (Max) Diskettå Formaô Numberº (1© (2© (3© (4© (5)* FORMAÔ DESCRIPTION: Usefuì Storagå (Bytes)º 186Ë 384Ë 394Ë 792Ë 816K Sideó (SS/DS)º SS DS SS DS DS Densitù (DD/QD)º DÄ DÄ QÄ QÄ QD CYLinderó formatteä: 4° 4° 8² 8± 84 BLocë Sizå (BLS)º 2Ë 2Ë 2Ë 4Ë 2K DISË PARAMETEÒ BLOCK: Sectoró Peò Tracë (SPT)º 4° 4° 4° 4° 40 Blocë SHifô factoò (BSH)º ´ ´ ´ µ 4 BLocë Masë (BLM)º 1µ 1µ 1µ 3± 15 EXtenô Masë (EXM)º ± ± ± 3 1 Disë Sizå Maximuí (DSM)º 9´ 19´ 199 19¹ 404 DiRectorù Maximuí (DRM)º 12· 19± 19± 19± 447 ALlocatioî Bytå ° (AL0)º C° E° E° C° FE ALlocatioî Bytå ± (AL1)º ° ° ° ° 0 ChecK Sizå (CKS)º 3² 4¸ 4¸ 4¸ 112 OfFSeô (OFS)º ² ² ² ² 2 CBIOÓ REQUIREMENTS: CBIOÓ CSÖ Sizå (Bytes)º 3² 4¸ 4¸ 4¸ 112 CBIOÓ ALÖ Sizå ¨Bytes)º 1² 2µ 2µ 2µ 51 ª  Foò  hackeró  only® Diskettå  formaô  (5©  requireó � significanô expansioî oæ thå ALÖ anä CSÖ tableó iî  thå � CBIOS®   Forgeô iô unlesó yoõ havå  CBIOS.MAC¬  M80.COÍ � anä L80.COM. Diskettå formató (1© anä (2© arå generateä bù FORMAT.COÍ oî standarä � 4¸  tracë  peò incè (tpi© drives® Theså arå thå  "standard¢  Singlå � Sideä  Doublå Densitù (SSDD© anä Doublå Sideä Doublå Densitù  (DSDD© � formató  thaô arå useä oî thå normaì Micrï-Decision®   Formató  (3)¬ � (4© anä (5© arå designeä tï takå advantagå oæ thå increaseä  storagå � capacitù  oæ 9¶ tpé "quaä density¢ drives® Alì threå  quaä  densitù � formató makå uså oæ thå "extra¢ trackó thaô arå availablå beyonä thå � normaì "last¢ cylinder® Iî anù case¬ FORMAT.COÍ musô bå patcheä tï � generatå  theså  quaä densitù formats® Whilå somå  patchinç  oæ  thå � CBIOÓ ió alsï required¬ onlù formaô (5© haó gonå sï "hoç wild¢ thaô � thå  CBIOÓ  needó  tï  bå extensivelù  rå-written®   Formaô  (3©  ió � basicallù thå DSDÄ formaô "unfolded¢ tï fiô oî onå sidå oæ á 9¶  tpé � diskette® Iô ió includeä becauså thå Shugarô SA41° singlå sideä  9¶ � tpé  drivå  ió sometimeó availablå foò aó littlå aó  onå  dollaò  aô � computeò  "swað  meets"® Onlù twï "extra¢ trackó  arå  added¬  thuó � keepinç  thå maximuí blocë numbeò belo÷ 200® Unlesó thå  CBIOÓ  ALÖ � tableó arå expandeä beyonä theiò presenô 2µ bytå length¬ thå maximuí � permissiblå  blocë  numbeò ió 19¹ (ALV=(DSM/8)+1)®   Foò  thió  samå � reason¬  formaô (4© useó á 4Ë blocë sizå anä caî onlù afforä tï  adä � onå extrá cylinder® Thå sizå oæ thå CBIOÓ CSÖ tableó placå  similaò � restrictionó  oî thå maximuí numbeò oæ directorù  entries®   Withouô � expandinç thå CSÖ tableó beyonä theiò presenô 4¸ bytes¬ á maximuí oæ �Š19± directorù entrieó arå checkeä (CKS=(DRM+1)/4)® Formaô (5)¬  foò � example¬  woulä  reqirå  significanô expansioî oæ thå  CSÖ  anä  ALÖ � tableó  iî  thå  CBIOS®   Sucè  aggressivå  tweakinç  oæ  thå  CBIOÓ � generallù  meanó  editinç CBIOS.MAà anä theî rå-assemblinç  iô  witè � M80.COÍ   anä  L80.COM®   Sincå  noô  alì  oæ  theså  programó   arå � universallù available¬ implementatioî oæ formaô (5© ió besô lefô  tï � thå  dedicateä hacker® Oî thå otheò hand¬ diskettå formató (3©  anä � (4©  maù bå fullù implementeä witè á "tooì kit¢ consistinç  oæ  jusô � SYSGEN.COÍ anä DDT.COÍ froí thå originaì CP/Í distributioî diskette® � Iî  keepinç  witè  thå KISÓ philosophù (Keeð  Iô  Simple¬  Stupid!)¬ � formaô  (5©  musô falì bù thå waysidå iî favoò oæ  thå  morå  easilù � implementeä formató (3© anä (4)® Steð 1º Forcinç FORMAT.COÍ tï formaô morå thaî 4° tracks. Beforå attemptinç anù patchinç oæ FORMAT.COM¬ geô "thå biç  picture¢ � bù  doinç  á harä copù dumð oæ thå file® Togglå thå printeò  oî  bù � pressinç  controì-Ð  (^P)¬  theî uså DDÔ  tï  loaä  FORMAT.COÍ  intï � memory: DDÔ FORMAT.COÍ {Return} DDÔ  wilì  displaù (anä print© itó versioî number¬ followeä  bù  twï � addresseó titleä "NEXT¢ anä "PC"® Pà (Prograí Counter© wilì  alwayó � bå  0100¬ buô NEXÔ (thå nexô availablå addresó afteò thå enä oæ  thå � file© wilì depenä oî whicè revisioî oæ FORMAT.COÍ ió beinç  patched® � Iæ  thå NEXÔ addresó ió 0B00¬ thå filå occupieó 1° blockó oæ  memorù � (0B0° ­ 010° ½ 0A00¬ oò 1° blockó oæ 25¶ byteó each)® Thå  commanä � tï dumð theså 1° blockó tï thå screeî (anä thå printer© woulä be: D010° 0AFÆ {Return} No÷  thaô  yoõ  havå harä copù oæ FORMAT.COM¬ looë  foò  thå  formaô � controì  tableó  locateä  jusô afteò thå gianô pilå  oæ  ASCIÉ  texô � messages® Thå tablå yoõ arå lookinç foò wilì enä witè thå numbers: 0± 0² 0³ 0´ 0µ FÆ FE Theså arå thå sectoò numberó useä foò formattinç disketteó witè fivå � 1Ë sectors® Iô wilì bå followeä bù otheò tableó thaô wilì end: 0± 0² 0³ 0´ 0µ 0¶ 0· 0¸ 0¹ 0Á 0 0à 0Ä 0Å 0Æ 1° FÆ FE (foò formattinç witè sixteeî 25¶ bytå sectors)¬ anä possiblù also 0± 0² 0³ 0´ 0µ 0¶ 0· 0¸ FÆ FE (foò  formattinç  witè eighô 51² bytå sectors)®   Thå  firsô  table¬ � however¬  ió  thå  onlù onå thaô needó tï  bå  patched®   Thå  tablå � structurå coulä bå expresseä iî assemblù languagå aó follows: ;FIRST¬ THÅ TABLÅ FOÒ SINGLÅ SIDEÄ FORMAT: DEF× S_NUMÓ ;² BYTÅ ADDRESSº TABLÅ CONTAININÇ SECTOÒ NUMBERS DEF 0³ ;CODÅ FOÒ 1Ë SECTOÒ SIZÅ DEF µ ;µ SECTOÒS DEF 5FH ;GAÐ LENGTÈ (GAÐ 3© USEÄ IÎ FORMATTING DEF 0E5È ;FILLEÒ BYTÅ USEÄ IÎ FORMATTING DEF 2¸È ;(LASÔ TRACË NUMBEÒ « 1© OÎ SINGLÅ SIDEÄ FORMAT ;CHANGÅ TÏ 51È FOÒ SINGLÅ SIDEÄ QUAÄ DENSITY. ;REPEAÔ THÅ ABOVÅ INFÏ FOÒ DOUBLÅ SIDED: DEF× S_NUMÓ ;REPEAÔ ADDRESÓ OÆ SECTOÒ NUMBEÒ TABLE DEFB 0³ ;CODÅ FOÒ 1Ë SECTOÒ SIZE DEF µ ;µ SECTORS DEF 5FÈ ;GAÐ LENGTH DEF 0E5È ;REPEAÔ FILLEÒ BYTE Š DEF 50È ;(LASÔ TRACË NUMBEÒ « 1© OÎ DOUBLÅ SIDEÄ FORMAT ;CHANGÅ TÏ 0A2È FOÒ DOUBLÅ SIDEÄ QUAÄ DENSITY. ;FINALLY¬ THÅ TABLÅ OÆ SECTOÒ NUMBERS: S_NUMS: DEF 1,2,3,4,5 DEF 0FFÈ ;FLAÇ ENÄ OÆ SECTOÒ NUMBERS DEF 0FEÈ ;FLAÇ ENÄ OÆ TABLE Bù  changinç  thå  28È bytå tï 51H¬ thå  singlå  sideä  formaô  wilì � continuå  foò á totaì oæ 8± tracks® Similarly¬ thå changå froí  50È � tï 0A2È wilì forcå thå doublå sideä formaô tï continuå througè tracë � 161® Steð 2º Correctinç thå booô sectoò iî FORMAT.COM Unlesó FORMAT.COÍ writeó ouô thå correcô booô sector¬ thå CBIOÓ wilì � bå  unablå  tï recognizå thå ne÷ diskettå aó á  valiä  quaä  densitù � format®   Thå  datá thå CBIOÓ expectó tï finä ió locateä iî  twï  2´ � bytå  lonç tableó consistinç oæ á ¹ bytå BTA (booô versioî  oæ  thå � CBIOÓ  MTAB© anä itó associateä 1¶ bytå Disë Parameteò Blocë  (DPB)® � Theså  tableó arå locateä jusô followinç thå formaô  controì  tableó � describeä earlier® Thå originaì tablå foò singlå sideä diskó is: 0° 0° 0° 0° 0° 0° 0° 0° 0° 2¸ 0° 0´ 0Æ 0± 5Å 0° 7Æ 0° C° 0° 2° 0° 0² � 0° E1 anä shoulä bå changeä to: 0± F¸ 5¸ 0µ DÆ 0³ 0µ 1à FÆ 2¸ 0° 0´ 0Æ 0± C· 0° BÆ 0° E° 0° 3° 0° 0² � 0° 16 Thå originaì tablå foò doublå sideä diskó is: 0° 0´ 0° 0° 0° 0° 0° 0° 0° 2¸ 0° 0´ 0Æ 0± C² 0° BÆ 0° E° 0° 3° 0° 0² � 0° 89 anä shoulä bå changeä to: 2± Fà 7Ä 0µ DÆ 0³ 0µ 1à FÆ 2¸ 0° 0µ 1Æ 0³ C· 0° BÆ 0° C° 0° 3° 0° 0² � 0° 24 Alì  otheò changeó arå strictlù cosmetic¬ buô recommendeä  nonå  thå � less®   Gï  tï thå ASCIÉ texô portioî oæ thå codå anä adä  thå  texô � "Quaä  densitù  version¢  jusô beforå thå  copyrighô  notice®   Alsï � changå everù occurrencå oæ "Doublå density¢ tï "Quaä density"® Mosô � heartilù recommendeä ió addinç thå texô "8± cylinderó formatteä ­ 9¶ � tpi¢ jusô afteò thå "Noô á SYSTEÍ Diskette¢ message® Bå surå noô tï � clobbeò  thå Carriagå Returî ­ Linå Feeä (0DÈ 0AH© thaô followó  thå � "Noô á SYSTEM...¢ message¬ anä adä anotheò 0DÈ 0AÈ afteò thå "..® 9¶ � tpi¢  message®   Botè messageó wilì theî bå  displayeä  wheneveò  aî � attempô  ió  madå  tï  booô thå disë (eveî  iî  á  4¸  tpé  drive!)® � Finally¬  hiô á controì-à (^C© tï returî tï thå A¾ prompô  anä  savå � thå updateä formaô prograí bù typing: SAVÅ 10 FORMAT96.COÍ {Return} Steð 3º Correcôing thå CBIOÓ MTA anä DP iî MOVCPM.COM Thå  CP/Í  distributioî diskettå carrieó twï copieó  oæ  thå  systeí � image®   Onå copù ió oî thå systeí tracks¬ anä thå otheò copù ió  iî � thå filå MOVCPM.COM® Modifyinç thå systeí imagå iî MOVCPM.COÍ giveó � uó  thå opportunitù tï creatå custoí systeí imageó foò  botè  singlå � sideä anä doublå sideä quaä densitù booô disks® Repeaô thå ^Ð tricë � tï dumð MOVCPM.COÍ tï thå printer® Tï cuô dowî oî thå wasteä paper¬ �Šjusô dumð thå CBOOÔ area: D090° 09FÆ {Return} anä thå CBIOÓ area: D230° 2EFÆ {Return} Tï  creatå á singlå sideä quaä densitù MOVCPM.COM¬ jusô replacå  thå � firsô  2´  byteó aô 98° witè thå correcteä tablå  foò  singlå  sideä � diskó froí FORMAT96.COM: 0± F¸ 5¸ 0µ DÆ 0³ 0µ 1à FÆ 2¸ 0° 0´ 0Æ 0± C· 0° BÆ 0° E° 0° 3° 0° 0² � 0° 16 Tï  creatå á doublå sideä quaä densitù MOVCPM.COM¬  thå  replacemenô � byteó comå froí thå tablå foò doublå sideä disks: 2± Fà 7Ä 0µ DÆ 0³ 0µ 1à FÆ 2¸ 0° 0µ 1Æ 0³ C· 0° BÆ 0° C° 0° 3° 0° 0² � 0° 24 Theî  proceeä tï correcô thå DP anä MTA tableó thaô wilì bå  founä � somewherå betweeî 260° anä 2900® Yoõ wilì mosô likelù finä ¶  DPB'ó � oæ 1µ byteó each¬ beginninç witè á "default¢ SSDÄ DP of: 2¸ 0° 0´ 0Æ 0± C² 0° 7Æ 0° C° 0° 2° 0° 0² 00 whicè ió theî followeä bù eitheò µ morå SSDÄ DPB's¬ oò µ DSDÄ DPB's: 2¸ 0° 0´ 0Æ 0± C² 0° BÆ 0° E° 0° 3° 0° 0² 00 Thå "default¢ DP ió onlù useä wheî thå CBOOÔ checksuí fails¬ sï seô � iô tï thå whateveò DP waó specifieä iî thå booô sectoò (thaô  woulä � bå  byteó ¹ througè 2´ aó installeä aô addresó 098¸ ­ 0996)®   Theså � samå byteó arå installeä foò thå seconä DP also¬ sincå thaô ió  thå � drivå "A¢ DPB® Thå succeedinç DPB'ó arå modifieä aó ió  appropriatå � foò  thå targeô hardwarå configuration® Iæ thå DP ió  screweä  up¬ � however¬ don'ô leô iô worrù yoõ toï much® Thå DP foò eacè drivå ió � overwritteî  bù thå DP froí thå booô sectoò oæ whateveò disë ió  iî � thå  drivå wheî yoõ dï á warí boot® Abouô 5° oò 6° byteó afteò  thå � lasô  DPB¬  however¬ comeó thå MTA area® Thió seô oæ fivå  ¹  bytå � lonç tableó describeó anä controló thå disë drives® Thå firsô tablå � wilì generallù bå identicaì tï thå firsô ¹ byteó iî thå booô  sectoò � (addresó 98° ­ 988)® Thå fiftè tablå specifieó thå configuratioî oæ � thå  virtuaì  "E¢ drive¬ sï iô (anä anù otheò unuseä  drivå  tables© � wilì  bå identicaì tï thå firsô table® Thå byteó iî eacè  MTA  arå � defineä aó follows: Bytå 0º Biô 0,1¬ oò ² ió thå motoò controì biô (001,010,100,100). Bitó 3,´ describå disë usagå iî doublå sideä mode: °° -¾ Eveî trackó oî sidå 0¬ odä trackó oî sidå 1. 0± -¾ 1sô 4° (oò 80© trackó oî sidå 0¬ resô oæ trackó arå oî sidå 1 1° -¾ Botè trackó treateä aó singlå tracë witè  twicå aó manù sectors Biô µ flagó thå drivå aó doublå sided. Biô ¶ ió useä onlù bù foreigî disë formató iî CBIOÓ 3.1 Biô · flagó thå drivå aó holdinç á foreigî format Bytå 1º Biôó 0,± holä thå physicaì drivå addresó (00,01,10,11) Biô ² flagó thå drivå aó doublå sided Biôó 3,´ describå thå sectoò sizå useä durinç formatting: 0° -¾ 12¸ bytå sectors 0± -¾ 25¶ bytå sectors 1° -¾ 51² bytå sectors 1± -¾ 102´ bytå sectors Biô µ flagó thå drivå aó quaä densitù (¸° tracks) Biô ¶ flagó thå drivå aó doublå density Biô · flagó thå drivå foò uså aó á virtuaì drive ŠBytå 2º Motoò oî waiô timå iî incrementó oæ ´ ms. Bytå 3º Heaä settlå timå (afteò seek© iî incrementó oæ ´ ms. Bytå 4º 16*(16-steppinç ratå iî ms.© « (heaä unloaä time)*´ ms. Bytå 5º 2*(heaä loaä timå iî incrementó oæ ´ ms© « 1º (03) Bytå 6º Lasô sectoò numbeò oî tracë: (05) Bytå 7º Gað lengtè foò read/writå: (1CH) Bytå 8º Spacå foò holdinç currenô tracë numbeò (0FFH) Á  singlå sideä drivå wilì havå biô µ oæ bytå ° anä biô ² oæ bytå  ± � botè reseô tï 0® Á doublå sideä drivå wilì havå botè thoså bitó seô � tï  1® Thå firsô twï byteó oæ thå MTA entrieó foò  variouó  driveó � are: Singlå Sideä Doublå Sideä Singlå ­ Quaä Doublå ­ Quad� 0± D¸ ......® 2± Dà ......® 0± F¸ ......® 2± Fà ....... 0² 5¹ ......® 2² 5Ä ......® 0² F¹ ......® 2² FÄ ....... 0´ 5Á ......® 2´ 5Å ......® 0´ FÁ ......® 2´ FÅ ....... 04 5à ......® 24 5Æ ......® 04 F ......® 24 FÆ ....... Selecô byteó ² througè ¸ aó appropriatå foò thå particulaò drivå  tï � bå used® Thå  finaì  patcè  tï  makå ió iî thå  ASCIÉ  texô  oæ  thå  booô-uð � copyrighô noticå locateä á fe÷ hundreä byteó pasô thå MTA data® Tï � providå rooí foò á "Quaä Density¢ booô uð message¬ abbreviatå  otheò � portionó  oæ  thå booô uð messagå aó deemeä  appropriate®   Jusô  bå � carefuì noô tï clobbeò anù codå oò pointers® Wheî thå lasô tweaë ió � make¬ returî tï thå A¾ prompô witè á ^à anä savå thå ne÷ file: SAVÅ 5² MOVCPMQ2.COÍ {Return} Steð 4º FORMAT96inç anä SYSGENinç á quaä densitù booô disk. Beforå installinç á quaä densitù drivå aó drivå "A"¬ yoõ musô  firsô � generatå  á bootablå quaä densitù diskette® Thå easiesô waù  tï  dï � thió  ió tï temporarilù instalì á quaä densitù drivå aó  drivå  "B"® � Thå disë iî driöå "A¢ shoulä contaiî thå followinç files: DDT.COM¬ MOVCPMQ2.COM¬ FORMAT96.COM¬ anä SYSGEN.COM Uså  DDÔ  tï loaä thå formaô prograí intï memory¬  theî  modifù  thå � currenô systeí tï recognizå drivå "B¢ aó quaä density® Type: DDÔ FORMAT96.COÍ {Return} theî looë foò thå currenô MTA areá arounä F700H: DF70° {Return} Oncå  yoõ havå founä thå MTA area¬ locatå thå MTA foò  drivå  "B"® � Iô wilì begiî: 0² 5¹ ......® oò 2² 5Ä ...... Seô drivå "B¢ tï doublå sideä quaä densitù bù changinç thoså ² byteó � to: 2² 7D Ruî thå formaô prograí bù typing: G10° {Return} Wheî thå prograí askó foò á drive¬ presó "B"® Wheî askeä "Singlå oò � doublå sideä format?"¬ responä witè á "D"® Jusô "gï witè thå  flow¢ � anä yoõ wilì bå rewardeä witè á formatteä quaä densitù diskette. Tï turî thå diskettå intï á bootablå systeí diskette¬ type: MOVCPMQ² 6´ ª {Return} ŠThå  modifieä MOVCPÍ prograí wilì generatå á 64Ë systeí  anä  inforí � yoõ thaô iô ió readù tï sysgen® Aô thaô point¬ typå: SYSGEÎ {Return} anä  responä  tï  thå "Source?¢ querù witè á  {Return}¬  anä  answeò � "Destination?¢ witè á "B"® Presó {Returný wheî asked¬ anä yoõ  wilì � havå generateä á reaì livå quaä densitù booô disk® Steð 5º Iæ iô feeló good¬ dï it. Yoõ  maù  no÷ rå-configurå youò hardware¬ copù  thå  modifieä  fileó � (MOVCPMQ2.COÍ  anä FORMAT96.COM© tï youò ne÷ booô disk¬ anä  proceeä � tï  creatå  á  plethorá oæ ne÷ quaä densitù  booô  diskó  witè  jusô � FORMAT9¶   anä  SYSGEN®   Shoulä  youò  terminaì   requirå   speciaì � installatioî foò noî-standarä controì codes¬ thå recommendeä  methoä � oæ  patchinç  ió  witè INIT.COÍ anä  TERMINAL.DAÔ  froí  thå  Morro÷ � Owner'ó Revie÷ Upgradå kit® Iæ yoõ arå comfortablå witè DÕ oò  ZAP¬ � feeì  freå tï uså theí iî preferencå tï DDÔ foò patchinç MOVCPÍ  anä � FORMAT®   Iæ  yoõ havå noô yeô purchaseä MOR'ó  FLO  collectioî  oæ � Morro÷   sourcå  code¬  delaù  nï  longer®   Everù  littlå  biô   oæ � documentatioî oî "whaô makeó iô run¢ makeó iô easieò tï hack¬ tweak¬ � anä otherwiså fine-tunå youò machine® Havå aô it! ÍL͇· 7͸· 1ÍÍâ· ÷Í· ñÍK· Ís· åÍ´Í’(Í�·(Í‹·(Íò ÃÍ’ Ã:€·ÈG!�~Í #÷þ* 2•É>2•:]þ È:eþ ( ¨!]í°É§ÍÅþ8>ÿÉÕͧÍÑ!€ë·(éþ>È>þÉ!ì"ê!ÅÍþ (þ;(þ* Í™éþ "Xë*ês#r#:é·>À>üÉþ= W#~þ Ûz· :é<2éå·íRë*ês#r#"êá§Í× ~ ÍÍp:éG:NO<2N*L^#V#"LëÅÍ“ÁÈ:QO<2Q*O^#V#"OëÅÍ“ Í ÍÁȼ>2NìíSL*ê·íRË=}Ë?0<#"O2QÉåÅÅ ÍÁõÁ>A�_Í)Í Íá~þ (þ ( Å#å_ÍáÁêx·Èõ Íñ=òõ ÍÍæ_þÊÖA_þØ:é=»ØË#!ì^#V#íST^#VíSV>É) Í*T~þ (þ ( #Åå_ÍáÁì6 ÍÍx É*TÍ™>Ø:R<2RÍþ (þ;(þ* Í™ååí[V¯íRá82RÉͧØÍþ=>úÀå!ù Í0ëá· Ͷ·À·å!ž Í0ëá·ÀÍlË(ÍÅ·À�Ë_(Íœ·À’>ùÉ#ͧØ· #ÉÍ· .ÍlËo(ÍbØãËg(ÍbØÙËw( :¼ËÏ2¼ËÍ)ØÃ:Zþ åÍ€ }áÍ)ذ\:[GÍÍ)Øö�åÕW:Œ_<þ8Ñá>ô7É2Œ:‹þ !§ þ !­!³zw#6ÿÑá·ÉO:‹<2‹Ëa( þ :¼ËÇ2¼>2ŒÍ;ØåÍ€ :‹g}Ö %á 2º·É2»·É#Íþ08þ50 æ2¦Í™>É>øÉ#åÍlë##í[Xs#ráͧØ·(;Í· ÍlËW>÷ÈÍŽã:Zþ åÍ€ }áÍŽØÐ:[G\ÍÍŽ÷¾>ÿÍŽ#>Éå!ž Í0ëáÉþ^ÀÉÖ@Éþ'(·É(·ÉÍ;>ÉÅÕ|~þ'(!Í(Í*(Ít0ÑÁ7>öÉ# àÑÁ7>õÉy2‚ÑÁ·Éþ08þ:8 æ_þA8 þG0ÖÖ0·É7Éå*Xw#"XáÉ~þ 7É#þ ô·ÉÍ\~þ08þ:0>2Z>:[Í;Éþ' $#~þ'  # ~Í*(þ' ò#>2Zy2[·Éþ08þ:8Í(Í*( þ'(#~ ã>2Zy2[·É~ÍÀ#øþ Èþ Èþ Èþ,Éþ ÈþÉ:[O· >ûÉ"…##~· >ûÉG#¹ \þa8þ{0æ_¾ #î*…>ÉXÎåë^#VáÉÍ× :¦·  }Í"Æ027Ö1Ë'_!–^#VÕ %Í ÑÍ RÍÍx ÉÍÙ*Á:‡ÍT*Ã:ˆÍTÍ�*…Å·íR"‰ÉÅíS½Í 2‡íS¿Í 2ˆíSÁÍ$íSÃÍ$íS…É!e ÅÍ0Á(ò>ÿxÉ!e Í0ÈÍD÷~·ÈG#~#~#¶#(ñy Àìå++~ëw#ë#~ëw#ëáÉ·ÈG^#VÕå*…í[½·íRëár+s#Ñ#å*…w#þÿ ø"…á×É*½~þÿÈþ 6*É#ò Í>ð¥þ0ÉͲ·ÀÍÍ)Í;ÍPÍÈÉÍÞ7Í ëÍÇÝ~·È>ñÉéÍÞ:Í ëÍÝÝ~·È>ðÉé*.%%åÝáÝ6Ý6Ý6Ý6Ý6 Ý6Ý6 Ý6É*.ÍL É! "‘ÍL íS“É*‘BÍL ÍR :¦É*‘PÍL ÍR !§í°É*‘HÍL ÕÍÈ ÑÍú *‘FÍL ÍR ëÍ ·>óÀ*‘HÍL ÍR *½íK‰í°ÉͶ·ÀÍ ·À:¦2 ! ÍL ÍR !§í°Í� Í< ÉÈÍþ>òÐ>2è Ía ·Àž! í°: G:ž�<Ë'=2è íS‘Ía ·À: GíC“: �WË'2¢:Ÿ<Ë'2£! "¤>É*¤:¢G:£2耷íRëÍa ë·ÀñÉ*¤:¢G:£2耷íRëÍw ë·ÀñÈÍÉÕÅÍÈÍÁÑ·È>ñÉÕÅÍÈÍÁÑ·È>ðÉ! ÍL ÕÍÈ ÑÍú *‘ÍL ÍR ëÍ ·>óÀ*‘ÍL ÍR *½íK‰í°É##å:‡þÍB áåÕ>ÿÍB ëÑí[‰·íRëáØÕ>þÍB í[‰r+s##6ÿÑ#s#r>ɾ#^#VÈ#ö^#V+Éåëí[“·íRí[‘ëáÉ·ÈGåÕ^#VëÑëãs#r#ÑïÉÍæ_þÊþY >ÉþN é>ÿÉ< Í:•· n ÍÉÍ’( BÍ :¦ÉÅ>ÍÏ :¦2Êë>ÍÏ Éå*.ãÉÅÕå Í2Å ÍÁ÷áÑÁÉõ& Í:R·(m Í:Ro&Í- ñO!Þ ~#^#V#¹(õY ÍÉ}´ Å ÍÁõ0ÍÉÿÿÅíK�Íß å! ·íRëÚJ }·  ÍáòÆ0_Íá}þÿ ò ÍÉ!:‚·È_!|+^ë=ÈÅ"ƒëåGí[�á+~åo&Íà Õí[ƒ"ƒÑå*�Íà ëááÑÁÉÅÕMD!x± ÑÁÉxGyO0ë)ëë)ë!>íj·íB?8íJ?ëíjë= îÉi HOMEe CLRm LEFTq RIGHTu UPy DOWN} HI� LO… CEOL‰ CEOS‘ INSLINE� INSCHAR• DELCHAR™ DELLINE   ()TYQWERÐ CURSORÒ ASCIIÔ R+Ö C+Ø ESCÚ SPÜ LEVEL€@  ÿ þ9 ýc ü€ û¢ úÉ ùÜ øý ÷%öDõlô�ó·òìñð5Cannot Open the Terminal Definitions file $Cannot Read the Terminal Definition File $Token Buffer has overflowed $No terminal titles to build menu $Current Element not in the dictionary $Missing Delimiter $Line Definition Type is Unknown $Terminal Level Definition Out of Range $Bad Symbol in Definition Line $Invalid Char in Literal Numeric String $Literal Numeric String is too Long $Direct Cursor Address String too Long $Not Enough Room for the Character Translation Table $Unable to Open System file on Disk $Unable to Read System from the Disk $Unable to Write System to the Disk $Unrecognized Error $ Error on line $Micro Decision Terminal Initialization Program, Rev 2.1 Copyright 1984 Morrow Designs Inc. San Leandro, Ca $ Please enter the Letter of Your Choice $ $ Is $ the correct choice? (Y/N) $ Is the current level Ok? (Y/N) $ The CP/M SYSTEM diskette will not be installed for your terminal. You must install some of the application programs (i.e. WordStar and LogiCalc) yourself. In addition, the Micro-Menus will not appear as they should on the screen. Before confirming this selection, check to see if your terminal can emulate any of those on the selection Menu. If it can, you will find it more convenient to use your system. $ You have a Level 1 terminal. All programs supplied by Morrow Designs are pre-installed for your terminal. Any programs not supplied by Morrow Designs must be installed for $ an ADM-3A terminal. $ a SOROC IQ-120 terminal. $ an ADM-31 terminal. $ an MDT-60/MDT-70 terminal. $ The Terminal Installation is Now Complete $ Press Reset to Make the Changes Effective Immediately $TERMINALDATCPM3 SYS Øî =ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃk)(NSWP is copyright (c) 1983 by Dave Rand 10232-160 Street Edmonton, Alberta (403) 484-4114!9"õ1‡=*.€÷"7.Í2.2. ÿÍ2.2.¯2. Íþ0Ú±2.-þÍ!]». Í`>?!ÿÿ" .".ÍÜ!€^#6#6!�ÃM ÍͼÍrÍ@Drive :.ÆAÍQ:.<Â>*ÍQ>?à =õ_Í_ño&ÍS¯2º.Í@:!».åÍ]Í@ !ÿÿ" .#"+."-.Íw!‡=º.ÍŠ}´+Êh#" .Í!ÍeÍ2*.+" .åÍøá#͈".!"."/."1.1‡=:.2:.Íd* .#}´Â»Í@ No files.ÍÖþXÊäþLÊ'þSʪÀÍ9*.͈ÍdÍÖG!€å!5~·È¸#Êß##ÃÒ^#VÕÉ:._Í:._Í_1ÉåÍÙ*-.ÍÍ@K in á#ÍÍ@ files. *+.ÍÍ@K free.É u uB’XäSªDšTÈUðVÀPµEkL'CÛMÕ Aü RcF…WÏY%?�QŒ *.#".ë* .Í,Ò€!".Í9À*.|µ+".€Í9* .".ÀÍ@ Which drive? Í@:û!þAÚ€þQÒ€õ Í:.GñÖA2.ÅõÍ9ÍrÍwÍ9*+.ÍÍ@K remaining on drive ñÆAÍQ>:ÍQÍ9Áx2.ÍrÀÍ@ Which flags (1-4,R,S,A)? Í@!o. 6#ÂL!ú!~·Ê€#">.*>.ëÍÒë#">.·ÊŠ!�o. ¾Ê„#ÂwÃ_>€Ã_>ÃÖ 1234zzzzRSAÍ@ Delete file? ÍÖþY€*.;À͈åÍáå]¯2\ Í`åÕá6Í`ÿÍ__áÕ^Í_:eæ€Ê!Í@ R/O. Delete? ÍÖþYÊÑáÉ:eæ2e\Í\ÍÑÍ_* .ë*.{•ozœg))))åÁáåÑx±ÊV~# x±ÂL* .+" .ë*.Í,ØÈ+".ÉÍ@ Erase Tagged or Untagged files (T/U)? ÍÖþTʤþU€þT>ʬ¯2 .Í@ Do you wish to be prompted (Y/N/A)? ÍÖþÊ€þAÊ€þNÊõþY>¯Ãö¯24.!å".͈åÍ4~æG: .¸áÂfåÍ@ Deleting ---> áÍ:4.·ÊWÍ@ Delete (Y/N/A)? ÍÖþAÊzþYÂfÍæʃáå;áÃhá#ë* .#}´Êz+Í,ëÒü!".À!".Ü ~6þÊ©#Íìå*1."1.áë*/."/.*/.ÍÍ@K (*1.ÍÍ@K).ÉÍÚ*.͈Í4ÍŒÃuÍ@ Tagged files = ÉÍÚ*.͈ÍÍ©ÃuÍ4~6þÀå#Íìå*1.Í~"1.áë*/.Í~"/.áÉÍ@ New drive/user/mask? Í@!ú!~·Ê€#">.åÍÒ:\·Â`:.<=2.:;.þÿáÂy#~þ*>ÿÊy:.2.:]þ ‘!]^ 6?Í`!\º. Í`Í9Í9Ãäå¯2.~·Ê¸þV#ª2.áÉÍ@ Illegal drive code.ÀÍ¥:.2;.:.29.~þ0Úºþ:ÚþAÚºþQÒºÖA29.#~þ:È·Èþ*Ê:þ0Øþ:ÐÖ'G#~þ:Ê3·Ê3þ0Ú3þ6Ò3Ö0€þÐ2;.ÉxÖ 2;.É>ÿ2;.Éù! Í!ú!å^#6#pá#~·ÈÍiwÃVÍ@ Copy to drive/user? Í@!ú!~·Ê€å ÍÍrá#ÍÖ:D.·À::.G:;.þÿʧ¸À:9.G:.¸ÀÍ@ Can't copy to same drive and user.À*.͈å¯2H.I. Í`~2:.Í@ Copy to (filespec)? Í@!ú!~·Ê€#">.ÍÒ*>.Í¥:]þ Â> !I.] ~æ#Â4 :\=29.!I.]ÍNÂT Í™!]I. 怶w#Â\ !\n. Í`:.G:9.¸Ê…  ÍÍráÍû ÀÍ@ Squeeze, Unsqueeze or Reverse (S,U,R)? ÍÖ2.þSÊÐ þUÊÐ þR€>ÃÖ ¯2D.õÍ9:.2:.ñþÊì Ía!å͈åÍ4~þ+Fრåx2:.:D.·ÂO :.G:9.¸ÂO ::.G:;.¸ÂO Í@ Skipping, same drive & user --> áÍà :D.þÊs þÊŠ Í@ Copying --> Þ Í@ SQ/USQ --> Þ Í@ Setting --> áåÍÍ@ to :D.þÂ) !o. ~·Äê #» !w. ~·Ì  ~·Ä #ÂØ Ãe åÕÅë~åÅÍQÁá#Âð ÁÑáÉåÕÅÃï 1 2 3 4 R/W R/O SYS ARC :9.ÆAÍQ:;.þÿÂ< ::.o&þ ÚG Í>:ÍQ:.·Êe Í@ with CRC.áå:D.þÊz þÊ´ ÍÃ} Íz áÍ6ÍæÊœ á#ë* .Í,ëÒï Í9ñ Í@ --- Aborted ---ÀåH.¯ Í`~õÕá6Í`ñ2:.Íd!I.o. ~æw¶w#ÂÛ H.Í!I.Ñ Í`Ã} !å͈åÍ4~þÂ3 Í@ Retagging --> áåÍ> ÍQáÍ4ÍŒåáá#ë* .Í,ëÒÿ ÀÍ"·ÀõÕåÍ@(áå~#·Êa åÍQáÃS Í@)áÑñÉ~þ åÅÄQÁá#Âj É".Í͵ ë*."".*.Âó ëvÿÍ,­ *.:.þUÊ$ þRÊ$ Ãó *.:.þRʽ þUÊó !ñ0Í‚#·*.Âó Í0!H.n. 6Í`!w.~æþ Âê 6Q#6Q#6QÍ@(!o.Íj å>.ÍQáÍj Í@)Ís*.Í!H.͘'ÍëÍ}Í0É!ñ0ÍD ·ÊC Í@ Not a SQ file.É">.ë"B.:;.õÍÂñ2;.!\n.6 Í`Ís!åÍÜ"áÂ| _åÍÎáÃh ë*B.Í,õÍëÍ}Í0ñÈÍ@ ERROR - Checksum error in file ÉÍnÀõÍngño¿É͵ ÈÍ@ Premature EOF on file... aborted.Àá·ÉåÍ0áÃÍÃ*:9.G:.¸Â::.G:;.þÿȸÈÍ!H.n. Í`¯2n.!"@.ÍsÍd*."5.:.·Â–åëÍH.Íá·Âl€"5.ë*7.Í,ëܺÃCͺÍ}Í0Í É¯|g}oÂ{É)))))))É,Ã*.åë*7.Í~ÍyÑå|·Â±}þ€Ú³.€&åÕ],ÍÑÕÍH.Í·ÂðÑá͇"5.ëá€ÿ |æ€Âê|µÂ¥ͺÖõåÍ�áñþÿÊ€Ñl&͇"5.ÑáÃl:.·ÈÍ@ Verifying --> ÍR!z.{.6Í`n.Í<ÂYÍ@ Can't open file!À€Í*@." .!"@.n.Í·Â…!€ÍÃmÍm* .ë*@.Í,Ê­Í@CRC verify error!ÀÍ@file ok.É*5.ë*.Í,ÈÍÍR*.:.·ÂåëÍn.Íá·ÂY€ë*5.ëÍ,ÂÕÍd*."5.É*.åë*5.Í~ÍyÑåÕ|·Â}þ€Ú .€],ÍÑÕÍn.Í·ÂVÑáë@ ë€ÿ |æ€ÂP|µÂÍ�ÃøÍ�Í@ Destination disk full.Í0ÍWÀ}“o|šgÉÍ@ Find what? Í@!û!">.ÍÂ!]~þ Ê€ ~þ µ6?#­Í@ !ÿÿÍ/€".ÀÍ@ Tag what? Í@!û!">.ÍÂ!]~þ Ê€Í@ !ÿÿÍ/€åÍ@ Tagging --> áå͈åÍ> ÍQáÍ4ÍŒáÃý#ë* .Í,ÚJëå͈]ÍNáÈÃ/>·É ë~þ?Ê\æ¾À#ÂQÉ*.͈ ~2:.Í@ New name, or *? Í@!û!">.!låÍÕá#~þ Ê€ þ?Êö#¡:;.þÿ¶::.w*.͈Íùþ.ÂÍ ÍÍr*.å* .#" .ÍeÍ2*.+" .ëá".Í,Ú€!".Àå:.29.\¯2\ Í`¯ÂÍd:eæ€Ê9:eæ2e:uæ2u\Í:;.þÿ_::.ÂF_Í_!mI. Í`¯2H.ÍùH.*.ÍŠ}´Ê’Í@ Destination file exists! ÍÍrÀ:;.þÿÊ¢G::.¸ÂÊ::._Í_ÿÍ_õ\Íñ_Í_¯Ñõ!m Í`ñ¿É::._Í_!\H. Í`Íù¯2H.>?2T.*.H.ÍŠ}´Ê½" .ÍùH.ÍÍR!mI. Í`ÍùH.Í!å)))))ë*. åT.Í`H.Í<ÊpáT.Í`:V.æ2V.H.Í* .+" .}´á# >.ýÍ@ Directory full.ÀåÕ€ÍÑÕÍ<Ñá¨!ÉÕÅå=‡‡‡‡‡!€…oÑ Í`Õ*7.Í,ÒÞÍ@ OUT OF MEMORY?ÃÑÕáÁÑÕÅåÍ<áÁѨi`ÉÍ@ Old name? Í@!û!">.!”.ÍÕ:•.þ Ê€:;.2 .Í@ New name? Í@!û!">.!n.ÍÕ:o.þ Ê€Í9!å͈å•.ÍÅ¢Í@ Renaming --> áåÍáå ~2:.Í@ to áåÍò!mÍáÍùG:´°2´åáá#ë* .Í,ëÒRÍ9>þ.ÂÍ ÍÍrÃÍ~þåÊïå Fá: .þÿÊܸÀþ?ÊèG>¦¸À# ÂÜɯ/Éo.m> õþ?Â~æ#ñ=Âú:;.þÿÂ::.Éå:.ÆAÍQáå n&}þ Ú5 ÅÍ>:ÍQÁyþÊJ> ÍQáͧå>.ÍQáͧÉÑáÕåÃJå*.#ÍÍ@. áÍ#~õ#å> ÍQáÍìÍÍ@K :ñ· Ê¢þ*Ê¢#yÍQÉÅå~ÍQáÁ#§ÉÍ9>2=.ÃÍ9¯2=.<23.Í@Press ^X to abort, L to advance a line, cr to advance a page. >2<.*.͈ÍÍ vÿÍ,!nÂD*."".!ñ0ÍD ·ÂDÍ9!Ü"ÃLå*."".á"bÍòþÊÃþÊÃþÊÉÍnÂÃþÊÃæþÂu>-_þ ‚:3.<23.:<.OÍ:=.·ÂO:3.G:¸ÂOÍÞþLʹþlʹþÊÃþÊï23.ÃO:3.=23.ÃOÍ0ÀÍÞÃO Í·ÈÍÃiÍò·ÊÞÉÍÏþÈÍiþXÉÿÃ!T.U.6Ã`H.¯2H. Í`~õÍùñ2:.Íd*.""." .H.Í<ÀÍ@ Can't open file!ÀÿÍ__É:9._Í:;._ Ã:._Í::.Ã^*."&."$."(.ÍRÍ"n.ÕÍ<ÊÂÑÕÍ:w.æ€Ê»:w.æ2w.Í"ÑÕÍÑÕÍ!w.åE.Í`á6$#6$#6$ÑÕæ ÂÛÍ"ÑÕÍÍ"ÑÍ<ÀÍ@ Destination disk directory full.À!z.{.6Í`ÉÍdH.Í<ÀÍ@ Can't close file!ÀÍRn.ÕÍÍ"ÑÍÉÍRn.Í<Ê=ÉÍmÍ"!n.~.Í`!E.‡.Í`n.Í<Ê=!E.w.Í`:Q.æ€G:w.°2w.:y.æ2y.n.ÍÉ*(.ë*$.GÍ,xÊãw#"$.ÉõÍëñÃÎ*$.ë*&.Í,ÈåÍRá:.·Â,åëÍn.Í·ÂYá€ë*$.ëÍ,Ú*&."$.É*&.åë*$.Í~}æõÍyñÊC#|·ÂN}þ€ÚP.€],ÍÑÍn.Í·ÂVÍ�Ã%* .ë*".Í,Ê‚~#"".¿ÉÍd*.""." . :.·ÂÌÅëÍH.ÍÁ·Â¼* .€" .—Ãn*".ë* .Í,Ân¯=É ,Í*".ëÍH.Í·ÂøÍ�*"." .ÃnõåÍ�áñþÿÊ€l&͇ë*"." .ü* .åÁ!‡=‡=ÉÍ~þÒVåõ#Å Í`Áñ~õ#¯#~ñ#~áÕ Ñ x±Â$ÉÅ>åÂ[ÁÃI* .".+|µÈ*.|µÈ¯|g}o".´Â„#".ë* .+}“o|šg".!".*.".*.ë*.".ÍæÊÒÚÒÍ*.ë*.}“o|šg".úÒµÊÒá*.#".ë*.Í,ÚoÛ*.͈".å*.͈".Ñ ~æOæ¹À#Âü¾À# É*.ë*.Fwx#  É|ºÀ}»É!".".#".* ." .ÍÊQÍŸÌh*.".#".* .+" .|µÂEÉ*.͈ë*.Í`*.#".É*.͈".å*.͈".Ñ ¾À#•É*.~þåÊ×å Fá». xþÒ×:.þÿÊĸÀþ?ÊÐG>¦¸À# ÂÄÉ·É!"-.* .#}´ÈåÁ!”=åÕÅÍìë*-."-.ÁÑá x±ÂîÉå'Í,ÚÃ?èÍ,Ú$Ã?dÍ,Ú2Ã?}þ Ú=Ã?y’ÊRÚRõ> ÍQñ=ÂGáõÅÕåöÿÿÿ Ú] ë|µÄS{Æ0ÍQáÑÁñÉ Í}þ0ÒÁ*ç0#åÁå*à0~å.Ò˜g x±Ê©|-“á#Ã�áá}“o|šg:*.·Ê½)=õ"+.É€Í:._.Í*€:‚G·xG|g}o ÂÛý^ë)))))ë#~å&o))))Ñõæ…oÒ$ñæàÊ#åÑ:*.·ÈþÊZþÊKþÊ<}æÈÕ>ð¥oÑÉ}æÈÕ}æøoÑÉ}æÈ}æüoÕÑÉ}æÈ#É~#Â`ÉþaØþ{Ðæ_É:._Í<Ê€Íâ0Í`:ä0Ö2*.Í"à0É‘ÍL ÍL* .ÍøÍ9ÍÚÍ©Í9É‘ÃL*>.ëÍÒ!\¯w=ÃL!\å*>.ëÍÒá:.Æ OñÖ0�Oþ:Ê7·Ê7Ñ:.ÿÃLxþÒ,yþÿÊHþÒ,ñpy2;.Í·Êr#þ*Âb6?ÃdwÂQÍ·ÊyÃh#6 Ârþ.¢Í·Ê¢#þ*Â’6?ÔwÂ�Í·Ê©Ø#6 ¢#6«ë">.É·Èþ Èþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>É·Èþ ÀÃÒ!à.ë!yŬg)Ò÷>¬g>!­oÂëÁër$s%# ÂáÉ:.·È~Í#Í, ÉÅåÕ*@.ëªO!à. ~«W$^ë"@.ÑáÁÉ ÉÍ@ Éá~·#åÈÍQÃ@ Ã_æ€{ÊdõÍlñÍdÍrÉæ_Ã!Ãu! ~#·ÈGåÅ~ÍdÁá#ÂzÉ))))‡=É NSWEEP - Version 2.07 07/17/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta $ A - Retag files : Q - Squeeze/Unsqueeze tagged files B - Back one file : R - Rename file(s) C - Copy file : S - Check remaining space D - Delete file : T - Tag file for mass E - Erase T/U files : U - Untag file F - Find file : V - View file L - Log new disk/user : W - Wildcard tag of files M - Mass file copy : Y - Set file status P - Print file : ? - Display this help X - Exit to CP/M : cr, sp - Forward one file $"x#"z#!9"�"Íc#vÿÍ]#>À¯2t#2w#Íc#"~#*x#åÍnáõÍ�"Gñp#ÂŒ"·Â<"Íc#"€#Í]#Úc">·Éë*z#ë"|#|µÊ“"ÕÍc#Ñës#r#åÍc#ëás#r#ë*|#+Ãh"1>·É*x#ë*~#ë¯ÉþaØþ{Ðæ_ÉUSQ section (C) 1983, 1984 by Dave Rand (403) 484-4114!9"�":w#·Êó"=2w#:v#¿ÉÍ#þ�Â#Í#·Â#>�¿É==2w#:v#¿É2v#¿É:u#O:t#·Â.#ÕÍnÂŒ"ÑO>=2t#yO*z#Ò=###^#Vzæ€Ê#y2u#zþþ>ÊZ#{/¿Éá·É|ºÀ}»ÉÍnÂŒ"õÍnÂŒ"gñoÉ>ÿ2è+"B,!9"‚,1‚,*B,}æüo>Í�+"é+">,"@,Í&+¯2î+ÍW+ÂÃ#>Ã�'vÿͨ+ÂÑ#>Ã�'}2í+åÍ+á|Ãä#Íc+Ê?$!í+¾Ê$#45Ê6$õ~6þÒ $G+~õÍ+ñÂý#ñÃ6$õ>�Í+ñ<Í+ñÃ6$þ�Ê6$#4~þÿÂÞ#å>�Í+á~6Í+:í+2í+Í+ÃÞ#:î+·ÊQ$õ>�Í+ñ<Í+*>,^#V#N#z³±Âl$#ÂV$>Ã�'~å*@,w#s#r#q#"û+á>2ï+#^#V#N#~#2<,{²±Êó$åÅ:ï+G*@,#åÍ®+Ú¶$á####Ÿ$y2=,ÃÒ$*û+y2=,ÁÅ }‘O|˜GÕT]+Í×+Ñá+Á:<,w#s#r#:=,w*û+####"û+:ï+<2ï+á„$:ï+!‚*·Ê%45 %¾Â%¾Ò%#Â%!�*p¯27,28,Íl*¯g2î+2ú+ý<ÿ27,29,à '>ÿ29,! ,,Í»+ÚÒ&¯29,!,:5,Í�+::,Nw:6,/<þÿÊ 'G:;,‘þÒ '4x26,Ãó&!$,,ÍÌ+!,:5,Í�+~2:,:6,†ú¨&w:9,·Ê#%! ,,ÍÌ+Ã#%>ÿ26,:�*!5,4¾Ò!'>ÿ28,Ã#%~!,Í�+~2;,ÃÞ&! ,Í„,¯2è+*ø+))>Í�+ ,",!",!,Í’+ë~öwë6å#¯w#w#wáÍ’+ëÍ„,!ÿ+Í„,*ÿ+ë* ,ͨ+>Ò�'¯*‚,ù* ,É:è+·Ê¡'¯É"D,!9"‚,1‚,!vÿÍþ(*ý+Íþ(ë!Í¡+"ý+*D,#~þ ÊØ'Í)#ÂÊ'>.Í)xÍ�+~þ Êñ'Í)#Âã'¯Í)*ø+Íþ())ë*é+~Í)#z³Â(¯2ì+2î+>2ë+Íc+Ãv(Íc+Ê(!í+¾ÊY(#45Êv(õ~6þÒJ(G+~õÍÅ(ñÂ=(ñÃv(õ>�ÍÎ(ñ<ÍÎ(ñÃv(þ�Êv(#4~þÿÂ(å>�ÍÎ(á~6ÍÎ(:í+2í+ÍÅ(Ã(:î+·Ê‘(õ>�ÍÎ(ñ<ÍÎ(>ÿÍ�+###ÍÓ(:ë+þʰ(G:ì+¨(Í)>ÿ2è+*ý+|µ>ÂÀ(¯*‚,ùÉþ�ÂÎ(ÍÎ(¯ÅÍ�+ÁÅF#^#V:ë+O{_zW:ì+ Âñ(Í)¯2ì+ÂÝ(y2ë+ÁÉ}Í)|ÅÕåÍÎáÑÁÉõÅ:8,·ÊI):ô+*ø+ë*ö+G:ú+Os#r#}æÂ0) z·Ê:)»Ê`)Â%)"ö+ë"ø+y2ú+!í+4~þÒ`)¯2î+!ô+~‡wÁñÉÁñá:�*=GÂp)>ò�':8,·Â~):7,·Â¤&!�*p:8,·Ê#%¯28,27,Ã#%õÍ�+:í+w#å*ò++2,,¯Í×+!"," ,,!,Íe- ,!,Í’+:í+!$,Í�+4!ô+5:8,·Âç)áñÉ*ö+6ÿ:ú+O}æÊú)7zW{_~þÚ*A+~+õ}æÊ* ñ·Â*~¸Êó)Ã*ás#r*ö+ñ/w#6ÿ#"ö+}æÀ!ú+4É>ÿÍ�+###å!I*ãÍ—)*ö+>þ+w+Éë,Õ¯ÍÌ+áã+ä,ÖÚø*Ãï*xÉ!ã+4À#4À#4À#4Éþ�Â+Í+¯Íú*o&))ë*>,4À#4À#4ɯGO*>,w#w#w#q# Â,+!ã+w#w#w#w#!ã+ÿ+ÍÌ+!"ý+ÉÍc+ÈoåÍc+ágÉÍnÊk+¿Éõ*ý+Í�+"ý+ñ!ÿ+4À#4À#4É*>,GÍ�+xÍ�+x…oÐ$ÉåÕ·Ž#•+ÑáÉ}“o|šgÉ|ºÀ}»É##~¹À+~ºÀ+~»ÉH ë +¾À ÂÁ+¾Éx±È ~#ÃÌ+x±È ~+Ã×+ÿy·Èx·ÈX+·õG]T~w+”,kbñ Â�,Éx·ÊG-"L-ë"N-Hi&)))#"T-!W-^-A¯w#ÂÃ,!W-"P-!^-"R-*N-A¯¶#ÂÜ,·ÊC-·A*L-~w#Âë,!T-5Âÿ,#5úG-*P-A~w#Â-Åy2V-*R-DM*P-ë*N-·ž#:V-=2V-Â-Á?Òç,*P-ë*R-"P-ë"R-Ãç,7ÃH-·*P-Éx·ÈH ë"Í-!Ï- "Ë-i`)))#"É-A!Ï-6#„-·A*Ë-+~wÂ�-kbA+~w›-Òº-Õ*Í-ë!Ï-A·Žw#°-Ñ!É-5ÂŒ-#45È5ÃŒ-¯2çñͨ!€~·(G#~þ ø¯2€"èOx=2êyæß ˜ͨÍÁ2é2ÒÖA8þ8·ͨçõ*A^#Vë_ƒ_#>¦2Yñõ+Ën#Ë–(Eå:ê·(*èG#~þ (þ ôͨáåÍÁáþS(þD(þ +åͨá ·åͨáÛËÖ~åV!¡Ëo !¡ ËW(€l"ííSïáñåõG:¸0"*?^#V!p"ë¡>A2éͨÕ :€· ¾ͨÍÁþ (·ͨñ»ͨñ2B2^OÍ@åÝáÝn Ýf åÝááFÝåáåÅ~!~.ËP(ÕÑËh AÕåëà Íð*ïÍðx!xæ$þ$ !ˆÍðë6ÝáÑͨí[ïͨÝåá##Zí°ÍJ‚ͨ¯2CÁÅõËP7?(2J>2KñÍ­íC”2–‚ͨ:YË—G:K°2YÝ^ÝV!!:Jw#:Kw#w#Ý~w#þÿÂæÍù·Âœ:C<ݾ§JͨÝnÝfÍØz2_ÕÑKå ~áþÿ(*þþ í2`ÕåÍ"á·©(ÛåͨJͨ>2çáÑÝ~º ¹Á:ç·(¸ͨÍjþͨ*ë|µ(6:€· ͨÍÁþRÊþ (·ͨì:éþA '*ë}´(>A2Ò¡ͨͨbͨÍÁþ ùÃåÕÅzÍ­íC]2_KͨÁÑáÉ~#þ$È÷Ýå!B í°Ý! *9ÍÝáÉé*'éÝå!^ í°Ý! *3ÍÝáÉ*é*é*é*é*!éÍRÍZ¡ ÍbÍ·  ÍZÍ· ÍZíKíÍbÍ·È™ͨÃ� Ã// Öd0ûÆdÖ 0ûÆ ö0ÉÿÍ·(öþA8æß_þ 0þÊ õÅÍÁñÉ * Micro-Decision Format Utility Rev. 1.1 * * BLOCK SIZE: 2K SSDD/DSDD/SSQD, 4K DSQD * * 186K SSDD * 384K DSDD/SSQD * 780K DSQD * $2K BLOCK SIZE $4K BLOCK SIZE $ Disk drive to be used (A-E) $ $ $ Insert diskette to be formatted in drive A, then press [RETURN] $ Single or double sided format (S or D) $D$ Quad density -- $ Double density -- $Single sided format $Double sided format $ Formatting track 000 $ Write error $ Read error $ Some errors were found on this diskette, run FINDBAD.COM to flag.$ Formatting done$ Press R to start again, or [RETURN] to return to CP/M $ Verifying track 000 $ Insert the system diskette in drive A, then press [RETURN] $ Your left drive is being re-assigned as drive A.$ Insert the diskette to be formatted and press [RETURN] $ Insert the system diskette, then press [RETURN] $!M!š_åQš_墚_å(š_åPÿþ`(¿à0íd(Ç¿À0ß@(^À ¡D(¿à0É>É2ÿýÍÿý!þÿ9^#V!ë1ÿÓöÍà Not a SYSTEM Diskette.ÃÖ* SWAP [D1][D2] For example, SWAP AB is the software equivalent of physically swapping disk drives A and B. The two drives will stay swapped until a cold boot (reset) or until they are SWAPped back. $ !€~·(G#~þ ø 2}_#~þ ø Ã2�ÖA8ñþ0íW{ÖA8çþ0ã_Õ*A~#foå˜-í°á]Tãåë{ƒ_zë!˜O�O  í°Ñáz‚K_ë!˜y�O  í° Í tà DRIVES A & C HAVE BEEN SWAPPED $:ì<·À:é=þÚx,>ê=!]?G~·Âµw#„,pÉÍÔ,ÍÈ þ/; Terminal Definitions for the Terminal Installation Program ;----------------------------------------------------------- ; Last Revision: 26_Jun_84 ; ;---------------------------------------------------------------------- ; Definition Format ;------------------ ; 1) Any given line in this file is a Comment, a Terminal Title ; or a Terminal Definition. ; ; 2) Comment Lines Start with a Semi-Colon (;) or an Astrisk (*). These ; lines are for your benefit and are ignored by the translator. ; ; 3) Terminal Definition Lines start with a function identifier and ; are followed by an argument (ie Clr = *). The Function Identifier ; MUST BE seperated from the Argument by an equal sign (=) even if ; the argument is non-existant (ie Hi = ). ; ; 4) Terminal Title Lines MUST NOT contain an equal sign. ; ; 5) The minimum Terminal Definition contains the terminal title and ; the terminal level definition. Only those Functions which differ ; from the Defaults must be specified (see the table following this ; section). ; ; 6) In the Argument Field: ; -Any characters between two single quotes are taken ; literally (ie without any translation) ; -Two Single quotes together are translated as one single quote. ; -Control characters are preceeded by an Up-Arrow (^). ; -Numbers that are not enclosed in single quotes are translated ; to their value in base 10. ; -The term Esc can be used to represent the character Escape ; -The term Sp can be used to represent the character Space. ; ; 7) In Cursor Position Definitions: ; -the terms R+ and C+ are used to specify the row and column ; offsets. Additionally, The order in which these two terms ; appear determines the order in which the row/column addresses ; will be sent. ; -The word Ascii is used to indicate that the row/column ; addresses should be sent to the terminal in ascii format ; instead of the default binary. ; ; 8) TERMINAL.DAT is the Default Terminal Definition File; However, ; An alternate file may be specified in the command tail. The ; default extent for the alternate file is DAT unless otherwise ; specified. ; ; 9) If an Astrisk (*) appears as the first character of the command ; tail then the final message line (Push Reset to Make Changes ; Immediately Effective) is suppressed. ; ;---------------------------------------------------------------------- ; ProtoType Default Definitions ;------------------------------ ; ; Cursor for All Levels ; Cursor = Esc = R+32 C+32 ; ; Level 1 ..... Clr ^Z (1Ah) or Esc '*' ; Home ^^ (1Eh) ; Left ^H (08h) ; Right ^L (0Ch) ; Up ^K (0Bh) ; Down ^J (0Ah) ; ; Level 2 ..... Hi Esc ( ; Lo Esc ) ; CeoL Esc T ; CeoS Esc Y ; ; Level 3 ..... InsLine Esc W ; InsChar Esc Q ; DelLine Esc R ; DelChar Esc E ; ; Level 4 ..... Screen attributes: Under_Lined Dim and Reverse ; ;---------------------------------------------------------------------- Morrow 20 Level = 3 Cursor = Esc = C+32 R+32 Clr = * Morrow 50 (Freedom) Level = 3 Morrow 60 Level = 4 Morrow 70 Level = 4 ACT 5A Level = 2 Cursor = ^T R+0 C+0 Clr = ^L Home = ^] Right = ^X Up = ^Z Hi = Esc B Lo = Esc C CeoL = Esc I CeoS = Esc K ADDS Viewpoint Level = 2 Cursor = Esc Y R+32 C+32 Clr = ^L Home = Esc Y SP SP Right = ^F Up = ^Z Hi = ^O Esc '0' A Lo = ^N CeoL = Esc K CeoS = Esc k ADDS Viewpoint 3A+ Level = 1 Clr = ^Z Hi = Lo = ADM 3A or 5 Level = 1 Clr = ^Z Hi = Lo = ADM 22 Level = 3 Clr = ^Z ADM 31 Level = 3 Clr = ^Z ANSI Level = 1 Cursor = Esc [ R+1 ; C+1 H Ascii Clr = Esc [ H Esc [ J Home = Esc [ H Left = Esc [ D Right = Esc [ C Up = Esc [ A Hi = Lo = CeoL = Esc [ K CeoS = Esc [ J Beehive Micro B-1 Level = 1 Cursor = Esc Y R+32 C+32 Clr = Esc E Home = Esc H Left = Esc D Right = Esc C Up = Esc A Hi = Lo = Hazeltine 1420/1500 Level = 2 Cursor = ~ ^Q C+0 R+0 Clr = ~ ^\ Home = ~ ^R Right = ^P Up = ~ ^L Hi = ~ ^_ Lo = ~ ^Y CeoL = ~ ^O CeoS = ~ ^X Hazeltine Esprit Level = 2 Cursor = ~ ^Q C+0 R+0 Clr = ~ ^\ Home = ~ ^R Right = ^P Up = ~ ^L Hi = ~ ^_ Lo = ~ ^Y CeoL = ~ ^O CeoS = ~ ^X ; Honeywell ; Level = 3 ; Cursor = Esc f C+32 R+32 ; Clr = Esc ` ; Home = Esc H ; Right = Esc C ; Up = Esc A ; Hi = Esc '3' ; Lo = Esc '4' ; CeoL = Esc K ; CeoS = Esc J ; InsLine = Esc [ L ; InsChar = Esc [ I SP Esc [ J ^H ; DelLine = Esc [ M ; DelChar = Esc [ P Heath H19 Level = 1 Cursor = Esc Y R+32 C+32 Clr = Esc E Home = Esc H Left = Esc D Right = Esc C Up = Esc A Hi = Lo = IBM 3101 Level = 1 Cursor = Esc Y R+32 C+32 Clr = Esc L Home = Esc H Left = Esc D Right = Esc C Up = Esc A Hi = Lo = Qume 102 Level = 3 Clr = ^Z Soroc 120 Level = 2 Clr = Esc * CeoL = Esc T CeoS = Esc Y Televideo 910 Level = 2 Clr = Esc * CeoL = Esc T CeoS = Esc Y Televideo 912C/920 Level = 3 Clr = Esc * Televideo 925/950 Level = 3 Clr = Esc * Teleray Level = 3 Cursor = Esc Y R+32 C+32 Clr = ^L Home = Esc H Right = Esc C Up = Esc A Hi = Esc R @ Lo = Esc R B CeoL = Esc K CeoS = Esc J InsLine = Esc L InsChar = Esc P DelLine = Esc M DelChar = Esc Q Visual 200 Level = 2 Cursor = Esc Y R+32 C+32 Clr = ^L Home = ^A Left = ^G Right = ^F Up = ^Z Hi = Esc '3' Lo = Esc '4' CeoL = Esc x CeoS = Esc y VT52 Level = 1 Cursor = Esc Y R+32 C+32 Clr = Esc H Esc J Home = Esc H Left = Esc D Right = Esc C Up = Esc A Hi = Lo = VT100 Level = 2 Cursor = Esc [ R+1 ; C+1 H Ascii Clr = Esc [ H Esc [ J Home = Esc [ H Left = Esc [ D Right = Esc [ C Up = Esc [ A Hi = Esc [ '1' m Lo = Esc [ '0' m CeoL = Esc [ K CeoS = Esc [ J Wyse Level = 3 Clr = ^Z Concept AVT Level = 4 Cursor = Esc [ R+1 ; C+1 H Ascii Clr = Esc [ H Esc [ J Home = Esc [ H Left = Esc [ D Right = Esc [ C Up = Esc [ A Hi = Esc [ '1' m Lo = Esc [ '0' m CeoL = Esc [ K CeoS = Esc [ J InsChar = Esc 1 InsLine = Esc [ L DelLine = Esc [ M DelChar = Esc [ P None of the above Level = 0