 0000      $CURSOR $EQUAL                                              
 0040                                                                  
 0000  pansion  %A 1   Save Cursor Address          Q 17   Print Screen
 0040    %B 2   Save Console Option          R 18   Inverse Mode Enable
 0000                                                                  
 0040                                                                  
 0000    %C 3   Save Color                   S 19   Inverse Mode Disabl
 0040  e  %D 4   Read Cursor Address          T 20   Restore Cursor Add
 0000                                                  i               
 0040                                                                  
 0000  ress  %E 5   Read Console Option          U 21   Restore Option 
 0040   %F 6   Read Color                   V 22   Restore Color       
 0000                      O   . E+e+                                  
 0040                                                                  
 0000   %G 7   Bell                         W 23  %H 8   Backspace     
 0040                 X 24  %I 9   Tab                          Y 25   
 0000                                                                  
 0040                                                                  
 0000  Home Cursor  %J 10  Linefeed                     Z 26   Set Cons
 0040  ole Option  %K 11  Clear to End of Screen       [ 27     %L 12  
 0000                                                                  
 0040                                                                  
 0000  Clear Screen                 \ 28   Nondestructive Forward Space
 0040    %M 13  Carriage Return              ] 29   Clear to End of Lin
 0000                                                                  
 0040                                                                  
 0000  e  %N 14  Set Color                    ^ 30   Set Cursor Address
 0040    %O 15  Left Arrow (same as 8)       _ 31   Reverse Linefeed  $
 0000                                                                  
 0040                                                                  
 0000    %  %Control Character          Action  %=================     
 0040       ======  %@ 0                        Null - no action  %A 1 
 0000         SYSDOC \   q/c9      8    READ.ME.TEXT \/  e+8 ^    READ.
 0040  ME1.TEXT\/  $'^ h    READ.ME2.TEXT\/  *&h      READ.ME3.TEXT\/  
 0000                         Save Cursor Address in the "Saved Cursor 
 0040   DAddress" variable for later recall  %B 2                      
 0000  6*       READ.ME4.TEXT\/  E-cial graphics forms, described in th
 0040  e NEC hardware   manual.  Characters in the range 0 through 31 m
 0000    Save Console Option in the "Saved Console  DOption" variable f
 0040  or later recall.  DRequires an option letter (see below)  Dto sp
 0000  ay be displayed as   special graphics characters, but normally i
 0040  ndicate a special screen   function.  These screen functions are
 0000  ecify which option value to save.  %                            
 0040     If the specified option does not                             
 0000   intended to be a superset of   those defined for the Apple ][ i
 0040  n order to facilitate software   portability.  They are describe
 0000         SYSDOC \   q/c9      8    READ.ME.TEXT \/  e+8 ^    READ.
 0040  ME1.TEXT\/  $'^ h    READ.ME2.TEXT\/  *&h      READ.ME3.TEXT\/  
 0000  d as follows:  $  9Output Character Sequences  9================
 0040  ==========  %  %@ 0   Null                         P 16   DLE Ex
 0000  6*       READ.ME4.TEXT\/  E-cial graphics forms, described in th
 0040  e NEC hardware   manual.  Characters in the range 0 through 31 m
 0000  cursor at its current position.  %L 12                       Cle
 0040  ar Screen and home the cursor.  %M 13                       Carr
 0000   through 255   each have special graphics forms, described in th
 0040  e NEC hardware   manual.  Characters in the range 0 through 31 m
 0000  iage Return to the left margin.  %N 14                       Set
 0040   Color to a new color.  Requires a  Dcolor option specifying the
 0000  ay be displayed as   special graphics characters, but normally i
 0040  ndicate a special screen   function.  These screen functions are
 0000   new  Dcolor (see below).  %O 15                       Left Arro
 0040  w (same as Backspace).  %P 16                       Null - No ac
 0000   intended to be a superset of   those defined for the Apple ][ i
 0040  n order to facilitate software   portability.  They are describe
 0000  cter  Dsequence necessary to position the  Dcursor at its curren
 0040  t position is  Dreturned.  %E 5                        Read Cons
 0000  tion.  %Q 17                       Print Screen to printer.  Req
 0040  uires  Doperation code specifying destination                   
 0000  ole Option into the keyboard  Dinput buffer.  Requires an option
 0040    Dletter (see below) in either upper  Dcase or lower case to sp
 0000      $CURSOR $EQUAL                                              
 0040                                                                  
 0000  ecify the  Doption whose value is to be read.  DThe two characte
 0040  r sequence necessary   Dto set the option to its current  Dvalue
 0000                                                                  
 0040                                                                  
 0000   is returned.  If the option  Ddoes not exist, the option   Dide
 0040  ntifier is returned as received.  %F 6                        Re
 0000                                                  i               
 0040                                                                  
 0000  ad Color into the keyboard input   Dbuffer.  The two character s
 0040  equence  Dnecessary to set the color to its  Dcurrent value is r
 0000                      O   . E+e+                                  
 0040                                                                  
 0000  eturned.  %G 7                        Bell - sound an audible to
 0040  ne.                                                             
 0000                                                                  
 0040                                                                  
 0000   %H 8                        Backspace the cursor one position. 
 0040   Wrap  Daround to the last column in the   Dprevious line if cur
 0000                                                                  
 0040                                                                  
 0000  rently at the  Dleft margin.  No wrap around occurs  Dif the cur
 0040  sor is at the upper left  Dcorner.  %I 9                        
 0000                                                                  
 0040                                                                  
 0000  Tab the cursor to the next 8th column.  Do  Dnot wrap around if 
 0040  at the right margin.  %J 10                       Linefeed to th
 0000                                                                  
 0040                                                                  
 0000  e next screen row.  Scroll the  Dscreen if at the last row.  %K 
 0040  11                       Clear to End of Screen and leave the  D
 0000   :   Characters in the range 32 through 127 are displayed accord
 0040  ing to   their normal ASCII values.  Characters in the range 128
 0000  e  %N 14  Set Color                    ^ 30   Set Cursor Address
 0040    %O 15  Left Arrow (same as 8)       _ 31   Reverse Linefeed  $
 0000   %H 8                        Backspace the cursor one position. 
 0040   Wrap  Daround to the last column in the   Dprevious line if cur
 0000    %  %Control Character          Action  %=================     
 0040       ======  %@ 0                        Null - no action  %A 1 
 0000  rently at the  Dleft margin.  No wrap around occurs  Dif the cur
 0040  sor is at the upper left  Dcorner.  %I 9                        
 0000                         Save Cursor Address in the "Saved Cursor
 0040   DAddress" variable for later recall  %B 2                      
 0000  Tab the cursor to the next 8th column.  Do  Dnot wrap around if 
 0040  at the right margin.  %J 10                       Linefeed to th
 0000    Save Console Option in the "Saved Console  DOption" variable f
 0040  or later recall.  DRequires an option letter (see below)  Dto sp
 0000  e next screen row.  Scroll the  Dscreen if at the last row.  %K 
 0040  11                       Clear to End of Screen and leave the  D
 0000  ecify which option value to save.  %                            
 0040     If the specified option does not                             
 0000  cursor at its current position.  %L 12                       Cle
 0040  ar Screen and home the cursor.  %M 13                       Carr
 0000   Dexist, no operation is performed.  %C 3                       
 0040   Save Color in the "Saved Color" variable  %                    
 0000  iage Return to the left margin.  %N 14                       Set
 0040   Color to a new color.  Requires a  Dcolor option specifying the
 0000  d as follows:  $  9Output Character Sequences  9================
 0040  ==========  %  %@ 0   Null                         P 16   DLE Ex
 0000             for later recall.  %D 4                        Read C
 0040  ursor Address into the keyboard  Dinput buffer.  The three chara
 0000  pansion  %A 1   Save Cursor Address          Q 17   Print Screen
 0040    %B 2   Save Console Option          R 18   Inverse Mode Enable
 0000  cter  Dsequence necessary to position the  Dcursor at its curren
 0040  t position is  Dreturned.  %E 5                        Read Cons
 0000    %C 3   Save Color                   S 19   Inverse Mode Disabl
 0040  e  %D 4   Read Cursor Address          T 20   Restore Cursor Add
 0000  ole Option into the keyboard  Dinput buffer.  Requires an option
 0040    Dletter (see below) in either upper  Dcase or lower case to sp
 0000  ress  %E 5   Read Console Option          U 21   Restore Option 
 0040   %F 6   Read Color                   V 22   Restore Color       
 0000  ecify the  Doption whose value is to be read.  DThe two characte
 0040  r sequence necessary   Dto set the option to its current  Dvalue
 0000   %G 7   Bell                         W 23  %H 8   Backspace     
 0040                 X 24  %I 9   Tab                          Y 25   
 0000   is returned.  If the option  Ddoes not exist, the option   Dide
 0040  ntifier is returned as received.  %F 6                        Re
 0000  Home Cursor  %J 10  Linefeed                     Z 26   Set Cons
 0040  ole Option  %K 11  Clear to End of Screen       [ 27     %L 12  
 0000  ad Color into the keyboard input   Dbuffer.  The two character s
 0040  equence  Dnecessary to set the color to its  Dcurrent value is r
 0000  Clear Screen                 \ 28   Nondestructive Forward Space
 0040    %M 13  Carriage Return              ] 29   Clear to End of Lin
 0000  eturned.  %G 7                        Bell - sound an audible to
 0040  ne.                                                             
 0000   DIf the code is "5", the entire screen  Dis transmitted.  All o
 0040  ther codes are  Dignored.  %R 18                       Inverse M
 0000   hex, followed by the row  Daddress, biased by 20 hex.  %_ 31   
 0040                      Reverse Linefeed to the previous line.      
 0000  ode Enable -- all subsequent  Dprintable characters will be writ
 0040  ten  Din reverse video.  %S 19                       Inverse Mod
 0000   DDo not scroll the screen in the  Dreverse direction if the cur
 0040  sor is  Dat the top of the screen.     $Console options are mani
 0000  e Disable -- all subsequent  Dprintable characters will be writt
 0040  en  Din normal video.  %T 20                       Restore Curso
 0000  pulated by a two character sequence  $starting with control-Z an
 0040  d followed by either an upper case  $letter (to enable an option
 0000  r Address to the value in  Dthe "Saved Cursor Address" variable.
 0040    %U 21                       Restore Option to the value in  Dt
 0000  ) or a lower case letter (to disable an  $option).  All console 
 0040  options are initially disabled.  Console  $options may be set an
 0000  he "Saved Option Value" variable.  DRequires an option identifie
 0040  r (see  Dbelow) indicating which option's  Dvalue is to be resto
 0000  d disabled independent of each other.  Note  $that control-R and
 0040   control-S are equivalent to (control-Z, E) and  $(control-Z, e)
 0000  red.  If the  Doption does not exist, no action  Dis taken.  %V 
 0040  22                       Restore Color to the value in the      
 0000  , respectively.  The control-B, control-E and control-U  $sequen
 0040  ces also require an option identifier, which may be in either  $
 0000   D"Saved Color" variable.  %W 23                       Null - No
 0040   action.  %X 24                       Null - No action.  %Y 25  
 0000  upper or lower case.  The options are:     %Option          Attr
 0040  ibute  %======          =========  'A             Underline Mode
 0000                       Home Cursor to the top left margin.  %Z 26 
 0040                        Set Console Option to the specified  Dvalu
 0000    8- Put a green line under all subsequent printable   :characte
 0040  rs.  'B             Overline Mode   '                 - Put a gr
 0000  e.  Requires a option   Didentifier (see below) indicating  Dwhi
 0040  ch option value is to be set  Dand the new value.  If the option
 0000  een line over all subsequent printable   :characters.  'C       
 0040        Vertical Line Mode                                        
 0000   new  Dcolor (see below).  %O 15                       Left Arro
 0040  w (same as Backspace).  %P 16                       Null - No ac
 0000    Ddoes not exist, no action is taken.  %[ 27                   
 0040      Null - No action.  %\ 28                       Nondestructiv
 0000  tion.  %Q 17                       Print Screen to printer.  Req
 0040  uires  Doperation code specifying destination                   
 0000  e Forward Space the cursor  Dto the next column.  Wrap around to
 0040    Dthe next line if on the right margin  Dunless cursor is on th
 0000   Dand operation.  If the code is "0",  %                        
 0040         a form feed is transmitted to the  Dparallel printer.  If
 0000  e last line.  %] 29                       Clear to End of Line a
 0040  nd leave the cursor  Dat its current position.  %^ 30           
 0000   the code is  D"1", the entire screen is transmitted.  DIf the c
 0040  ode is "4", a form feed is  Dtransmitted to the serial printer. 
 0000              Set Cursor Address according to the  Dnext two ASCII
 0040   values.  The next  Dvalue is the column address, biased  Dby 20
 0000  nt printable character blink.  'E             Inverse Mode   8- 
 0040  Print each subsequent character in inverse video.    :The backgr
 0000  ne floppy status field   8- Disable system floppy format status 
 0040  field.  No  '                   clock interrupt time is used to 
 0000  ound is the character's color.  'F             (Unallocated)  'G
 0040               Blank system status line field   8- Disable entire 
 0000  display floppy  :format status information.  Normally, the  :fie
 0040  ld contains the format used by the floppy                       
 0000  system status line.  No clock   :interrupt time is used for stat
 0040  us line display.  :Normally, a status line containing three fiel
 0000   :driver to access each floppy.  If the floppy  :format is the d
 0040  efault NEC format, no format is  :displayed.  If the format is n
 0000  ds  :appears at the top of the screen.  In order for  :a given f
 0040  ield to be displayed, the status line  :field must be enabled, a
 0000  ot NEC format,  :the format and the name of the drive to which  
 0040  :it pertains is displayed.  Formats may be set  :using the keybo
 0000  nd the particular field  :must also be enabled.  All fields are 
 0040  displayed  :in green.  'H             Blank system status line d
 0000  ard sequences described below.  'K             (Unallocated)  'L
 0040               Nonblinking cursor  8- Display a solid cursor inste
 0000  ate field   8- Disable system status date field.  No clock   :in
 0040  terrupt time is used to calculate time and date.  '             
 0000  ad of the normal  :blinking cursor.  'M             Underscore c
 0040  ursor  '                 - Display an underscore for the cursor 
 0000        Normally, display contains the day, date, and time  :to th
 0040  e nearest minute.  Time is recalculated                         
 0000  instead of  :the normal block cursor.  'N             Invisible 
 0040  cursor  '                 - Render the cursor invisible instead 
 0000   :every 15 seconds and is redisplayed when the minute  :changes.
 0040    The month and day, but not the year,  :are also recalculated. 
 0000  of displaying  :the cursor.  'O             (Unallocated)  'P   
 0040            Ignore keyboard input   8- Disable all keyboard functi
 0000   A new year may be set  :using a utility program (as yet unwritt
 0040  en).  'I             Blank system status line shift key status f
 0000  ons except local  :key processing (see below).  This also displa
 0040  ys  :the keyboard status indicator in the keyboard  :status fiel
 0000  ield   8- Disable system key status field.  No clock   :interrup
 0040  t time is used to display keyboard  :status.  Normally, display 
 0000  d of the system status line in  :inverse video.  'Q             
 0040  Ignore FUNC shift key                                           
 0000  contains the status  :of the CAPS LOCK, ALT, GRPH1, and GRPH2 sh
 0040  ift  :keys and the keyboard.  The display for a   :given shift k
 0000   '                 - Disable the FNC shift key except in local k
 0040  ey  :processing (see below).  'R             Ignore CTRL shift k
 0000  ey is in normal video if the   :shift key is not down; otherwise
 0040  , the display  :is in reverse video.  The keyboard display  :is 
 0000  ey  '                 - Disable the CTRL shift key except in loc
 0040  al key  :processing (see below).  'S             Ignore GRPH1 sh
 0000   8- Put a green vertical line through all subsequent   :printabl
 0040  e characters.  'D             Blink Mode   8- Make each subseque
 0000  in normal video if the keyboard is enabled;  :otherwise, the dis
 0040  play is in reverse video.  'J             Blank system status li
 0000   Alternate Font  '                 - Display subsequent characte
 0040  rs using the alternate  :16 by 16 font.  '\             Visible 
 0000  Key     ASCII           Key     ASCII           Key     ASCII  %
 0040  ===     =====           ===     =====           ===     =====  %
 0000  control characters  %                   - Display all control ch
 0040  aracters (except 1A) using  :their graphic form instead of proce
 0000  ESC     27 (1B) (^[)    BS       8 (08) (^H)    TAB      9 (09) 
 0040  (^I)  %RETURN  13 (0D) (^M)    HELP    63 (3F) (?)     INS     2
 0000  ift key  8- Disable the GRPH1 shift key except in local key  :pr
 0040  ocessing (see below).  This also clears the  :inverse video disp
 0000  ssing their  :screen function.  Note that processing of 1A  :is 
 0040  still performed so that this mode may be  :cancelled.  %        
 0000  lay for this key if the key   :is depressed and the keyboard sta
 0040  tus field  :on the system status line is enabled.  'T           
 0000   $The character color is set by a two character sequence startin
 0040  g  $with control-N followed by a color option.  The options are:
 0000    Ignore GRPH2 shift key  8- Disable the GRPH2 shift key except 
 0040  in local key  :processing (see below).  This also clears the  :i
 0000       %Option          Attribute  %======          =========  '0 
 0040              Secret (invisible)  '1             Red  '2          
 0000  nverse video display for this key if the key   :is depressed and
 0040   the keyboard status field  :on the system status line is enable
 0000     Blue  '3             Purple  '4             Green  '5        
 0040       Yellow  '6             Turquoise  '7             White  %Al
 0000  d.  'U             (Unallocated)  'V             Ignore ALT shif
 0040  t key  8- Disable the ALT shift key except in local key  :proces
 0000  l others      Ignored  '  $The contents of the screen may be pri
 0040  nted on a printer by using  $a two character sequence starting w
 0000  sing (see below).  This also clears the  :inverse video display 
 0040  for this key if the key                                         
 0000  ith control-P followed by  $a print option.  The options are:  '
 0040    %Option          Meaning  %======          =======  '0        
 0000   :is depressed and the keyboard status field  :on the system sta
 0040  tus line is enabled.  'W             Ignore SHIFT shift key  8- 
 0000       Send a formfeed to the parallel printer  '1             Sen
 0040  d a copy of the screen to the parallel printer  '2             U
 0000  Disable the SHIFT shift key except in local key  :processing (se
 0040  e below).    'X             Ignore CAPS shift key  8- Disable th
 0000  nassigned (ignored)  '3             Unassigned (ignored)  '4    
 0040           Send a formfeed to the serial printer  '5             S
 0000  e CAPS LOCK shift key except in local  :key processing (see belo
 0040  w).  This also clears the  :inverse video display for this key i
 0000  end a copy of the screen to the serial printer  '6             U
 0040  nassigned (ignored)  '7             Unassigned (ignored)        
 0000  f the key   :is depressed and the keyboard status field  :on the
 0040   system status line is enabled.  'Y             Keyboard click  
 0000   %All others      Ignored         The following description appl
 0040  ies when no shift keys are down (shift keys    include FNC, CTRL
 0000  '                 - Enables a short beep whenever a keyboard str
 0040  oke  :is detected.  'Z             (Unallocated)  '[            
 0000  , SHIFT, CAPS LOCK, GRPH1, GRPH2, and ALT):  1  6Unshifted Input
 0040   Character Sequences  6===================================  %  %
 0000  is occurs so  $that BS and LEFT can be distinguished by the Adva
 0040  nced System Editor  $in X(change mode.     1 The following descr
 0000  ) (^I)  %RETURN  13 (0D) (^M)    HELP     63 (3F) (?)    INS    
 0040   30 (1E) (^^)  %DEL    127 (7F) (RUB)   UP       31 (1F) (^_)   
 0000  iption applies when only the SHIFT shift key is down:  1  6SHIFT
 0040  ed Input Character Sequences  6=================================
 0000  LEFT    15 (0F) (^O)  %DOWN    10 (0A) (^J)    RIGHT    28 (1C) 
 0040  (^\)   CL/HM   12 (0C) (^L)  %PRINT   29 (1D) (^])    BRK/ST    
 0000    %  %Key     ASCII           Key     ASCII           Key     AS
 0040  CII  %===     =====           ===     =====           ===     ==
 0000  0 (00) (^@)   ENTER   13 (0D) (^M)  %  $The alpha keys return th
 0040  e control-case alpha character.  Keys  $containing more than one
 0000  ===  %ESC     27 (1B) (^[)    BS      127 (7F) (RUB)  TAB      9
 0040   (09) (^I)                                                      
 0000   symbol return the symbol at the top of  $the key (as if they we
 0040  re SHIFTed).           The following describes how the FNC, ALT,
 0000   %RETURN  13 (0D) (^M)    HELP     63 (3F) (?)    INS     30 (1E
 0040  ) (^^)  %DEL    127 (7F) (RUB)   UP       31 (1F) (^_)   LEFT   
 0000   CAPS LOCK, GRPH1 and GRPH2 shift   keys affect keyboard input: 
 0040      $1) The CAPS LOCK causes alpha keys to emit alpha characters
 0000  3 (17) (^W)  %DEL     24 (18) (^X)    UP      31 (1F) (^_)    LE
 0040  FT    15 (0F) (^O)  %DOWN    10 (0A) (^J)    RIGHT   28 (1C) (^\
 0000   15 (0F) (^O)  %DOWN    10 (0A) (^J)    RIGHT    28 (1C) (^\)   
 0040  CL/HM   12 (0C) (^L)  %PRINT   29 (1D) (^])    BRK/ST    0 (00) 
 0000  )    CL/HM   25 (19) (^Z)  %PRINT   17 (11) (^Q)    BRK/ST  19 (
 0040  13) (^S)    ENTER    3 (03) (^C)  %     $The special function ke



Cylinder 7, Side 0, Sector 14:

 0000  (^@)   ENTER   13 (0D) (^M)  %  $All other keys on the keyboard 
 0040  return the ASCII equivalent of  $their markings.  The alpha keys



Cylinder 7, Side 0, Sector 15:

 0000  ys across the top row each return an escape  $sequence consistin
 0040  g of an ESC (1B) followed by a letter that  $identifies the key'



Cylinder 7, Side 0, Sector 16:

 0000   return the upper-case alpha  $character. Keys containing more t
 0040  han one symbol return the symbol  $at the top of the key.  Note 



Cylinder 7, Side 0, Sector 17:

 0000  s position.  The far left key is identified by  $'@' (40).  The 
 0040  key to its right is identified by "A" (41), and so              



Cylinder 7, Side 0, Sector 18:

 0000  that the "6" key returns the  $character value D0 hex. This is b
 0040  ecause D0 hex identifies a  $"cents" sign in the NEC character s



Cylinder 7, Side 0, Sector 19:

 0000   $on.  The key on the far right is identified by "U" (55).     $
 0040  All other keys on the keyboard return the ASCII equivalent of  $



Cylinder 7, Side 0, Sector 20:

 0000  et.  Note that most UCSD Pascal  $programs are ill-equipt to han
 0040  dle a character of this value.       The following description a



Cylinder 7, Side 0, Sector 21:

 0000  their markings.  The alpha keys return the lower-case alpha  $ch
 0040  aracter. Keys containing more than one symbol return the symbol 



Cylinder 7, Side 0, Sector 22:

 0000  pplies when only the CTRL shift key is down   (note that the tab
 0040  le below is identical to the SHIFTed table above):  1  6CTRL'd I



Cylinder 7, Side 0, Sector 23:

 0000   $at the bottom of the key.  Note that the "^" key returns "^C" 
 0040  (03)  $because there is no ASCII equivalent of the unshifted "^"



Cylinder 7, Side 0, Sector 24:

 0000  nput Character Sequences  6================================  %  
 0040  %Key     ASCII           Key     ASCII           Key     ASCII  



Cylinder 7, Side 0, Sector 25:

 0000   (the NOT  $symbol).  Note that LEFT and BS do not return the sa
 0040  me value,  $although, when output they have the same action.  Th



Cylinder 7, Side 0, Sector 26:

 0000   %===     =====           ===     =====           ===     ===== 
 0040   %ESC     27 (1B) (^[)    BS      127 (7F) (RUB)  TAB      9 (09



Cylinder 8, Side 0, Sector 1:

 0000  ffect on the escape prefix, but may influence the  'key value.  
 0040     $4) The GRPH2 shift causes an escape sequence to be emitted c



Cylinder 8, Side 0, Sector 2:

 0000   /4           TRS-80   77  26   256    4     6    1  /5         
 0040    ADAP0    77  26   128    1     0    1  /6           ADAP1    3



Cylinder 8, Side 0, Sector 3:

 0000  onsisting  'of a 0E (^N) followed by the value of the depressed 
 0040  key.  The ALT  'shift has no effect on the escape prefix, but ma



Cylinder 8, Side 0, Sector 4:

 0000  9  26   128    1     0    1  /7           OLD NEC  77  52   256 
 0040     2     6    1  4  'The format used with drive A (#4:) is chang



Cylinder 8, Side 0, Sector 5:

 0000  y influence the  'key value.  If the GRPH2 shift key is also dow
 0040  n, the GRPH1 prefix  '(1A) is emitted, followed by the GRPH2 pre



Cylinder 8, Side 0, Sector 6:

 0000  ed by hitting the  'desired function key with the SHIFT key down
 0040  .  The format  'used with drive B (#5:) is changed by hitting th



Cylinder 8, Side 0, Sector 7:

 0000  fix (0E) and the character  'value.     $5) When the CTRL and FN
 0040  C shifts are down at the same time, the  'keyboard operates loca



Cylinder 8, Side 0, Sector 8:

 0000  e desired  'function key with the SHIFT key up.  Assuming the fl
 0040  oppy  'status display is enabled, the new format will be display



Cylinder 8, Side 0, Sector 9:

 0000  lly (although the program can still send  'characters to to scre
 0040  en).  Under these circumstances, any key                        



Cylinder 8, Side 0, Sector 10:

 0000  ed   'at the top of the screen (see status display description a
 0040  bove).  'Special function keys to which no floppy format has bee



Cylinder 8, Side 0, Sector 11:

 0000   '(other than special function keys) will be echoed directly on 
 0040   'the terminal.  This mode is especially local for clearing the 



Cylinder 8, Side 0, Sector 12:

 0000  n assigned  'are ignored.  '  'In this mode, the PRINT key cause
 0040  s data to be transmitted to the  'printer.  If the SHIFT key is 



Cylinder 8, Side 0, Sector 13:

 0000   'screen (CTRL-FNC-SHIFT-CLEAR/HOME), homing the cursor  '(CTRL-
 0040  FNC-CLEAR/HOME), checking values of graphics characters  '(CTRL-



Cylinder 8, Side 0, Sector 14:

 0000  not down, the entire screen is  'transferred; otherwise, a form 
 0040  feed is transferred.  Transmission  'is made to the parallel pri



Cylinder 8, Side 0, Sector 15:

 0000  FNC-ALT-<key>), setting option values   '(CTRL-FNC-GRPH1-<option
 0040  >), and setting colors,  '(CTRL-FNC-GRPH2-<color>).  Note that c



Cylinder 8, Side 0, Sector 16:

 0000  nter if it is on line; otherwise,  'the serial printer is used. 
 0040   If neither printer is on line,                                 



Cylinder 8, Side 0, Sector 17:

 0000   in the  'opposite case (i.e. if the SHIFT key is not down, uppe
 0040  r case          characters are emitted, if the SHIFT key is down



Cylinder 8, Side 0, Sector 18:

 0000  ontrol character values  'not obtainable through the keypad on t
 0040  he right of the keyboard  'are not available in this mode.  '  '



Cylinder 8, Side 0, Sector 19:

 0000  , lower case  'characters are emitted).  It has no effect on non
 0040  -alpha keys.                                                    



Cylinder 8, Side 0, Sector 20:

 0000  In this mode, the floppy format processed by the floppy drivers 
 0040    'may be modified.  Numbered from left to right, the following 



Cylinder 8, Side 0, Sector 21:

 0000   $2) The ALT shift causes all keys to generate ASCII values with
 0040   the  'high order bit on.  Thus, all 256 ASCII values may be gen



Cylinder 8, Side 0, Sector 22:

 0000    'function keys invoke the following formats:  '  +Function Key
 0040      Format  Trk Sect Bytes Intlv Skew First  +============    ==



Cylinder 8, Side 0, Sector 23:

 0000  erated  'from the keyboard.  It has no effect on values returned
 0040   by the  'special function keys.  '  $3) The GRPH1 shift causes 



Cylinder 8, Side 0, Sector 24:

 0000  ====  === ==== ===== ===== ==== =====  /0           NEC      77 
 0040   30   512    1     0    1  /1           DEC      77  26   128   



Cylinder 8, Side 0, Sector 25:

 0000  an escape sequence to be emitted consisting  'of a 1A (^Z) follo
 0040  wed by the value of the depressed key.  The ALT  'shift has no e



Cylinder 8, Side 0, Sector 26:

 0000   2     6    1  /2           PDQ-3    77  26   256    1     0    
 0040  1  /3           TI       77  26   128    1     0    0           



Cylinder 9, Side 0, Sector 1:

 0000  g a given   floppy drive can be queried and changed from within 
 0040  a user program using   unitreads and unitwrites to user unit 255



Cylinder 9, Side 0, Sector 2:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 3:

 0000  .  Both intrinsics require a   record and a drive number as foll
 0040  ows:     0Unitread (255, Format_Record, Drive_Number);  0Unitwri



Cylinder 9, Side 0, Sector 4:

 0000      $CURSOR $EQUAL  $TAG    $LAST                               
 0040                                                                  



Cylinder 9, Side 0, Sector 5:

 0000  te (255, Format_Record, Drive_Number);  0   where Drive_Number i
 0040  s either 0 (for drive A or #4:) or 1 (for drive B   or #5:).  Th



Cylinder 9, Side 0, Sector 6:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 7:

 0000  e Format_Record is of the form:     )Format_Record = Record  ;Tr
 0040  acks_Disk   : Integer;  ;Sectors_Track : Integer;  ;Bytes_Sector



Cylinder 9, Side 0, Sector 8:

 0000                                                  r I   r         
 0040                                                                  



Cylinder 9, Side 0, Sector 9:

 0000    : Integer;  ;Interleave    : Integer;  ;First_Track   : Intege
 0040  r;  ;Skew          : Integer;  ;Name          : Packed Array [0.



Cylinder 9, Side 0, Sector 10:

 0000                      O   . s'$'                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 11:

 0000  .3] Of Char;  9End {of Format_Record};      !The Integer paramet
 0040  ers have the same interpretation as the parameters              



Cylinder 9, Side 0, Sector 12:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 13:

 0000   !described for the Disk_Change routine for the Adaptable System
 0040  .  The  !Name parameter contains three alphanumeric characters f



Cylinder 9, Side 0, Sector 14:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 15:

 0000  ollowed by a  !space.  This name is displayed in the floppy stat
 0040  us field of the system  !status line when a drive is accessable 



Cylinder 9, Side 0, Sector 16:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 17:

 0000  under the format.  !  !Unitread returns the format of the specif
 0040  ied drive.  Unitwrite configures  !the specified drive to access



Cylinder 9, Side 0, Sector 18:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 19:

 0000   floppies using the format.  !  !The Unitclear intrinsic resets 
 0040  all drives to their default format.  !  !                       



Cylinder 9, Side 0, Sector 20:

 0000   X18 Apr 83     8The NECBIOS 1.0 Release  8=====================
 0040  ==  8  $There have been several cleanups and bug fixes since the



Cylinder 9, Side 0, Sector 21:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 22:

 0000   0.4 BIOS  $release.  This is document describes the changes mad
 0040  e to the 0.4  $BIOS in order to produce the 1.0 BIOS release.  $



Cylinder 9, Side 0, Sector 23:

 0000   'the PRINT key performs no action.  '  'In this mode, the BREAK
 0040  /STOP character causes the system to   'reboot.  '  %  This mode



Cylinder 9, Side 0, Sector 24:

 0000                                                                  
 0040                                                                  



Cylinder 9, Side 0, Sector 25:

 0000   is also useful for seeing if the system is still   '"alive".  '
 0040    '   The disk format used by the floppy disk driver in accessin



Cylinder 9, Side 0, Sector 26:

 0000                                                                  
 0040                                                                  



Cylinder 10, Side 0, Sector 1:

 0000  nd out which keys are overridden by calling the NEC_Get_Map  'pr
 0040  ocedure.  The procedures are declared as follows:  '  3NEC_Map_P



Cylinder 10, Side 0, Sector 2:

 0000   :      SCREEN   ------  $  $5) The status line can no longer be
 0040   destroyed when characters are  'written off the end of a line. 



Cylinder 10, Side 0, Sector 3:

 0000    $   KEYBOARD   --------  $  $1) The keyboard rollover problem 
 0040  has been fixed.  The keyboard will  'no longer generate long str



Cylinder 10, Side 0, Sector 4:

 0000   = ^NEC_Map_Rec;  3NEC_Map_Rec = Packed Record  CKey_Value : Int
 0040  eger;  CUnshifted : Char;  CShifted   : Char;                   



Cylinder 10, Side 0, Sector 5:

 0000  ings of unwanted characters when two  'keys are depressed one im
 0040  mediately after the other.  '  $2) The unshifted ^ key has been 



Cylinder 10, Side 0, Sector 6:

 0000   AEnd {of NEC_Map_Rec};  "  3Procedure NEC_Get_Map (Var Key_Coun
 0040  t : Integer;  JVar Start_Rec : NEC_Map_P);  3Procedure NEC_Set_M



Cylinder 10, Side 0, Sector 7:

 0000  changed from ^ to control-C (<etx> for  'the system editor).  Th
 0040  is was done in order to facilitate editor  'usage when the ENTER



Cylinder 10, Side 0, Sector 8:

 0000  ap (Key_Count : Integer;  FVar Start_Rec : NEC_Map_Rec);  3  'Ke
 0040  ys are redefined by specifying a keyboard map that contains a  '



Cylinder 10, Side 0, Sector 9:

 0000   key is defined to return [RETURN].  The shifted   '^ key still 
 0040  returns ^.    '  $3) The keyboard is now locked during the sensi



Cylinder 10, Side 0, Sector 10:

 0000  list of keys and their new values.  The program specifies a key 
 0040   'by naming its scan code (Key_Value -- key scan codes are liste



Cylinder 10, Side 0, Sector 11:

 0000  tive stages of  'bootstrapping.  It is locked when bootstrapping
 0040   commences and  'unlocked midway through the execution of the sy



Cylinder 10, Side 0, Sector 12:

 0000  d   'in chapter 2 of the NEC APC System Reference Guide).  The p
 0040  rogram   'also specifies the two return values: the value to ret



Cylinder 10, Side 0, Sector 13:

 0000  stem INITIALIZE  'routine.  The keyboard lock status is shown on
 0040   the status line at                                             



Cylinder 10, Side 0, Sector 14:

 0000  urn if the   'SHIFT key and CAPS LOCK keys are both up (Unshifte
 0040  d), and the value  'to return if if either is down (Shifted).  T



Cylinder 10, Side 0, Sector 15:

 0000   'the top of the screen.  When KBD is displayed on a black backg
 0040  round,  'the keyboard is enabled.  When KBD is displayed on a gr



Cylinder 10, Side 0, Sector 16:

 0000  he NEC_Set_Map procedure   'is called with a key count and the f
 0040  irst record of an array of   'keyboard records containing keyboa



Cylinder 10, Side 0, Sector 17:

 0000  een background,  'the keyboard is disabled.  '  $4) The NEC.SETU
 0040  P program is no longer capable of setting KEYBOARD  'DISABLE mod



Cylinder 10, Side 0, Sector 18:

 0000  rd map entries.  The keyboard map   'must be allocated and valid
 0040   until either the keyboard map is changed   'or the program term



Cylinder 10, Side 0, Sector 19:

 0000  e.  This mode can still be set, however, using a  'keyboard sequ
 0040  ence, a programmed output sequence, or a call  'to the NEC.CONFI



Cylinder 10, Side 0, Sector 20:

 0000  inates.  Note that by specifying a key count of   'zero, key map
 0040  ping is canceled.  An example of NEC_Set_Map is:  '             



Cylinder 10, Side 0, Sector 21:

 0000  G unit.  Note that the NEC.CONFIG unit may also be   'used to se
 0040  t the KEYBOARD DISABLE mode permenantly (i.e. so that the       



Cylinder 10, Side 0, Sector 22:

 0000   8Program Test_Key;  8Type Map = Array [0..2] Of NEC_Map_Rec;  8
 0040  Var  M : ^Map;  8Begin                             New (M);  :M^



Cylinder 10, Side 0, Sector 23:

 0000     system boots with the keyboard disabled).     $5) User progra
 0040  ms may now override the definition of any key on the  'keyboard.



Cylinder 10, Side 0, Sector 24:

 0000  [0].Key_Value := 89;        {Break/Stop key}  :M^[0].Unshifted :
 0040  = Chr (1);   {^A}  :M^[0].Shifted := Chr (2);     {^B}          



Cylinder 10, Side 0, Sector 25:

 0000    This is done by calling the NEC_Set_Map procedure in  'the NEC
 0040  _Hardware unit.  User programs may also query the system  'to fi



Cylinder 10, Side 0, Sector 26:

 0000                           ...  :NEC_Set_Map (3, M^[0]);  :{Key is
 0040   now redefined}  8End.  :{Key goes back to original definition} 



Cylinder 11, Side 0, Sector 1:

 0000   received.  If an X-off has   'been received, the remote driver 
 0040  hangs until an X-on is received.  'X-on and X-off characters rec



Cylinder 11, Side 0, Sector 2:

 0000  .  'The write will complete when either the printer cable is   '
 0040  disconnected or the printer power is turned on.  '  '   DISKS   



Cylinder 11, Side 0, Sector 3:

 0000  eived out of sequence are ignored.  'Data characters (non-X-on/X
 0040  -off characters) read from the remote   'input channel in the pr



Cylinder 11, Side 0, Sector 4:

 0000  -----  #  #13) The BIOS now allows access to extra memory throug
 0040  h I/O unit 9.  Unit  '9 (called the RAM disk) is accessed as if 



Cylinder 11, Side 0, Sector 5:

 0000  ocess of scanning for X-on/X-off characters  'are queued in a on
 0040  e character queue until the p-System requests                   



Cylinder 11, Side 0, Sector 6:

 0000  it were a floppy disk   'containing a number of 512 byte blocks.
 0040    The size of the RAM disk is   'determined by the BIOS at boot 



Cylinder 11, Side 0, Sector 7:

 0000   'them.  Note that if the p-System does not request a queued cha
 0040  racter   'before another character is read, the newer character 



Cylinder 11, Side 0, Sector 8:

 0000  time.  Any memory found to exist  'between 20000 hex and 98000 h
 0040  ex is allocated to the RAM disk.  Memory  'in this range need no



Cylinder 11, Side 0, Sector 9:

 0000   This problem occurred intermittently  'in BIOS releases 0.0 thr
 0040  ough 0.4 and resulted in either the   'destruction of the status



Cylinder 11, Side 0, Sector 10:

 0000  is queued and   'the older character is lost.  This overrun beha
 0040  vior is consistent   'with the overrun behavior of raw mode.  ' 



Cylinder 11, Side 0, Sector 11:

 0000   line or the apparent loss of screen output.  '  $6) The system 
 0040  date will no longer fail to display if the system is  'booted ex



Cylinder 11, Side 0, Sector 12:

 0000   #11) The PRINTER: and REMOTE: devices will always be online.  U
 0040  nitclear  'for these devices ALWAYS returns an IO_Result of 0.  



Cylinder 11, Side 0, Sector 13:

 0000  actly on the hour.     $7) The underscore cursor is now two line
 0040  s thick instead of one.     $8) In the floppy status field of th



Cylinder 11, Side 0, Sector 14:

 0000  The IO_Result  'function, when used in conjunction with other I/
 0040  O intrinsics,  'returns the true state of readyness.    #  #12) 



Cylinder 11, Side 0, Sector 15:

 0000  e system status line, "SGL" is now   'used instead of "DEC" to i
 0040  ndicate a single sided, single density   'floppy.  '            



Cylinder 11, Side 0, Sector 16:

 0000  The remote driver now requires the jumpers on the I/O controller
 0040     'board to be configured for asynchronous mode instead of for 



Cylinder 11, Side 0, Sector 17:

 0000   $9) The cursor attributes and the alternate font may now be set
 0040   so that  'the system recognizes the user-definable attribute va



Cylinder 11, Side 0, Sector 18:

 0000  business  'machine mode.  Jumper TM4 should be 2, jumper TM2 sho
 0040  uld be 1, and  'jumper TM1 should be 3.  Note that this configur



Cylinder 11, Side 0, Sector 19:

 0000  lues at boot time.  $  $   PRINTER and REMOTE PORTS   ----------
 0040  --------------     #10) The remote driver is now capable of X-on



Cylinder 11, Side 0, Sector 20:

 0000  ation is the same  'configuration required by the CP/M and MS-DO
 0040  S systems.  #  #12) The parallel printer driver now requires a c



Cylinder 11, Side 0, Sector 21:

 0000  /X-off protocol.  This  'protocol can be selected through the NE
 0040  C.SETUP utility or more  'directly through the NEC.CONFIG unit. 



Cylinder 11, Side 0, Sector 22:

 0000  able matching the  'specification in the NEC System Reference Gu
 0040  ide.  In BIOS                                                   



Cylinder 11, Side 0, Sector 23:

 0000   The system default is  'to pass X-on and X-off through to the u
 0040  ser program as data   '(so-called raw mode).  When X-on/X-off pr



Cylinder 11, Side 0, Sector 24:

 0000   'releases 0.1 through 0.4, an extra pin was necessary in order 
 0040   'for the driver to register the printer as online.  As a result



Cylinder 11, Side 0, Sector 25:

 0000  otocol is enabled, the   'remote driver reads the remote input c
 0040  hannel in order to determine  'whether an X-on or X-off has been



Cylinder 11, Side 0, Sector 26:

 0000    'of this change, the printer driver will hang when a write is 
 0040   'attempted to a printer that is connected, but is not turned on



Cylinder 12, Side 0, Sector 1:

 0000  s another 256 blocks of RAM disk memory.  'User and system files
 0040   may then be transferred to the RAM disk using  'the Filer T(ran



Cylinder 12, Side 0, Sector 2:

 0000  t depend   'on exclusive usage of the processor during non-I/O p
 0040  eriods.  The          NEC.SETUP utility and the NEC.CONFIG unit 



Cylinder 12, Side 0, Sector 3:

 0000  sfer command.  '  'Note that the CP/M and MS-DOS systems size me
 0040  mory in a manner  'that overwrites the contents of memory.  Alth



Cylinder 12, Side 0, Sector 4:

 0000  may be used to configure  'the hard disk driver to immediately p
 0040  erform any write request   'instead of buffering it.  This mode 



Cylinder 12, Side 0, Sector 5:

 0000  ough rebooting the  'p-System does not destroy the contents of t
 0040  he RAM disk, the RAM  'disk should be considered destroyed whene



Cylinder 12, Side 0, Sector 6:

 0000  reduces the speed of disk   'writes by an order of magnitude.  '
 0040    'The NEC hard disk controller performs automatic ECC error cor



Cylinder 12, Side 0, Sector 7:

 0000  ver a CP/M or MS-DOS  'system is booted (even if the RAM disk ap
 0040  pears valid).  #                                                



Cylinder 12, Side 0, Sector 8:

 0000  rection  'on errors of up to 11 bits in length.  Since actual er
 0040  ror correction  'is not gauranteed in errors longer than 11 bits



Cylinder 12, Side 0, Sector 9:

 0000   #14) The BIOS now allows access to a single NEC hard disk.  Usi
 0040  ng the  'HARD.CON utility, the hard disk may be split into 9 par



Cylinder 12, Side 0, Sector 10:

 0000  , the hard disk   'driver returns an error status (I/O error 1) 
 0040  on any read that   'involves ECC error correction.  There is a r



Cylinder 12, Side 0, Sector 11:

 0000  titions.    'Each partition may be tagged by the user with a 19 
 0040  character name.    'Partitions are designated for use either by 



Cylinder 12, Side 0, Sector 12:

 0000  easonable probability   'that data read under these conditions i
 0040  s in fact correct, but in   'order to gaurantee safety, it is re



Cylinder 12, Side 0, Sector 13:

 0000  the p-System or MS-DOS.    'Each partition may be either mounted
 0040   or dismounted.  The p-System   'can access a maximum of 3 mount



Cylinder 12, Side 0, Sector 14:

 0000  commended that an alternate  'track be assigned (using the HARD.
 0040  CON utility) for the one on which                               



Cylinder 12, Side 0, Sector 15:

 0000  t be contiguous, but must occur in 128K byte  'packets.    '  'N
 0040  ote that the RAM disk will notwork correctly when more than one 



Cylinder 12, Side 0, Sector 16:

 0000  ed p-System volumes as I/O units 10   'through 12.  Partitions a
 0040  re allocated in 13 block increments to a   'maximum of 32760 blo



Cylinder 12, Side 0, Sector 17:

 0000    'memory board occupies the same address.  This may be the case
 0040   when                                                           



Cylinder 12, Side 0, Sector 18:

 0000  cks.  '  'Hard disk reads and writes are normally buffered.  Whe
 0040  never a block  'is read, the entire track containing the block i



Cylinder 12, Side 0, Sector 19:

 0000   'a graphics board is installed along with an auxilary memory bo
 0040  ard.    'The graphics board may be jumpered to avoid this proble



Cylinder 12, Side 0, Sector 20:

 0000  s read into memory.  'Subsequent read requests for blocks on the
 0040   same track are treated  'as memory to memory transfers.  Likewi



Cylinder 12, Side 0, Sector 21:

 0000  m by  'setting SW1 on the graphics board so that switch 1 is OFF
 0040   and   'switch 2 is ON.  '  'Note that since the RAM disk is vol



Cylinder 12, Side 0, Sector 22:

 0000  se, write requests for blocks  'in the current track buffer are 
 0040  handled as memory to memory   'transfers.  The track buffer is a



Cylinder 12, Side 0, Sector 23:

 0000  atile memory, its contents are  'destroyed when the APC power is
 0040   turned off.  A RAM disk may be  'configured for p-System usage 



Cylinder 12, Side 0, Sector 24:

 0000  ctually written to disk when I/O  'to a different track is reque
 0040  sted or after a maximum of 1 second                             



Cylinder 12, Side 0, Sector 25:

 0000  by entering the system Filer and  'Z(eroing unit 9.  An auxilary
 0040   memory board provides 256 blocks and  'a graphics board provide



Cylinder 12, Side 0, Sector 26:

 0000   'has elapsed since the last access to the track buffer.  Note t
 0040  hat  'this timeout feature may cause the failure of programs tha



Cylinder 13, Side 0, Sector 1:

 0000  k number> DIV 13 + <volume's starting track>  .  'The <volume's 
 0040  starting track> may be determined by looking at the  'volumes di



Cylinder 13, Side 0, Sector 2:

 0000   'terminates when Bad_Track is 0 (note that all manufacturers  '
 0040  gaurantee that track 0 is reliable, thus a bad track 0 cannot, a



Cylinder 13, Side 0, Sector 3:

 0000  splay of the HARD.CON utility under the START column for  'the v
 0040  olume containing the bad block.  A bad track is specified   'usi



Cylinder 13, Side 0, Sector 4:

 0000  nd  'need not, be replaced).  9  'The structure of the volumes t
 0040  able is as follows (in UCSD Pascal):  %  ,Config_Record = Record



Cylinder 13, Side 0, Sector 5:

 0000  ng the B(ad command in the HARD.CON utility.  The HARD.CON   'ut
 0040  ility automatically choses an alternate track and copies all  'd



Cylinder 13, Side 0, Sector 6:

 0000    >Con_Entries : Integer;    {number of volumes}  >Con_Blk_Trk :
 0040   Integer;    {blocks per track}  >Con_Trk_Drv : Integer;    {tra



Cylinder 13, Side 0, Sector 7:

 0000  ata from the bad track to the alternate track.  The hard disk  '
 0040  driver access the alternate track instead of the bad track from 



Cylinder 13, Side 0, Sector 8:

 0000  cks per drive}  >Con_Start   : Integer;    {first data track}  >
 0040  Con_Valid   : Integer;    {must be BFFB hex}  >Con_Other   : Int



Cylinder 13, Side 0, Sector 9:

 0000   'then on.  The user may then attempt to recover the data in the
 0040    'bad block to whatever extent possible.  '                    



Cylinder 13, Side 0, Sector 10:

 0000  eger;    {must be 4004 hex}  >Con_Disks   : Array [0..8] Of  NPa
 0040  cked Record  PStart_Track : Integer;  PEnd_Track   : Integer;  P



Cylinder 13, Side 0, Sector 11:

 0000   'There are two tables on a hard disk drive that relate to the h
 0040  ard  'disk driver: the volumes table and the bad track table, ea



Cylinder 13, Side 0, Sector 12:

 0000  Is_Mounted  : Boolean;  PFiller_0    : 0..127;  PSystem      : (
 0040  P_System,   _MS_DOS);  PFiller_1    : 0..127;  PName        : St



Cylinder 13, Side 0, Sector 13:

 0000  ch existing  'in duplicate.  The bad blocks table is stored on c
 0040  ylinder 0, head 2,   'sectors 2 and 14.  The volumes table is st



Cylinder 13, Side 0, Sector 14:

 0000  ring[19];  NEnd {of Con_Disks};  >Con_Filler  : Array [0..4] Of 
 0040  Integer;  <End {of Config_Record};  '  'The Con_Entries field sp



Cylinder 13, Side 0, Sector 15:

 0000  ored on cylinder 0, head 2,  'sectors 3 and 15.  Note that these
 0040   tables are placed so as not to  'conflict with the CP/M tables.



Cylinder 13, Side 0, Sector 16:

 0000  ecifies the number of valid entries in          the Con_Disks ar
 0040  ray.  There is one entry in the Con_Disks array                 



Cylinder 13, Side 0, Sector 17:

 0000     '  'The structure of the bad blocks table is as follows (in U
 0040  CSD Pascal):  '  ,Rel_Record = Record  ;Rel_Valid  : Integer;   



Cylinder 13, Side 0, Sector 18:

 0000   'for each volume configured on the hard disk.  A volume entry  
 0040  'contains the number of the track on which the volume starts  '(



Cylinder 13, Side 0, Sector 19:

 0000       {must be BFFB hex}  ;Rel_Other  : Integer;        {must be 
 0040  4004 hex}  ;Rel_Next   : Integer;        {next alternate track} 



Cylinder 13, Side 0, Sector 20:

 0000  Start_Track), the number of the last track on the volume  '(End_
 0040  Track), a boolean indicating whether the volume is mounted  'or 



Cylinder 13, Side 0, Sector 21:

 0000   'the error occurs.  Bad tracks are normally detected as part of
 0040   the  'hard disk formatting process (also a function of the HARD



Cylinder 13, Side 0, Sector 22:

 0000   ;Rel_Total  : Integer;        {total tracks on disk}  ;Rel_Trac
 0040  ks : Array [0..61] Of   JRecord  LBad_Track : Integer;  LNew_Tra



Cylinder 13, Side 0, Sector 23:

 0000  .CON utility),   'but additional bad tracks may occur from time 
 0040  to time; they may be  'found using the B(ad blocks command in th



Cylinder 13, Side 0, Sector 24:

 0000  ck : Integer;  JEnd {of Rel_Tracks};  9End {of Rel_Record};  9  
 0040  'The Rel_Tracks array contains the list of bad tracks and altern



Cylinder 13, Side 0, Sector 25:

 0000  e filer.  When a bad block   'is found, the bad track number is 
 0040  calculated according to the   'following formula:  '  .<bad bloc



Cylinder 13, Side 0, Sector 26:

 0000  ates.  'The list is in descending order of bad track numbers.  T
 0040  he list                                                         



Cylinder 14, Side 0, Sector 1:

 0000  dismounted (Is_Mounted), a scalar indicating the type of system 
 0040   'that can access the volume (System), and a descriptive name (N



Cylinder 14, Side 0, Sector 2:

 0000   '  0Unitread (10, Buffer, 0, 10, 2);    3would read 512 bytes f
 0040  rom track 1, block 2  0  0Unitread (10, Buffer, 512, 10);       



Cylinder 14, Side 0, Sector 3:

 0000  ame).  'The Filler_0 and Filler_1 fields should contain 0.  The 
 0040  Con_Blk_Trk  'field specifies the number of 512 byte blocks on a



Cylinder 14, Side 0, Sector 4:

 0000   3would read 512 bytes from track 1, block 2 relative  '        
 0040      to the start of #10:  '  'Note that the p-System normally ac



Cylinder 14, Side 0, Sector 5:

 0000   track and is  'always 13.  The Con_Trk_Drv field indicates the 
 0040  total number of  'tracks on the drive, including bootstrap track



Cylinder 14, Side 0, Sector 6:

 0000  cesses volumes starting at track  '8.  Accesses to tracks 0 thro
 0040  ugh 7 may only be made under program  'control using the absolut



Cylinder 14, Side 0, Sector 7:

 0000  s, data tracks, and  'alternates.  It should contain the same va
 0040  lue as the Rel_Total field  'in the bad tracks table (1440).  Th



Cylinder 14, Side 0, Sector 8:

 0000  e sector mode of the Unit I/O intrinsics.     #15) All disk unit
 0040  s now report an IO_Result of 17 when a seek is attempted  'beyon



Cylinder 14, Side 0, Sector 9:

 0000  e Con_Start field contains the  'number of the first data track.
 0040    All tracks from 0 to Con_Start - 1  'are reserved for bootstra



Cylinder 14, Side 0, Sector 10:

 0000  d the end of the disk.  This is provided at the expense of   're
 0040  turning an incorrect number (32767) of tracks in the Unitstatus 



Cylinder 14, Side 0, Sector 11:

 0000  p information.  '  'Tracks are numbered starting at 0 and procee
 0040  ding through                                                    



Cylinder 14, Side 0, Sector 12:

 0000   'record (in order to circumvent a p-System bug).  '  #16) The b
 0040  ootstrap message now includes a copyright message, version  'num



Cylinder 14, Side 0, Sector 13:

 0000   'Con_Trk_Drv - 1.  There are 8 heads per physical cylinder; eac
 0040  h  'head accesses a track.  Thus, cylinder 0 contains tracks 0 t



Cylinder 14, Side 0, Sector 14:

 0000  ber, and a list of available boot devices.  If there is only  'o
 0040  ne storage device available (i.e. the floppy), bootstrapping  'c



Cylinder 14, Side 0, Sector 15:

 0000  hrough 7,  'and cylinder 1 contains tracks 8 through 15.  Under 
 0040  the p-System,  'accesses to tracks 0 through 7 of any volume are



Cylinder 14, Side 0, Sector 16:

 0000  ommences automatically.  If there are more (whether or not  'the
 0040  y contain a bootable p-System), they are listed and the   'user 



Cylinder 14, Side 0, Sector 17:

 0000   mapped to physical  'tracks 0 through 7.  Accesses to tracks gr
 0040  eater than 7 on a volume   'are mapped relative to the volume's 



Cylinder 14, Side 0, Sector 18:

 0000  may select the boot device.  Note that the floppy in drive A    
 0040                                                                  



Cylinder 14, Side 0, Sector 19:

 0000  start track.  For example, assume   'there are two p-System volu
 0040  mes configured on a hard disk: one starting   'at track 55 and t



Cylinder 14, Side 0, Sector 20:

 0000   'must contain the bootstrap, a p-System directory and a SYSTEM.
 0040  INTERP.    'Neither the hard disk nor the RAM disk need contain 



Cylinder 14, Side 0, Sector 21:

 0000  he other starting at track 100.  Accesses to track 0   'on eithe
 0040  r volume would result in an access to track 0 on the hard disk  



Cylinder 14, Side 0, Sector 22:

 0000  either a bootstrap  'or an interpreter.  Any bootable volumes mu
 0040  st, however, contain   'SYSTEM.MISCINFO and SYSTEM.PASCAL.  Note



Cylinder 14, Side 0, Sector 23:

 0000   'drive.  Accesses to track 8 on the first volume would result i
 0040  n an   'access to track 55 on the hard disk drive.  Accesses to 



Cylinder 14, Side 0, Sector 24:

 0000  , also, that keys struck  'between issuing a reboot keyboard seq
 0040  uence and the display  'of the bootstrap message are ignored.   



Cylinder 14, Side 0, Sector 25:

 0000  track 8 on the   'second volume would result in accesses to trac
 0040  k 100 on the hard disk   'drive.  Using the Unitread intrinsic: 



Cylinder 14, Side 0, Sector 26:

 0000   '  'The user may configure the system to automatically boot fro
 0040  m either  'the floppy or the hard disk by using the NEC.SETUP ut



Cylinder 15, Side 0, Sector 1:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 2:

 0000  ace] now   +generate a rubout character (7F hex) instead of a  +
 0040  backspace character (08 hex).  This was done for   +compatibilit



Cylinder 15, Side 0, Sector 3:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 4:

 0000  y with the IBM PC keyboard.  +  (3) The stackspace-relative addr
 0040  ess of the BIOS jump table  +is now accessable to user routines.



Cylinder 15, Side 0, Sector 5:

 0000      $CURSOR $EQUAL  1       2                                   
 0040                                                                  



Cylinder 15, Side 0, Sector 6:

 0000    It is obtained by  +following the interrupt vector of an undef
 0040  ined interrupt  +then subtracting 2 and loading indirect through



Cylinder 15, Side 0, Sector 7:

 0000  ility.  If  'such a selection is made, only the bootstrap messag
 0040  e, the copyright  'message, and the name of the bootstrap device



Cylinder 15, Side 0, Sector 8:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 9:

 0000   will be displayed  'when booting the system.  No questions will
 0040   be asked.  Automatic  'bootstrapping may be inhibited from the 



Cylinder 15, Side 0, Sector 10:

 0000                                                  J ! o Q         
 0040                                                                  



Cylinder 15, Side 0, Sector 11:

 0000  keyboard by holding down  'the SHIFT key while the bootstrap pro
 0040  cess is commencing.  '  #17) The SYSTEM.MISCINFO for this versio



Cylinder 15, Side 0, Sector 12:

 0000                      O   . *&*&                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 13:

 0000  n is differs from that for  'previous versions.  1024 bytes of t
 0040  he code pool has been appropriated                              



Cylinder 15, Side 0, Sector 14:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 15:

 0000   'for the use of the SBIOS.  Use of old SYSTEM.MISCINFO files le
 0040  ads  'to almost immediate system crashes.  '  #18) The NEC.SETUP



Cylinder 15, Side 0, Sector 16:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 17:

 0000   program may now be terminated by typing 'Q' for quit  'at the e
 0040  xit prompt.  In addition, the prompts throughout the  'program h



Cylinder 15, Side 0, Sector 18:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 19:

 0000  ave been conventionalized with respect to meaning and  'format. 
 0040   '  P  $  PBon apetite and  PBON JOUR,  P  PBarry  '            



Cylinder 15, Side 0, Sector 20:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 21:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 22:

 0000         (Version 1.1 of the NEC SBIOS contains three new features
 0040  :  (  (1) Each interrupt of the 60 Hz system clock generates an 



Cylinder 15, Side 0, Sector 23:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 24:

 0000    +interrupt through p-vector 20.  This costs approximately  +.6
 0040  9% of the processor time if no semaphore is attached  +to the in



Cylinder 15, Side 0, Sector 25:

 0000                                                                  
 0040                                                                  



Cylinder 15, Side 0, Sector 26:

 0000  terrupt and .82% of the processor time if  +there is a semaphore
 0040   attached.  +  ' 2) Either [Shift]-[Backspace] or [Ctrl]-[Backsp



Cylinder 16, Side 0, Sector 1:

 0000  rap  (can be coerced by hitting any key before inserting the boo
 0040  tstrap  (disk.  (  (  (  (Instructions for generating a new SBIO



Cylinder 16, Side 0, Sector 2:

 0000  contains 'CP/M-86 '.  (       -0       2       Primary bootstrap
 0040    (       -0       3  -  through       Secondary bootstrap  -0  



Cylinder 16, Side 0, Sector 3:

 0000  S:  (  (1) Assemble the SBIOS source file BIOS.TEXT into the cod
 0040  e file  +BIOS.CODE.  +  (2) Redirect system input to the file L 



Cylinder 16, Side 0, Sector 4:

 0000       14  -  -0       15  /through       SBIOS  , 1       26     
 0040                                                                  



Cylinder 16, Side 0, Sector 5:

 0000  (i.e. I=L).  This  +links the SBIOS, compresses it relative to l
 0040  ocation 0 then                                                  



Cylinder 16, Side 0, Sector 6:

 0000                                                                  
 0040                                                                  



Cylinder 16, Side 0, Sector 7:

 0000   +writes the new bootstrap onto the floppy in drive A.  +  (  ( 
 0040   (Instructions for generating a new primary bootstrap:  (  (1) A



Cylinder 16, Side 0, Sector 8:

 0000                                                                  
 0040                                                                  



Cylinder 16, Side 0, Sector 9:

 0000  ssemble the primary source file PRIMARY.TEXT into the   +code fi
 0040  le PRIMARY.CODE.  +  (2) Link the codefile PRIMARY.CODE (with no



Cylinder 16, Side 0, Sector 10:

 0000                                                                  
 0040                                                                  



Cylinder 16, Side 0, Sector 11:

 0000   libraries) into  +the file PRIMARY.  +  (3) X(ecute the COMPRES
 0040  S utility to compress the PRIMARY file  +into a non-relocatable 



Cylinder 16, Side 0, Sector 12:

 0000                                                                  
 0040                                                                  



Cylinder 16, Side 0, Sector 13:

 0000   the   +resulting address.  The following code should produce  +
 0040  the address of the BIOS jump table in BX:  +  8Xor     AX,AX    



Cylinder 16, Side 0, Sector 14:

 0000  version at location 0.  (  (4) Write a new bootstrap by X(ecutin
 0040  g the BOOTMAKER utility.  +Specify the PRIMARY file as the prima



Cylinder 16, Side 0, Sector 15:

 0000         ; Load address in 0,2  8Mov     ES,AX  8Mov     AX,ES:(BX
 0040  +2)    ; Get segment address                                    



Cylinder 16, Side 0, Sector 16:

 0000  ry bootstrap,  +the SECBOOT file as the secondary bootstrap and 
 0040   +the SBIOS file as the SBIOS.  The secondary bootstrap is  +a T



Cylinder 16, Side 0, Sector 17:

 0000   8Mov     BX,ES:(BX)      ; Get relative address+2  8Mov     ES,
 0040  AX  8Mov     BX,ES:(BX-2)    ; Get actual address  P; Pollunits 



Cylinder 16, Side 0, Sector 18:

 0000  (rack 0 image.  Finally, specify the number of the drive  +to wh
 0040  ich the new bootstrap should be written (either 4 or 5).  +  +  



Cylinder 16, Side 0, Sector 19:

 0000  : CALL SS:(BX)  P; Diskchange : CALL SS:(BX+2)  P; Event      : 
 0040  CALL SS:(BX+4)  P  (It was observed that the automatic bootstrap



Cylinder 16, Side 0, Sector 20:

 0000  "  (Format of track 0:  (  (The disk header, primary bootstrap, 
 0040  secondary bootstrap and  (SBIOS are recorded on sides 0 and 1 of



Cylinder 16, Side 0, Sector 21:

 0000   feature does not   (work properly after a power up.  Subsequent
 0040   bootstraps boot  (from the designated bootstrap device as they 



Cylinder 16, Side 0, Sector 21:

 0000   feature does not   (work properly after a power up.  Subsequent
 0040   bootstraps boot  (from the designated bootstrap device as they 



Cylinder 16, Side 0, Sector 22:

 0000   track 0.  Side 0 contains  (26 sectors of 128 bytes.  Side 1 co
 0040  ntains 26 sectors of 256                                        



Cylinder 16, Side 0, Sector 23:

 0000  should.  This  (problem is due to a bug in the keyboard where th
 0040  e shift key  (status register is initialized incorrectly.  The b



Cylinder 16, Side 0, Sector 24:

 0000   (bytes.  All sectors are numbered 1-based.  Track 0 is laid out
 0040     (as follows:  (  (    Side   Sector    Contents  ,----   ----



Cylinder 16, Side 0, Sector 25:

 0000  ootstrap is  (fooled into thinking that the [SHIFT] key is down,
 0040   thus  (cancelling the automatic bootstrap.  An automatic bootst



Cylinder 16, Side 0, Sector 26:

 0000  --    --------  ,   -0       1       Disk header -- all zeros ex
 0040  cept for byte 3  ?which contains 40 hex and bytes 10-17  ?which 



Cylinder 17, Side 0, Sector 1:

 0000                                                                  
 0040                                                                  



Cylinder 17, Side 0, Sector 2:

 0000   8  8   This document describes modifications to the TICOM APC S
 0040  BIOS which allow   access to auxilary floppy drives and provide 



Cylinder 17, Side 0, Sector 3:

 0000                                                                  
 0040                                                                  



Cylinder 17, Side 0, Sector 4:

 0000  a more powerful means for   the configuration of these drives.  
 0040  These modifications include changes   to the floppy status line 



Cylinder 17, Side 0, Sector 5:

 0000                                                                  
 0040                                                                  



Cylinder 17, Side 0, Sector 6:

 0000  display, changes to the standard keyboard,   changes to the prog
 0040  ramming interface to the SBIOS, and changes to   standard utilit



Cylinder 17, Side 0, Sector 7:

 0000                                                                  
 0040                                                                  



Cylinder 17, Side 0, Sector 8:

 0000  ies. The changes in each of these areas are described   in separ
 0040  ate sections below.      Note that auxilary floppy drives were n



Cylinder 17, Side 0, Sector 9:

 0000                                                                  
 0040        J. Dennis Green                                           



Cylinder 17, Side 0, Sector 10:

 0000  ot available to SCI during the   development of these modificati
 0040  ons.  While we have every expectation   that our modifications a



Cylinder 17, Side 0, Sector 11:

 0000        May 31, 1985   UOP Process Division   20 UOP Plaza   Des P
 0040  lains, Ill  60016  a   Dear Dennis,      Enclosed is the softwar



Cylinder 17, Side 0, Sector 12:

 0000  re correct, since we have not tested them, we   can't make any g
 0040  uarantee of their reliability.  If any problems arise   which re



Cylinder 17, Side 0, Sector 13:

 0000  e and the documentation for the work you   authorized in your le
 0040  tter of May 9.  We have implemented everything you   requested e



Cylinder 17, Side 0, Sector 14:

 0000  late to the access of these drives, SCI will require access to a
 0040     set of these drives in order to provide support.             



Cylinder 17, Side 0, Sector 15:

 0000  xcept for the support for the 5 1/4" disk drives, which, as   we
 0040   discussed with you on the phone, is not possible.  Also enclose



Cylinder 17, Side 0, Sector 16:

 0000    1.0  Auxilary Drives   --------------------      Auxilary flop
 0040  py drives (drives configured as C and D) are accessible as   Pas



Cylinder 17, Side 0, Sector 17:

 0000  d is   documentation describing the nature and capabilities of t
 0040  he   modifications we have made.        As previously agreed, we



Cylinder 17, Side 0, Sector 18:

 0000  cal volumes #9: and #10: (units 9 and 10).  In the standard APC 
 0040    SBIOS, the RAM disk and the volume in the first mounted hard d



Cylinder 17, Side 0, Sector 19:

 0000      $CURSOR $EQUAL  $TAG    $LAST                               
 0040                                                                  



Cylinder 17, Side 0, Sector 20:

 0000   shall support this work for a period of one   year. This suppor
 0040  t includes fixes to programming errors and answers to   question



Cylinder 17, Side 0, Sector 21:

 0000                                                                  
 0040                                                                  



Cylinder 17, Side 0, Sector 22:

 0000  s. We hope and expect that our work is of sufficiently high   qu
 0040  ality that very few (if any) programming errors will be discover



Cylinder 17, Side 0, Sector 23:

 0000                                                  K K / K         
 0040                                                                  



Cylinder 17, Side 0, Sector 24:

 0000  ed.   If you have any questions regarding this software (or on a
 0040  ny other   matter), please give us a call.         Sincerely,   



Cylinder 17, Side 0, Sector 25:

 0000                      G   . E+6*                                  
 0040                                                                  



Cylinder 17, Side 0, Sector 26:

 0000             Barry Demchak               //  aMay 31, 1985  aVersi
 0040  on 0.0  (  8UOP Custom Floppy Driver  8======================== 



Cylinder 18, Side 0, Sector 1:

 0000  expect this shift to   cause any problems in existing system sof
 0040  tware, as no software directly   accesses a RAM disk as #9: or a



Cylinder 18, Side 0, Sector 2:

 0000    A floppy format set exists as a set of "default drive formats"
 0040   and   "function key formats".  A default drive format is the fl



Cylinder 18, Side 0, Sector 3:

 0000   hard disk as #10:.     //   Additionally, the standard System.M
 0040  iscinfo defines the first subsidiary   volume as 13.  Under the 



Cylinder 18, Side 0, Sector 4:

 0000  oppy format   assigned to a given drive when the system boots. T
 0040  here is a separate   drive format for each floppy drive.  A func



Cylinder 18, Side 0, Sector 5:

 0000  standard APC SBIOS, this allows for access to   volumes containe
 0040  d in hard disk partitions on #10:, #11:, and #12:. (Note   that 



Cylinder 18, Side 0, Sector 6:

 0000  tion key format is a floppy   format which may be assigned to a 
 0040  drive by hitting a function key (see   section 1.3 below).      



Cylinder 18, Side 0, Sector 7:

 0000  the partitions accessible in this manner are those defined and  
 0040   mounted using the NEC.Hard utility.  These volumes are subsets 



Cylinder 18, Side 0, Sector 8:

 0000  A floppy format contains the following information:   //  (1)  T
 0040  racks on the disk     (2)  Sectors per track     (3)  Bytes per 



Cylinder 18, Side 0, Sector 9:

 0000  of the   physical hard drive 0 attached to the APC.)  Under the 
 0040  new SBIOS, access                                               



Cylinder 18, Side 0, Sector 10:

 0000  sector     (4)  Sector interleaving on the track     (5)  Intert
 0040  rack skew     (6)  First valid data track     (7)  Recording for



Cylinder 18, Side 0, Sector 11:

 0000    to volumes in hard disk partitions is allowed only on #12:.  I
 0040  f this is   a problem, the number of accessible hard disk partit



Cylinder 18, Side 0, Sector 12:

 0000  mat (FM or MFM)     (8)  Sides (Single or Double)     (9)  Flopp
 0040  y format name  (   Items 1 through 6 are documented in the p-Sys



Cylinder 18, Side 0, Sector 13:

 0000  ions may be adjusted   by using the system Setup utility to chan
 0040  ge the "first subsidiary   volume" number to 15 instead of 13.  



Cylinder 18, Side 0, Sector 14:

 0000  tem Installation Guide and   will not be discussed here.  The Re
 0040  cording format is a boolean which is   True for double density (



Cylinder 18, Side 0, Sector 15:

 0000  In this case, volumes contained   within hard disk partitions wo
 0040  uld be accessible as #12:, #13:, and #14:.   Subsidiary volumes 



Cylinder 18, Side 0, Sector 16:

 0000  MFM) and False for single density (FM).  The   Sides is a boolea
 0040  n which is True for double sided and False for single           



Cylinder 18, Side 0, Sector 17:

 0000  would be accessible as #15: on.         1.1  Drive Configuration
 0040     ------------------------      The format of a floppy disk acc



Cylinder 18, Side 0, Sector 18:

 0000    sided.  The Floppy format name consists of three ASCII charact
 0040  ers which   uniquely identify the format.      Note that because



Cylinder 18, Side 0, Sector 19:

 0000  essible in a given drive may be altered   either under program c
 0040  ontrol or from the keyboard.  The set of all   floppy formats un



Cylinder 18, Side 0, Sector 20:

 0000   of a bug in the p-System I/O system, the number of Tracks   per
 0040   disk is always set to 32767.           1.2  Floppy Status Line 



Cylinder 18, Side 0, Sector 21:

 0000  der which a floppy may be accessed is called the   "floppy forma
 0040  t set".  A default floppy format set is provided when the   syst



Cylinder 18, Side 0, Sector 22:

 0000    -----------------------      When the system boots, each flopp
 0040  y drive is automatically assigned a floppy   format.  The floppy



Cylinder 18, Side 0, Sector 23:

 0000  em boots. The user may assign a particular floppy format to a gi
 0040  ven   drive, may change the current floppy format set by changin



Cylinder 18, Side 0, Sector 24:

 0000   format currently assigned to a given drive is called the   "dri
 0040  ve format" for that drive.  The current drive format for each dr



Cylinder 18, Side 0, Sector 25:

 0000  isk   partition occupy these volume numbers.  On the new version
 0040  , they occupy   volumes #11: and #12:, respectively.  We do not 



Cylinder 18, Side 0, Sector 26:

 0000  g or adding   floppy formats, or may also define new default flo
 0040  ppy format sets.                                                



Cylinder 19, Side 0, Sector 1:

 0000  t is assigned) or the default drive format.  The   combination o
 0040  f shift keys that affect each drive's format is listed          



Cylinder 19, Side 0, Sector 2:

 0000    of codespace considerations, the new version of the SBIOS does
 0040   not do   this.         1.3.2  The DCBSetup Utility   ----------



Cylinder 19, Side 0, Sector 3:

 0000    below:     0Drive           Shift keys                   -----
 0040             ----------  2A             Ctrl, Fnc, Shift  2B      



Cylinder 19, Side 0, Sector 4:

 0000  -----------------      The user may change the floppy format set
 0040   by using the DCBSetup   utility.  The floppy format set may be 



Cylinder 19, Side 0, Sector 5:

 0000  ive is   displayed on the system status line at the top of the s
 0040  creen as follows:     $A=xxx B=yyy C=zzz D=www vvv      xxx is t



Cylinder 19, Side 0, Sector 6:

 0000         Ctrl, Fnc  2C             Alt, Ctrl, Fnc, Shift  2D      
 0040         Alt, Ctrl, Fnc         The default function key formats a



Cylinder 19, Side 0, Sector 7:

 0000  he Floppy format name of the drive format for drive A. yyy is   
 0040  the Floppy format name of the drive format for drive B. zzz is t



Cylinder 19, Side 0, Sector 8:

 0000  re listed below (function key 0 is the   leftmost black function
 0040   key, function key 1 is to its right, etc.):        (Key    Name



Cylinder 19, Side 0, Sector 9:

 0000  he   Floppy format name of the drive format for drive C, and www
 0040   is the   Floppy format name of the drive format for drive D. vv



Cylinder 19, Side 0, Sector 10:

 0000    Trk Sect Bytes Intlv Skew First  Fmt  Sides  (===    ====  ===
 0040   ==== ===== ===== ==== =====  ===  =====  )0     NEC    77  30  



Cylinder 19, Side 0, Sector 11:

 0000  v is a 3 character   identifier that describes the floppy format
 0040   set.     //                                                    



Cylinder 19, Side 0, Sector 12:

 0000   512    1     0    1    MFM    2   (default)  )1     DEC    77  
 0040  26   128    2     6    1    FM     1  )2     PDQ    77  26   256



Cylinder 19, Side 0, Sector 13:

 0000    The floppy status area is displayed only if the system status 
 0040  line is   enabled and the floppy status area is also enabled (se



Cylinder 19, Side 0, Sector 14:

 0000      1     0    1    MFM    1  )3     TI     77  26   128    1   
 0040    0    0    FM     1  )4     TRS    77  26   256    4     6    1



Cylinder 19, Side 0, Sector 15:

 0000  e the section on   screen commands in the TICOM APC documentatio
 0040  n for details).  The Floppy   format name for a particular drive



Cylinder 19, Side 0, Sector 16:

 0000      MFM    1  )5     AD0    77  26   128    1     0    1    FM  
 0040     1  )6     AD1    39  26   128    1     0    1    FM     1  )7



Cylinder 19, Side 0, Sector 17:

 0000   is not displayed if the name is   "NEC".  (This format is the d
 0040  efault drive format for all drives and is   not displayed so as 



Cylinder 19, Side 0, Sector 18:

 0000       OLD    77  52   256    2     6    1    MFM    2  )8     DW1
 0040      77  15   256    1     0    1    FM     1                    



Cylinder 19, Side 0, Sector 19:

 0000  not to clutter the status line needlessly).           1.3  Chang
 0040  ing Formats   ---------------------      A drive format may be c



Cylinder 19, Side 0, Sector 20:

 0000   )9     DW2    77  60   256    1     0    1    MFM    2   //    
 0040    Note that the selection of a floppy format for a drive lasts o



Cylinder 19, Side 0, Sector 21:

 0000  hanged in three ways: from the keyboard, by the   DCBSetup utili
 0040  ty, or by a user program.       1.3.1  Keyboard Operation   ----



Cylinder 19, Side 0, Sector 22:

 0000  nly until   the system is rebooted or until a different floppy f
 0040  ormat is selected   for that drive.      Note that the default d



Cylinder 19, Side 0, Sector 23:

 0000  ---------------------      The user may change the floppy format
 0040   assigned to a given drive by   simultaneously pressing a set of



Cylinder 19, Side 0, Sector 24:

 0000  rive format is selected by function key 0.  Also   note that in 
 0040  the standard APC SBIOS, when either the NEC or the DEC   format 



Cylinder 19, Side 0, Sector 25:

 0000   shift keys and a function key.  The   user may select any of th
 0040  e function key formats (by hitting the function   key to which i



Cylinder 19, Side 0, Sector 26:

 0000  are selected, the SBIOS switches between these formats   automat
 0040  ically depending on the type of the disk in the drive.  Because 



Cylinder 20, Side 0, Sector 1:

 0000   to avoid problems later on --   the working floppy formats can 
 0040  be restored when the utility is   terminated.   //   The DCBSetu



Cylinder 20, Side 0, Sector 2:

 0000  ge the floppy format set in memory by calling routines   in the 
 0040  NEC_DCB unit.  These changes remain until either the system is  



Cylinder 20, Side 0, Sector 3:

 0000  p utility allows either the default drive formats or the        
 0040                                                                  



Cylinder 20, Side 0, Sector 4:

 0000   rebooted or until the floppy format set is changed again.  A pr
 0040  ogram may   change the floppy format set permanently by calling 



Cylinder 20, Side 0, Sector 5:

 0000    function key formats to be changed.  Changing a default drive 
 0040  format   affects the floppy format assigned to a given drive whe



Cylinder 20, Side 0, Sector 6:

 0000  a routine in the   Perm_DCB unit.  Permanent changes are made by
 0040   writing the floppy format   set to the SBIOS contained on a boo



Cylinder 20, Side 0, Sector 7:

 0000  n the system is   bootstrapped or when the floppy format is chan
 0040  ged by hitting function   key 0 (see section 1.3.1 for details).



Cylinder 20, Side 0, Sector 8:

 0000  table p-System disk.  Note that these   facilities replace the s
 0040  tandard SBIOS functions associated with Unit I/O   calls to unit



Cylinder 20, Side 0, Sector 9:

 0000    The default drive format for   each drive may be changed indep
 0040  endently of any other drive.  (Thus, it is   possible to bootstr



Cylinder 20, Side 0, Sector 10:

 0000   255.  These calls are no longer supported.         1.3.3.1  The
 0040   NEC_DCB Unit   -------------------------                       



Cylinder 20, Side 0, Sector 11:

 0000  changed temporarily or   permanently. Temporary changes are made
 0040   to the floppy format set in   memory and remain until either th



Cylinder 20, Side 0, Sector 12:

 0000  ap a system where the default drive format for drive   B is AD0)
 0040  .  Note that it is possible to change the default drive format  



Cylinder 20, Side 0, Sector 13:

 0000  e system is rebooted or until the   floppy format set is changed
 0040   again.  Permanent changes are made by                          



Cylinder 20, Side 0, Sector 14:

 0000   for drive A, but it is not possible to make that change permane
 0040  nt since   it would be impossible to boot such a system!      Th



Cylinder 20, Side 0, Sector 15:

 0000    writing the floppy format set to the SBIOS contained on a boot
 0040  able    p-System disk.      The DCBSetup utility is operated in 



Cylinder 20, Side 0, Sector 16:

 0000  e new floppy format set may be written back to memory, written t
 0040  o the   SBIOS area on the bootstrap track of a bootable p-System



Cylinder 20, Side 0, Sector 17:

 0000  a manner similar to the NECSetup   utility provided with the sta
 0040  ndard APC p-System.  Command menus and data   selection mechanis



Cylinder 20, Side 0, Sector 18:

 0000   floppy, or   written to a diskfile.  If the floppy format set i
 0040  s written to memory,   the floppy status area on the system stat



Cylinder 20, Side 0, Sector 19:

 0000  ms are the same.      The DCBSetup utility is invoked by X(ecuti
 0040  ng it at the main p-System   command line.  The first prompt is 



Cylinder 20, Side 0, Sector 20:

 0000  us line is updated to show the   new drive formats.  If the flop
 0040  py format set was originally read from a                        



Cylinder 20, Side 0, Sector 21:

 0000  for the source of the floppy format   set to alter. The floppy f
 0040  ormat set used by default is the set currently   in memory.  The



Cylinder 20, Side 0, Sector 22:

 0000    file, and is written to memory, the first three letters of the
 0040   name of   the file are displayed at the right side of the flopp



Cylinder 20, Side 0, Sector 23:

 0000   floppy format set contained in the SBIOS of a bootable   p-Syst
 0040  em disk may also be chosen, as might a floppy format set in a   



Cylinder 20, Side 0, Sector 24:

 0000  y status area.   (Note that if the first three letters of the fi
 0040  le name from which the   floppy format set was read is NEC, the 



Cylinder 20, Side 0, Sector 25:

 0000  file.        Note that the floppy formats for all drives are res
 0040  et to their defaults   when the utility starts up.  This is done



Cylinder 20, Side 0, Sector 26:

 0000  letters are not displayed in the   floppy status area.)    1.3.3
 0040    Program Access   ---------------------      A program may chan



Cylinder 21, Side 0, Sector 1:

 0000                                          {Name DCB}  /DCB_F_1, DC
 0040  B_F_2, DCB_F_3, DCB_F_4, DCB_F_5,     {Func key DCBs}  /DCB_F_6,



Cylinder 21, Side 0, Sector 2:

 0000  ing the DCB_Put_Drive routine) will fail and the   DCB_Put_Drive
 0040   routine will return False.  Setting a default drive DCB to   "u



Cylinder 21, Side 0, Sector 3:

 0000   DCB_F_7, DCB_F_8, DCB_F_9, DCB_F_10,  /DCB_F_11, DCB_F_12, DCB_
 0040  F_13, DCB_F_14, DCB_F_15);  "DCB_Drives = DCB_D_0..DCB_D3;  "DCB



Cylinder 21, Side 0, Sector 4:

 0000  ndefined" is not prohibited, but is not recommended.   //   Note
 0040   that floppy formats named "NEC" are not displayed on the floppy



Cylinder 21, Side 0, Sector 5:

 0000  _Record = Packed Record                            {Floppy forma
 0040  t record}  1Tracks    : Integer;  1Sectors   : Integer;         



Cylinder 21, Side 0, Sector 6:

 0000     status line.      A demonstration of these routines is contai
 0040  ned in the DCBStartup file.  This   program reads a floppy forma



Cylinder 21, Side 0, Sector 7:

 0000   1Bytes     : Integer;  1Intlv     : Integer;  1First     : Inte
 0040  ger;  1Skew      : Integer;  1Name      : Packed Array [0..3] Of



Cylinder 21, Side 0, Sector 8:

 0000  t set from a file and loads it into memory.         1.3.3.2  The
 0040   Perm_DCB Unit   --------------------------      As with the NEC



Cylinder 21, Side 0, Sector 9:

 0000   Char;  1Recording : (S_Dens_S_Side, D_Dens_S_Side,  >S_Dens_D_S
 0040  ide, D_Dens_D_Side);  1Filler_1  : 0..63;  1Undefined : Boolean;



Cylinder 21, Side 0, Sector 10:

 0000  _DCB Unit, the Perm_DCB unit views the floppy format set   as an
 0040   array of DCBs.  The floppy format set recorded in the SBIOS   p



Cylinder 21, Side 0, Sector 11:

 0000    1Filler_2  : 0..127;  /End {of Record};     "Function DCB_Get_
 0040  Record (DCB : DCB_Types; Var DCB_Rec : DCB_Record) : Boolean;  "



Cylinder 21, Side 0, Sector 12:

 0000  ortion of a p-System bootable floppy may be changed by calling t
 0040  he                                                              



Cylinder 21, Side 0, Sector 13:

 0000    "Function DCB_Put_Record (DCB : DCB_Types; DCB_Rec : DCB_Recor
 0040  d) : Boolean;     "Function DCB_Get_Drive (Drive : DCB_Drives; V



Cylinder 21, Side 0, Sector 14:

 0000    Perm_DCBs routine.  This routine accepts a drive number and a 
 0040  DCB array   as parameters.  It also accepts a Boolean which indi



Cylinder 21, Side 0, Sector 15:

 0000  ar DCB : DCB_Types) : Boolean;     "Function DCB_Put_Drive (Driv
 0040  e : DCB_Drives; DCB : DCB_Types) : Boolean;    The DCB_Get_Recor



Cylinder 21, Side 0, Sector 16:

 0000  cates whether or not   the DCB array is to be read from the flop
 0040  py drive, or written to the   floppy drive.  Note that if there 



Cylinder 21, Side 0, Sector 17:

 0000    For the purposes of interaction with the NEC_DCB unit, the flo
 0040  ppy format   set is assumed to be an array of DCBs.  (The record



Cylinder 21, Side 0, Sector 18:

 0000  d and DCB_Put_Record routines allow access to the   individual e
 0040  ntries in the DCB array.  The DCB_Get_Drive routine returns   th



Cylinder 21, Side 0, Sector 19:

 0000   that contains a   floppy format is called a DCB).  The default 
 0040  drive formats occupy   entries 0 through 3 of the array.  Entry 



Cylinder 21, Side 0, Sector 20:

 0000  e DCB assigned to a given drive.  The DCB_Put_Drive routine allo
 0040  ws the   program to make a given drive to use a different DCB.  



Cylinder 21, Side 0, Sector 21:

 0000  4 contains a DCB whose sole   purpose is to contain the name of 
 0040  the floppy format set.  Entries 5   through 19 contain the funct



Cylinder 21, Side 0, Sector 22:

 0000  Each of these   routines return a Boolean function result.  The 
 0040  function value is                                               



Cylinder 21, Side 0, Sector 23:

 0000  ion key formats for function keys 1 though   15.  Each floppy dr
 0040  ive may be assigned exactly one DCB.   //   The NEC_DCB unit con



Cylinder 21, Side 0, Sector 24:

 0000    returned True if the parameters to the routine are valid; othe
 0040  rwise, it   is returned False.      Note that it is possible to 



Cylinder 21, Side 0, Sector 25:

 0000  tains the following routines:      Type  "DCB_Types = (DCB_D_0, 
 0040  DCB_D_1, DCB_D_2, DCB_D_3,              {Drive DCBs}  /DCB_File,



Cylinder 21, Side 0, Sector 26:

 0000  set a DCB to "undefined" (by setting the   Undefined Boolean in 
 0040  the DCB_Record).  Attempts to assign such a DCB to   a drive (us



Cylinder 22, Side 0, Sector 1:

 0000  lled   Default_DCB.  This is intended to contain the DCB for a b
 0040  ootable APC   floppy. It should be regarded as read-only.      T



Cylinder 22, Side 0, Sector 2:

 0000  must be compiled).   In some cases, the finished software is a c
 0040  ombination of such modules.   The software that was modified is 



Cylinder 22, Side 0, Sector 3:

 0000  he interface for the Perm_DCB unit is listed below:         Type
 0040    "DCB_Array = Array [DCB_D_0..DCB_F_15] Of DCB_Record;  ${DCB_D



Cylinder 22, Side 0, Sector 4:

 0000  listed in the table below.  The table   indicates the major comp
 0040  onents of the software, and how to combine the   components to c



Cylinder 22, Side 0, Sector 5:

 0000  _0 will be forced to be NEC-format on writes in order to boot}  
 0040      Var  "Default_DCB : DCB_Record; {NEC format}  "  "  "Functio



Cylinder 22, Side 0, Sector 6:

 0000  reate a finished product:     (Software        Compile         A
 0040  ssemble        Link  (--------        -------         --------  



Cylinder 22, Side 0, Sector 7:

 0000  n Perm_DCBs (Disk      : Integer;  2Var DCBs      : DCB_Array;  
 0040  6Read_DCBs : Boolean) : Boolean;    //   2.0  Other Changes     



Cylinder 22, Side 0, Sector 8:

 0000        ----  (APC SBIOS                       BIOS.TEXT       BIO
 0040  S.CODE => BIOS  (NEC_DCB         NEC.DCB.TEXT    DCB.ASM.TEXT   



Cylinder 22, Side 0, Sector 9:

 0000    ------------------      Because of the changes in the SBIOS fl
 0040  oppy driver, certain system   utilities required modification.  



Cylinder 22, Side 0, Sector 10:

 0000   NEC.DCB.CODE +                                                 
 0040            DCB.ASM.CODE =>   XNEC.DCB.CODE  (Perm_DCB        PERM



Cylinder 22, Side 0, Sector 11:

 0000  In most cases, the modifications are   transparent to the user a
 0040  nd are noticible only in that they work with   the new SBIOS (th



Cylinder 22, Side 0, Sector 12:

 0000  .DCB.TEXT  (DCBSetup        DCB.SETUP.TEXT  (DCBStartup      DCB
 0040  STARTUP.TEXT  (NEC_Floppy      NEC.FLOPPY.TEXT NEC765.TEXT     N



Cylinder 22, Side 0, Sector 13:

 0000  e versions for the standard SBIOS will fail with the   new versi
 0040  on) and they display a version number beginning with U (i.e.,   



Cylinder 22, Side 0, Sector 14:

 0000  EC.FLOPPY.CODE +  XNEC765.CODE =>                               
 0040                              NEC.FLOPPY.CODE                     



Cylinder 22, Side 0, Sector 15:

 0000  U.0).  These utilities include the Bootmaker and the Booter.    
 0040    The one exception is the Format utility.  This utility was cha



Cylinder 22, Side 0, Sector 16:

 0000            Booter          BOOTER.TEXT  (BootMaker       BOOTMAKE
 0040  R.TEXT   //  (   Note that the APC SBIOS (BIOS) must be run thro



Cylinder 22, Side 0, Sector 17:

 0000  nged to   format a floppy in a user-specified drive according to
 0040   the floppy format   that is currently assigned to it.  Note tha



Cylinder 22, Side 0, Sector 18:

 0000  ugh the Compress utility.   An absolute codefile should be produ
 0040  ced, with its base a location 0.   The BootMaker utility should 



Cylinder 22, Side 0, Sector 19:

 0000  t this utility cannot format   a floppy with either the DW2 form
 0040  ats (because of a restriction on the   NEC 765 floppy controller



Cylinder 22, Side 0, Sector 20:

 0000  then be run.  The primary bootstrap should   be found in a file 
 0040  called PRIMARY.  An absolute image of the secondary   bootstrap 



Cylinder 22, Side 0, Sector 21:

 0000  ).         3.0  Object Regeneration   ------------------------  
 0040      Several pieces of software were either modified or created f



Cylinder 22, Side 0, Sector 22:

 0000  should be found in a file called SECBOOT.  The SBIOS file is   t
 0040  he output of the Compress utility.                              



Cylinder 22, Side 0, Sector 23:

 0000  is an I/O error transferring the DCB   array, or there is no val
 0040  id SBIOS on the floppy drive, the value of the   Perm_DCBs funct



Cylinder 22, Side 0, Sector 24:

 0000  or this project.   This section describes how to generate object
 0040   code given that source code is   available.                    



Cylinder 22, Side 0, Sector 25:

 0000  ion is returned False; otherwise, it is returned True.      Note
 0040   that the interface for the Perm_DCB unit contains a variable ca



Cylinder 22, Side 0, Sector 26:

 0000    Some of the software exists as assembly language routines (whi
 0040  ch must be   assembled), and others exist as Pascal code (which 



Cylinder 23, Side 0, Sector 1:

 0000   X28 May 86     8The NECBIOS U.5 Release  8=====================
 0040  ==  8  %The NECBIOS now allows access to two hard disks.  Using 



Cylinder 23, Side 0, Sector 2:

 0000  physical tracks has been changed to   allow for the above access
 0040   to the bad block and volume tables.  Tracks 0   to 3 are still 



Cylinder 23, Side 0, Sector 3:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 4:

 0000  the   HARD.CON utility, each hard disk may be split into up to 9
 0040   partitions.   Each partition may be tagged by the user with a n



Cylinder 23, Side 0, Sector 5:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 6:

 0000  ame of up to 19   characters. Partitions are designated for use 
 0040  either by the p-System or   MS-DOS. Each partition may be either



Cylinder 23, Side 0, Sector 7:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 8:

 0000   mounted or dismounted.  The p-   System can access a maximum of
 0040   3 mounted p-System volumes as I/O units   12 through 14.  Parti



Cylinder 23, Side 0, Sector 9:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 10:

 0000  tions are allocated in 13 block increments to a   maximum of 327
 0040  60 blocks.     %The bad block and volumes tables are located in 



Cylinder 23, Side 0, Sector 11:

 0000      $CURSOR $EQUAL  $TAG    $LAST                               
 0040                                                                  



Cylinder 23, Side 0, Sector 12:

 0000  the same positions   on both drives, i.e., the bad blocks table 
 0040  is stored on cylinder 0, head   2, sectors 2 and 14.  The volume



Cylinder 23, Side 0, Sector 13:

 0000                                                                  
 0040                                                                



Cylinder 23, Side 0, Sector 14:

 0000  s table is stored on cylinder 0, head 2,   sectors 3 and 15.  Si
 0040  nce the p-System allocates 2 sectors per block,   access to thes



Cylinder 23, Side 0, Sector 15:

 0000                                                      H '         
 0040                                                                  



Cylinder 23, Side 0, Sector 16:

 0000  e sectors is provided through absolute sector reads and         
 0040                                                                  



Cylinder 23, Side 0, Sector 17:

 0000                      G   . s'E-                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 18:

 0000    writes to device 12.  For drive 0, they are blocks 27 and 33, 
 0040  and for   drive 1, they are 79 and 85.  The general equations ar



Cylinder 23, Side 0, Sector 19:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 20:

 0000  e: 13*(4*Drive +   2) + 1 and 13*(4*Drive + 2) + 7.  For example
 0040  , to read the bad block and   volume table for a particular driv



Cylinder 23, Side 0, Sector 21:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 22:

 0000  e you could use the following code:           Function Info_Read
 0040   (Drive: Integer;  9Var Buffer: Array [Low..High: Integer] Of  G



Cylinder 23, Side 0, Sector 23:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 24:

 0000  Integer): Boolean;  %Begin  'Unitread (12, Buffer[Low], 0, 13*(4
 0040  *Drive + 2) + 1, 2);  'If IOResult <> 0 Then  )Unitread (12, Buf



Cylinder 23, Side 0, Sector 25:

 0000                                                                  
 0040                                                                  



Cylinder 23, Side 0, Sector 26:

 0000  fer[Low], 0, 13*(4*Drive + 2) + 7, 2);  'Info_Read := (IOResult 
 0040  = 0);  %End {of Info_Read};  %  %The handling of the mapping to 



Cylinder 24, Side 0, Sector 1:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 2:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 3:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 4:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 5:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 6:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 7:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 8:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 9:

 0000  mapped to tracks 0 to 3 on drive 0, but tracks 4 to 7 are   now 
 0040  mapped to tracks 0 to 3 on drive 1.  Accesses to tracks greater 



Cylinder 24, Side 0, Sector 10:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 11:

 0000  than   7 on a volume are mapped relative to the volume's start t
 0040  rack on a    particular drive.                                  



Cylinder 24, Side 0, Sector 12:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 13:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 14:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 15:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 16:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 17:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 18:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 19:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 20:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 21:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 22:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 23:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 24:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 25:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee



Cylinder 24, Side 0, Sector 26:

 0000  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 0040  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


