Files
Digital-Research-Source-Code/MPM OPERATING SYSTEMS/MPM I/MPM I SOURCE/15/mpmugerr.tex
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

888 lines
39 KiB
TeX
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.po 0
.fo - # -
MULTI-PROGRAMMING MONITOR CONTROL PROGRAM - USER'S GUIDE
Corrections and Additions - January, 1980
-------------------------------------------
Page 4, paragraph 4
        Change: Thå  initiaì  useò  codå ió onå greateò  thaî  thå  consolå <20>
                   number®  Foò example¬ consolå #° ió initializeä tï useò #± <20>
                   anä thå followinç prompô ió displayeä oî consolå #0:
1A>
To: Thå initiaì useò codå ió equaì tï thå consolå number®  Foò <20>
                   example¬  consolå  #°  ió  initializeä tï useò #°  anä  thå <20>
                   followinç prompô ió displayeä oî consolå #0:
0A>
Noteº  Cautioî  musô bå useä wheî operatinç undeò  á  useò <20>
                   codå   °  sincå  alì itó fileó  caî   accesseä  whilå <20>
    operatinç undeò anù otheò useò code.
  general¬  useò  codå ° shoulä bå  reserveä  foò <20>
                   fileó whicè arå accesseä bù alì users® Iî thå evenô thaô á <20>
                   filå  witè  thå samå namå ió presenô undeò useò codå °  anä <20>
                   anotheò  useò code¬  thå firsô filå founä iî thå  directorù <20>
                   wilì bå accessed.
Page 4, paragraph 6
Add: Sincå  therå  arå nï built-iî commands¬  thå  defaulô  disë <20>
                   specifieä  musô contaiî thå desireä commanä fileó (sucè <20>
                   DIR¬  REN¬  ERÁ etc.)¬ oò eacè commanä musô bå preceedeä bù <20>
                   aî "A:".
                    3B>A:DIR
Page 5, paragraph 5
Add: Á checë consolå statuó ió automaticallù performeä eacè timå <20>
                   a user program makes a BDOS disk function call.
Š
Page 6, paragraph 2
Add: ctl-Q Obtaiî  ownershið oæ thå printeò mutuaì  exclusioî <20>
                            message® Obtaininç thå printeò usinç thió commanä <20>
                            wilì ensurå thaô thå MP/Í spooler¬  PIP¬ anä otheò <20>
                            ctl-Р  oò  ctl-Ñ  commandó  entereä  froí   otheò <20>
                            consoleó   wilì  noô   alloweä  accesó   thå <20>
                            printer®  Thå printeò ió "owned¢ bù thå TMР untiì <20>
                            anotheò  ctl-Ð oò ctl-Ñ ió entered¬  releasinç thå <20>
                            printer®  Thå  ctl-Ð shoulä bå useä wheî á prograí <20>
                            (sucè aó á CP/Í *.COÍ file© ió executeä thaô  doeó <20>
                            noô  obtaiî  thå printeò mutuaì exclusioî  messagå <20>
                            prioò tï accessinç thå printer® Iæ thå lisô devicå <20>
                              noô  availablå  á 'Printeò  busy§  messagå <20>
                            displayeä oî thå console.
Page 7, paragraph 6
Change: [the entire DISK RESET description]
To: Thå  DSKRESEÔ  (disë reset© commanä ió useä tï  enablå  thå <20>
                   operatoò tï changå disks®  Iæ nï parameteò ió entereä  alì <20>
                   thå  driveó arå reset®  Specifiã driveó tï bå reseô maù bå <20>
                   includeä aó parameters.
1A>DSKRESET
1A>DSKRESET B:,E:
  therå arå anù opeî fileó oî thå drive(s© tï   reset¬ <20>
                   thå  disë  reseô ió denieä anä thå causå oæ thå disë  reseô <20>
                   failurå ió shown:
1A>DSKRESET B:
Disk reset denied, Drive B: Console 0 Program Ed
                   Thå reasoî thaô disë reseô ió treateä sï carefullù ió  thaô <20>
                   fileó lefô opeî (e.g® iî thå procesó oæ beinç written© wilì <20>
                   loså theiò updateä informatioî iæ theù arå noô closeä prioò <20>
                   tï á disë reset.
Page 8, paragraph 2
Add: Á  seconä  forí  oæ thå eraså commanä  (ERAQ©  enableó  thå <20>
                   operatoò   selectivelù  deletå  fileó  thaô  matcè   thå <20>
                   specifieä filenamå reference® Foò example:
0A>ERAQ *.LST
Š
  Page 8, paragraph 3
Add: Thå  TYPÅ  commanä haó á pauså modå whicè ió  specifieä <20>
                   enterinç  á  'P§ followeä bù twï decimaì digitó  afteò  thå <20>
                   filename® Foò example:
0A>TYPE DUMP.ASM P23
Thå  specifieä numbeò oæ lineó wilì bå displayeä  anä  theî <20>
                   TYPÅ wilì pauså untiì á <cr¾ ió entered.
                   Thå  TYPÅ  prograí ió smalì anä relativelù slo÷ becauså <20>
                   bufferó onlù onå sectoò aô á time®  Thå largeò PIÐ prograí <20>
                   caî bå useä foò fasteò displayó iî thå followinç manner:
                    0A>PIP CON:=MYFILE.TEX
                   
Page 8, paragraph 4
Add: Thå  DIÒ  commanä caî includå fileó whicè havå  thå  systeí <20>
                   attributå set®  Thió ió donå bù usinç thå 'S§ option® Foò <20>
                   example:
0A>DIR *.COM S
Page 8, paragraph 5
Add: Iæ  thå  destinatioî filenamå existó thå operatoò ió  giveî <20>
                   thå optioî oæ deletinç thå currenô destinatioî filå  beforå <20>
                   renaminç thå sourcå file.
Page 9
Add: PRLCOM
Thå  PRLCOÍ commanä acceptó á filå oæ PRÌ typå anä produceó <20>
                   á filå oæ COÍ type®  Iæ thå destinatioî COÍ filå exists¬ á <20>
                   querù  ió madå tï determinå iæ thå filå shoulä   deleteä <20>
                   beforå continuing.
0A>prlcom b:program.prl a:program.com
Page 9, paragraph 7
Add: MP/M DDT enhancements are described in Appendix J.
Š
Page 10, paragraph 2
Add: GENHEX
 Thå  GENHEØ  commanä ió useä tï producå á filå oæ typå  HEØ <20>
                   froí  á  filå oæ typå COM®  Thió ió usefuì tï bå  ablå <20>
                   generatå  HEØ fileó foò GENMOÄ input®  Thå GENHEØ  commanä <20>
                   haó twï parameters¬  thå firsô ió thå COÍ filå namå anä thå <20>
                   seconä ió thå offseô foò thå HEØ file® Foò example:
                   
0A>GENHEX PROG.COM 100
Page 13, paragraph 3
Add: Thå non-residenô versioî oæ thå spooleò (SPOOL.PRL© differó <20>
                   iî itó operatioî froí thå SPOOL.RSÐ aó followsº iô useó alì <20>
                     thå memorù availablå iî thå memorù segmenô iî whicè <20>
                     runninç  foò  buffeò  space»    displayó  á  messagå <20>
                   indicatinç  itó statuó anä theî detacheó froí thå  console» <20>
                     maù bå aborteä froí á consolå otheò thaî thå  initiatoò <20>
                   onlù bù specifyinç thå consolå numbeò oæ thå initiatoò aó á <20>
                   parameteò oæ thå STOPSPLÒ command.
3B>STOPSPLR 2
Page 14, paragraph 2
Add: ABORT
Thå  ABORÔ  commanä  allowó thå useò   aborô  á  runninç <20>
                   program®  Thå  prograí    aborteä ió  entereä   á <20>
                   parameteò iî thå ABORÔ command.
1A>ABORT RDT
Á  prograí  initiateä  froí anotheò  consolå  maù  onlù <20>
                   aborteä bù includinç thå consolå numbeò oæ thå initiatoò aó <20>
                   á parameteò oæ thå ABORÔ command.
3B>ABORT RDT 1
Page 21, paragraph 1
Change: 3 Reader Input
4 Punch Output
To: 3 Raw Unattached Console Input
4 Raw Unattached Console Output
Š
Add: 37 Reset Drive
38 Access Drive
39 Free Drive
40 Write Random with Zero Fill
156 Return Process Descriptor Address
157 Abort Specified Process
Page 23, paragraph 3, following t2' definition
t3' = 1 => file has been updated
Page 27, change FUNCTION 3 to:
***************************************
* *
* FUNCTION 3: RAW CONSOLE INPUT *
* *
***************************************
* Entry Parameters: *
* Register C: 03H *
* *
* Returned Value: *
* Register A: ASCII Character *
***************************************
   Thå  RA×  CONSOLÅ  INPUÔ  functioî  readó  thå  nexô  consolå <20>
           characteò   Registeò   Therå  ió nï  testinç   thå  inpuô <20>
           character¬  thaô  is¬  thå  systeí wilì directlù pasó  througè  alì <20>
           characteró   includinç   thå   controì   characteró   withouô   anù <20>
           interpretation®  Thió  functioî doeó noô requirå thaô thå consolå <20>
           bå attached¬ noò doeó iô attacè thå console.
***************************************
* *
* FUNCTION 4: RAW CONSOLE OUTPUT *
* *
***************************************
* Entry Parameters: *
* Register C: 04H *
* Register E: ASCII Character *
* *
  ***************************************
Thå  RA×  CONSOLÅ OUTPUÔ functioî sendó thå  ASCIÉ  characteò <20>
           froí registeò Å tï thå consolå device®  Therå ió nï testinç oæ thå <20>
           outpuô character¬  thaô is¬ tabó arå noô expandeä anä nï checkó arå <20>
           madå  foò start/stoð scrolì anä printeò echo®  Thió functioî  doeó <20>
           noô  requirå thaô thå consolå bå attached¬  noò doeó iô attacè  thå <20>
           console®  Thus¬ unsoliciteä messageó maù bå senô tï otheò consoleó <20>
             simplù changinç thå consolå bytå oæ thå procesó descriptoò  anä <20>
           theî usinç thió function®
Š Page 28, paragraph 1
Add: Cautioî  musô bå observeä iî thå uså oæ thå  printeò  sincå <20>
                   therå ió nï impliciô lisô devicå ownership®  Thaô is¬  thå <20>
                   lisô  devicå ió noô "opened¢ oò "closed"®  MP/Í affordó  á <20>
                   secondarù   expliciô   meanó   resolvå  printeò   mutuaì <20>
                   exclusion® Á queuå nameä 'MXList§ ió createä bù thå systeí <20>
                   tï handlå mutuaì exclusion® Tï properlù obtaiî uså oæ thå <20>
                   printeò  á prograí shoulä opeî thå 'MXList§ queuå anä  reaä <20>
                   thå message®  Wheî thå messagå ió obtaineä thå printeò maù <20>
                   bå used®  Wheî printinç ió completeä thå messagå shoulä <20>
                   writteî bacë tï thå 'MXList§ queue®  Thió techniquå ió useä <20>
                   bù thå MP/Í PIP¬ SPOOLer¬ anä TMÐ ctl-Ð operations.
Page 32, add the following to FUNCTION 13 box
* Returned Value: *
* Register A: Return Code *
Page 32, paragraph 2
Change: [entire paragraph]
To: Thå  RESEÔ DISË SYSTEÍ functioî ió qualifieä iî  MP/M® <20>
                   therå  arå  anù opeî fileó oî anù  drive¬  thå  reseô  disë <20>
                   systeí   denieä  anä  thå reasoî   displayeä   thå <20>
                   console.
                   Thå returneä valuå indicateó whetheò oò noô thå reseô disk <20>
                   waó  successful®  Iæ anù procesó ió currentlù accessinç  á <20>
                   drive¬ aî erroò codå oæ 0FFÈ ió returneä iî thå Á register® <20>
                   Á returî codå oæ ° indicateó success.
Page 46, add the following functions:
***************************************
* *
* FUNCTION 37: RESET DRIVE *
* *
***************************************
* Entry Parameters: *
* Register C: 25H *
* Register DE: Drive Vector *
* *
           * Returned Value: *
           * Register A: Return Code *
***************************************
Thå  RESEÔ  DRIVÅ  functioî  allowó  resettinç   specifieä <20>
           drive(s)®  Thå passeä parameteò ió á 1¶ biô vectoò oæ driveó tï bå <20>
           reset¬  thå  leasô significanô biô ió drivå A:®  Iæ therå arå  anù <20>
           opeî fileó oî á specifieä drive¬  thå reseô drivå ió denieä anä thå <20>
           reasoî ió displayeä oî thå console.
Š            Thå  returneä valuå indicateó whetheò oò noô thå reseô  drivå <20>
           waó successful®  Iæ anù procesó ió currentlù accessinç á drivå <20>
           bå reset¬  aî erroò codå oæ 0FFÈ ió returneä iî thå Á register®  Á <20>
           return code of 0 indicates success.                   
***************************************
* *
* FUNCTION 38: ACCESS DRIVE *
* *
***************************************
* Entry Parameters: *
* Register C: 26H *
* Register DE: Drive Vector *
* *
***************************************
Thå  ACCESÓ  DRIVÅ functioî allowó settinç thå  drivå  accesó <20>
           bit(s©   thå callinç processeó procesó descriptor®  Thå  passeä <20>
           parameteò ió á 1¶ biô vectoò oæ drive(s© tï bå accessed¬  thå leasô <20>
           significanô biô ió drivå A:.
***************************************
* *
* FUNCTION 39: FREE DRIVE *
* *
***************************************
* Entry Parameters: *
* Register C: 27H *
* Register DE: Drive Vector *
* *
***************************************
Thå  FREÅ  DRIVÅ  functioî allowó freeinç  thå  drivå  accesó <20>
           bit(s©  iî thå callinç processeó procesó  descriptor®  Thå  passeä <20>
           parameteò   á 1¶ biô vectoò oæ drive(s© tï bå freed¬  thå  leasô <20>
           significanô biô ió drivå A:.
***************************************
* *
* FUNCTION 40: WRITE RANDOM WITH *
* ZERO FILL *
***************************************
* Entry Parameters: *
* Register C: 28H *
* Register DE: FCB Address *
* *
* Returned Value: *
* Register A: Return Code *
***************************************
Thå  WRITÅ  RANDOÍ  WITÈ ZERÏ FILÌ operatioî   similaò <20>
           FUNCTIOΠ 34º WRITÅ RANDOÍ witè thå exceptioî thaô alì  unallocateä <20>
           blockó arå zerï filled.
Š Page 49, add to description of circular queue element BUFFER
                   Noteº Mutuaì exclusioî queueó requirå á twï bytå buffeò foò <20>
                   the owner process descriptor address.
Page 51, add to bottom of page
                    QUEUE NAMING CONVENTIONS
                   Thå  followinç conventionó shoulä bå useä iî thå naminç <20>
                   queues®  Queueó whicè arå tï bå directlù writteî tï bù thå <20>
                   Terminaì   Messagå  Procesó  (TMP©  viá  thå  Commanä  Linå <20>
                   Interpreteò (CLI© musô havå aî uppeò caså ASCIÉ name® Thuó <20>
                   wheî   operatoò  enteró thå queuå  namå  followeä   á <20>
                   commanä  taiì aô á console¬  thå commanä taiì ió writteî tï <20>
                   the queue.
                     ordeò   makå á queuå inaccessiblå bù  á  useò   á <20>
                   console it must contain at least one lower case character.
                   Mutuaì  exclusioî  queueó shoulä bå nameä uppeò  caså  'MX§ <20>
                   followeä   ± tï ¶ additionaì  ASCIÉ  characters®  Theså <20>
                   queueó  arå treateä speciallù iî thaô theù musô havå á  twï <20>
                   bytå buffeò iî whicè MP/Í placeó thå addresó oæ thå procesó <20>
                   descriptoò owninç thå mutuaì exclusioî message.
Page 52
Change: SCRATCH (13) BYTE )
To: DRVACT ADDRESS,
REGISTERS (20) BYTE,
SCRATCH (2) BYTE )
Page 53
Change: DS 13 ; SCRATCH
To: DS 2 ; drives active
DS 20 ; register save area
DS 2 ; scratch
Change: SCRATCH =13 bytes, system scratch bytes
To: DRVACT = 2 bytes, 16 bit vector of drives being
accessed by the process
REGISTERS =20 bytes, 8080 / Z80 register save area
SCRATCH = 2 bytes, system scratch bytes
Š   Page 53, add to process descriptor element NAME definition
                   Thå  higè  ordeò  biô oæ eacè bytå oæ thå procesó  namå <20>
                   reserveä foò uså bù thå system®  Thå higè ordeò biô oæ thå <20>
                   firsô bytå (identifieä aó NAME(0)'© "on¢ indicateó thaô thå <20>
                   procesó   performinç direcô consolå BIOÓ calló anä  thaô <20>
                   MP/Í ió tï ignorå alì controì characters®  Iô ió alsï useä <20>
                   tï suppresó thå normaì consolå statuó checë donå wheî  BDOÓ <20>
                   disë functionó arå invoked.
Page 53, add to the bottom of the page
                    PROCESS NAMING CONVENTIONS
                   Thå  followinç conventionó shoulä bå useä iî thå naminç <20>
                   processes®  Processeó  whicè waiô oî queueó thaô arå tï bå <20>
                   senô  commanä  tailó froí thå TMPó arå  giveî  thå  consolå <20>
                   resourcå iæ theiò namå matcheó thaô oæ thå queuå whicè theù <20>
                   are reading.
                   Processeó  whicè  arå tï bå protecteä froí abortioî  <20>
                   operatoò  usinç  thå ABORÔ commanä musô havå aô  leasô  onå <20>
                   lower case character in the process name.
Page 54, add to bottom of page
                    Memory Descriptor Data Structure:
                   PL/M:
                   
                    Declare memory$descriptor structure (
                    base byte,
                    size byte,
                    attributes byte,
                    bank byte );
                   Assembly Language:
                    MEMDESCRIPT:
                    DS 1 ; base
                    DS 1 ; size
                    DS 1 ; attributes
                    DS 1 ; bank
Page 57, add to FUNCTION 134: MAKE QUEUE
                   Queueó  caî onlù bå createä eitheò iî commoî memorù  <20>
                   useò  programó iî non-bankeä systems®  Thå reasoî ió  thaô <20>
                   queueó  arå  alì maintaineä oî á linkeä lisô whicè musô <20>
                   accessiblå aô alì times®  I.E.¬ á queuå cannoô residå iî á <20>
                   memorù segmenô whicè ió banë switched®  However¬  á  queuå <20>
                   createä  iî commoî memorù caî bå accesseä bù alì systeí anä <20>
                   useò programs.
Š Page 62, add to FUNCTION 143: TERMINATE PROCESS
                   Entry Parameter, Register D: Conditional memory free
                     á useò procesó ió beinç terminateä anä Registeò Ä ió  á <20>
                   0FFH¬  thå memorù segmenô ió noô released®  Thuó á procesó <20>
                   whicè ió á chilä oæ á parenô procesó botè executinç iî  thå <20>
                   samå  memorù  segmenô  caî terminatå  withouô  freeinç  thå <20>
                   memory segment which is also occupied by the parent.
Page 62, add to FUNCTION 144: CREATE PROCESS
                   Processeó caî onlù bå createä eitheò iî commoî memorù oò bù <20>
                   useò  programó iî non-bankeä systems®  Thå reasoî ió  thaô <20>
                   procesó  descriptoró  arå alì maintaineä   linkeä  listó <20>
                   whicè musô bå accessiblå aô alì times.
Page 68, add to bottom of page
           ***************************************
* *
* FUNCTION 156: RETURN PROCESS *
* DESCRIPTOR ADDRESS *
***************************************
* Entry Parameters: *
* Register C: 9CH *
* *
           * Returned Value: *
           * Register HL: PD Address *
***************************************
            Thå  RETURΠ PROCESÓ DESCRIPTOÒ ADDRESÓ functioî obtainó  thå <20>
           addresó  oæ callinç processeó procesó  descriptor®   definitioî <20>
           this is the head of the ready list.
           ***************************************
* *
* FUNCTION 157: ABORT SPECIFIED *
* PROCESS *
***************************************
* Entry Parameters: *
* Register C: 9DH *
* Register DE: APB Address *
           ª *
           * Returned Value: *
           * Register A: Return Code *
***************************************
            Thå  ABORÔ  SPECIFIEÄ PROCESÓ functioî permitó á  procesó <20>
           terminatå  anotheò specifieä process®  Thå passeä parameteò ió thå <20>
           addresó    Aborô Parameteò Blocë  (APB©  whicè  containó  thå <20>
           following data structure:
Š           PL/M:
            Declare Abort$paramter$block structure (
            pdadr address,
            termination$code address,
            name (8) byte,
            console byte );
           Assembly Language:
            APB:
            DS 2 ; process desciptor address
            DS 2 ; termination code
            DS 8 ; process name
            DS 1 ; console used by process
             thå procesó descriptoò addresó ió knowî iô caî bå filleä iî anä <20>
           thå procesó namå anä consolå caî bå omitted® Otherwiså thå procesó <20>
           descriptoò  addresó fielä shoulä bå á zerï anä thå procesó namå anä <20>
           consolå  musô bå specified®  Iî eitheò caså thå  terminatioî  codå <20>
           musô   supplieä whicè ió thå parameteò passeä tï  FUNCTIOΠ 143º <20>
           TERMINATÅ PROCESS.
                            
Page 73, add to step (6)
                   Thå firsô LDRBIOÓ calì madå bù thå MPMLDÒ ió SELDSKº selecô <20>
                   disk®  Iæ therå arå deviceó whicè requirå initializatioî á <20>
                   calì tï thå LDRBIOÓ colä starô oò otheò initializatioî codå <20>
                   should be placed at the beginning of the SELDSK handler.
                   Noteº Thå MPMLDÒ useó 4000È - 6FFFÈ aó á buffeò areá  wheî <20>
                   loading and relocating the MPM.SYS file.
Page 74, add to procedure to prepare an XIOS.SPR file
*** Warning ***
                   Makå  certaiî  thaô youò XIOS.ASÍ filå containó  á  defineä <20>
                   bytå  oæ zerï aô thå end®  Thió ió especiallù criticaì <20>
                   youò XIOS.ASÍ filå endó witè á defineä storage® Thå reasoî <20>
                   foò  thió requiremenô ió thaô therå arå nï HEØ filå recordó <20>
                   produceä  foò defineä storgå (DS©  statements®  Thus¬  thå <20>
                   outpuô HEØ filå ió misleadinç becauså iô doeó noô  identifù <20>
                   thå  truå  lentè   youò  XIOS®  Thå  followinç  examplå <20>
                   illustrates a properly terminated XIOS:
                    begdat equ $
                    dirbuf: ds 128
                    alv0: ds 31
                    csv0: ds 16
                    db 0 ; force out hex record at end
                    end
Š                   Notå  thaô  thió  samå techniquå musô   applieä   anù <20>
                   other PRL or RSP programs that you prepare.
Page 83, add to end of SELDSK paragraph
                     entrù tï SELDSË iô ió possiblå tï determinå whetheò <20>
                     thå  firsô timå thå specifieä disë haó  beeî  selected® <20>
                   Registeò E¬  biô ° (leasô significanô bit© ió á zerï iæ thå <20>
                   drivå  haó noô beeî previouslù selected®  Thió informatioî <20>
                      interesô iî systemó whicè reaä  disë  configuratioî <20>
                   informatioî  froí  thå drivå iî ordeò tï seô uð  á  dynamiã <20>
                   disk definition table.
Page 86, paragraph 3, add to jump vector list
                   BIOS+48H JMP IDLE ; IDLE PROCEDURE (optional)
Page 87, paragraph 8, add to SYSTEMINIT
                   Thå  SYSTEMINIÔ  entrù poinô ió calleä prioò tï  anù  otheò <20>
                   XIOÓ call®  Thå MPMLDÒ disableó interrupts¬ thuó iô caî bå <20>
                   assumeä  thaô  interruptó arå stilì disableä upoî entrù <20>
                   SYSTEMINIT®  Interruptó  arå enableä bù  MP/Í  immediatelù <20>
                   upoî returî froí SYSTEMINIT.
                     systemó  witè banë switcheä memorù iô ió  necessarù <20>
                   setuð  thå  baså pagå (0000È - 00FFH© withiî eacè  banë <20>
                   memory®  Botè  thå MPMLDÒ anä MP/Í itselæ assumå thaô  thå <20>
                   baså  banë  (banë  #0© ió switcheä iî wheî  thå  MPMLDÒ <20>
                   executed®  Thå  baså banë ió properlù initializeä bù  MP/Í <20>
                   prioò tï enterinç SYSTEMINIT® Thå informatioî requireä foò <20>
                   thå  initializatioî ió provideä oî entrù tï  SYSTEMINIÔ <20>
                   the following registers:
                    Register C = MP/M Debugger restart #
                    DE = MP/M entry point address for the debugger
                    Place a jump at the proper debugger
                    restart location to the address contained
                    in DE.
                    HL = BIOS direct jump table address
                    Place a jump instruction at location
                    0000H in each banks base page to the
                    address contained in HL.
Š Page 88, add description of IDLE entry point subroutine
                   IDLE Thå  idlå  entrù  poinô   includeä   permiô <20>
                             optimizatioî oæ systeí performancå wheî thå  useò <20>
                             haó aî XIOÓ thaô ió alì interrupô driven® Iæ yoõ <20>
                             havå  polleä  deviceó   youò  XIOS¬  thå  IDLÅ <20>
                             procedurå   maù   omitteä   placinç  á  NOÐ <20>
                             instructioî aô thå BIOS+48È locatioî wherå  therå <20>
                             woulä otherwiså bå á jumð tï aî idlå procedure.
                             Thå  idlå  entrù poinô ió calleä repeatedlù  wheî <20>
                             MP/Í ió idling® Thaô is¬ wheî therå arå nï otheò <20>
                             processeó  readù  tï run®  Iî systemó  thaô  arå <20>
                             entirelù  interrupô  driveî  thå  idlå  procedurå <20>
                             should be as follows:
                              IDLE:
                              HLT
                              RET
Page 88, add to INTERRUPT SERVICE ROUTINES section
                   Thå  onlù  XDOÓ oò BDOÓ calì whicè shoulä bå madå  froí <20>
                   interrupô  handleò  ió FUNCTIOÎ 133º FLAÇ SET®  Anù  otheò <20>
                   XDOÓ   BDOÓ calì wilì resulô iî á dispatcè  whicè  woulä <20>
                   theî enablå interruptó prioò tï completinç executioî oæ thå <20>
                   interrupô handler.
                      recommendeä  thaô  interruptó  onlù   useä   foò <20>
                   operationó whicè arå asynchronous¬ sucè aó consolå inpuô oò <20>
                   disë  operatioî complete®  Iî general¬  operationó sucè aó <20>
                   consolå outpuô shoulä noô bå interrupô driven®  Thå reasoî <20>
                   thaô  interruptó  arå noô desirablå foò consolå  outpuô <20>
                   thaô  thå systeí ió affordeä somå elasticitù bù  performinç <20>
                   polleä consolå outputó whilå idling¬  ratheò thaî incurrinç <20>
                   thå dispatcè overheaä foò eacè characteò transmitted® Thió <20>
                   is particularily true at higher baud rates.
                     systemó requirinç thå Z8° returî froí interrupô  (RETI© <20>
                   instruction¬  thå jumð tï PDISÐ aô thå enä oæ thå interrupô <20>
                   servicinç  caî  bå donå bù placinç thå addresó oæ PDISР<20>
                   thå stacë anä theî executinç aî RETÉ instruction.
Page 89, paragraph 1
Add:    Thå   recommendeä   timå  uniô     16.6·   milliseconds¬
                   correspondinç   6° Hz®  Wheî operatinç witè 5°  Hú  thå
                   recommended time unit is 20 milliseconds.
                   Thå  ticë  frequencù ió criticaì iî thaô iô determineó  thå
                   dispatcè  frequencù foò computå bounä  processes®   thå
                   frequencù   toï  high¬  á significanô amounô   systeí
                   overheaä   incurreä bù  excessivå  dispatches®   thå <20>Š                   frequencù ió toï low¬ computå bounä processeó wilì keeð thå <20>
                   CPU resource for accordingly longer periods.
        Page 90, make the following table changes
004-004 Bank switched memory flag
                   005-005 Z80 CPU
                   006-006 Banked BDOS file manager
016-047 Initial memory segment table
112-122 Scratch area for memory segments
123-127 Unassigned
144-255 Reserved
Page 92, add the following question(s) during GENSYS
                   Z80 CPU (Y/N)?
                   -Á responså oæ 'Y§ wilì causå MP/Í tï savå thå statå oæ thå <20>
                   complementary Z80 registers during dispatches.
Bank switched memory (Y/N)?
                   -  thå abovå responså ió 'Y§ theî thå followinç  questioî <20>
                   is displayed:
                   Banked BDOS file manager (Y/N)?
Page 93, paragraph 3
Change: Iæ  thå systeí haó banë switcheä memorù á commá anä á  banë <20>
                   numbeò shoulä follo÷ thå baså specification.
To: Iæ thå systeí haó banë switcheä memory¬  responä witè á 'Y§ <20>
                     thå  GENSYÓ questioî anä yoõ wilì bå prompteä  foò  thå <20>
                   base¬ size¬ attributes¬ anä banë oæ eacè memorù segment.
Page 93, paragraph 4
Change: : 00,0
: 00,1
: 00,2
: ff
           To: Base,size,attribs,bank = 00,C0,00,0
Base,size,attribs,bank = 00,C0,00,1
Base,size,attribs,bank = 00,C0,00,2
Base,size,attribs,bank = ff
Š Add: Thå attributå bytå ió normallù defineä aó 00®  However¬ iæ <20>
                   yoõ  wisè  tï pre-allocatå á memorù segmenô á valuå oæ  FFÈ <20>
                   shoulä   specified®  Thå banë bytå  valuå   hardwarå <20>
                   dependenô  anä   usuallù  thå valuå  senô   thå  banë <20>
                   switchinç hardwarå tï selecô thå specifieä bank.
                   Iæ á bankeä BDOÓ filå manageò haó beeî requested¬ thå firsô <20>
                   memorù segmenô specifieä shoulä bå foò banë #0®  Thaô wilì <20>
                   bå thå banë iî whicè thå BNKBDOÓ wilì reside.
Page 97
Change: 3 Reader Input
4 Punch Output
7 Get I/O Byte
8 Set I/O Byte
To: 3 Raw Unattached Console Input
4 Raw Unattached Console Output
7 *** Not Supported ***
8 *** Not Supported ***
Page 99
Change: CP/M
To: MP/M
Change: 0000H - 0002H Containó  á  jumð instructioî tï  thå  warí <20>
                                   starô entrù poinô aô locatioî 4A03H+b® Thió <20>
                                   allowó  á  simplå programmeä  restarô  (JMÐ <20>
                                   000   manuaì restarô  froí  thå  fronô <20>
                                   panel.
To: 0000H - 0002H Containó  á jumð instructioî tï XDOÓ  whicè <20>
                                   terminateó thå process® Thió allowó simplå <20>
                                   procesó  terminatioî   executinç  á  JMÐ <20>
                                   0000H.
Page 107
Change: ds 1 ; memseg
To: db 0ffh ; memseg, identifies an RSP
Change: ds 2 ; scratch
To: ds 2 ; drives active
ds 20 ; registers save area
ds 2 ; scratch
.pa
Š APPENDIX J: MP/M DDT Enhancements
            Thå  followinç commandó havå beeî addeä tï thå MP/Í  debuggeò <20>
             providå  á  functioî  similaò tï CP/M'ó  SAVÅ  commanä  anä <20>
           simplify the task of patching and debugging PRL programs.
           W: WRITE DISK
            Thå  purposå   thå WRITÅ DISË commanä ió   providå  thå <20>
           capabilitù tï writå á patcheä prograí tï disk®  Á singlå parameteò <20>
           immediatelù  followó  thå 'W§ whicè ió thå numbeò oæ  sectoró  (12¸
           bytes/sector©  tï bå written®  Thió parameteò ió entereä iî  hexa-
           decimal.
           V: VALUE
            Thå purposå oæ thå VALUÅ commanä ió tï facilitatå use oæ thå <20>
           WRITÅ DISË commanä bù computinç thå parameteò tï follo÷ thå 'W'® Á <20>
           singlå  parameteò  immediatelù  followó thå 'V§ whicè ió  thå  NEXÔ <20>
           location following the last byte to be written to disk.
            Normallù á useò woulä reaä iî á file¬ ediô it¬ anä theî writå <20>
           iô bacë tï disk® Thå reaä commanä produceó á valuå foò NEXT® Thió <20>
           valuå  caî bå entereä aó á parameteò followinç thå 'V§ commanä  anä
           thå numbeò oæ sectoró tï bå writteî ouô usinç thå 'W§ commanä  wilì
           be computed and displayed.
           N: NORMALIZE
            Thå  purposå  oæ thå NORMALIZÅ commanä ió tï relocatå á  pagå <20>
           relocatablå  filå whicè haó beeî reaä intï memorù bù thå  debugger® <20>
             debuç  á  PRÌ  prograí thå usår woulä reaä iô iî  witè  thå 'R' <20>
           commanä  anä  theî uså thå 'N§ commanä tï relocatå iô  withiî  thå <20>
           memorù segmenô thå debuggeò ió executing.
           B: BITMAP BIT SET/RESET
            Thå purposå oæ thå BITMAÐ BIÔ SET/RESEÔ commanä ió tï  enablå <20>
           thå useò tï updatå thå bitmað oæ á pagå relocatablå file®  Tï ediô <20>
           á  PRÌ  filå thå useò woulä reaä thå filå in¬  makå changeó tï  thå <20>
           code¬  anä  theî determinå thå byteó whicè needeä relocatioî  (E.G® <20>
           thå  higè  ordeò  addresó byteó oæ  jumð  instructions)®  Thå  'B§ <20>
           commanä  woulä theî bå useä tï updatå thå biô map®  Therå arå  twï <20>
           parameteró specified¬ thå addresó tï bå modifieä (0100È ió thå baså <20>
           oæ thå prograí segment)¬  followeä bù á zerï oò á one®  Á valuå oæ <20>
           one specifies bit setting.
.pa
Š APPENDIX K: Page Relocatable (PRL) File Specification
            Pagå  relocatablå  fileó  arå  storeä   diskettå   thå <20>
           following format:
           Address: Contents:
           ------- --------
           0001-0002H Program size
           0004-0005H Minimum buffer requirements (additional memory)
           0006-00FFH Currently unused, reserved for future allocation
           0100H + Program size = Start of bit map
            Thå  biô mað ió á strinç oæ bitó identifyinç whicè byteó  arå <20>
           tï bå relocated® Therå ió onå biô mað bytå peò ¸ byteó oæ program® <20>
           Thå  mosô  significanô  biô (7© oæ thå firsô bytå oæ  thå  biô  mað <20>
           indicateó  whetheò  oò noô thå firsô bytå oæ thå prograí ió  <20>
           relocated®  Á  biô  whicè    indicateó  thaô  relocatioî <20>
           required®  Thå nexô bit¬  bit(6)¬  oæ thå firsô bytå oæ thå biô mað <20>
           corresponds to the second byte of the program.