home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol008 / booter.doc < prev    next >
Encoding:
Text File  |  1984-04-29  |  2.6 KB  |  81 lines

  1. Forming a Pascal System Booter
  2. ------------------------------
  3.  
  4.  
  5.  
  6.     To create an UCSD Pascal system booter you must have the following:
  7.  
  8.         1)  A short boot loader that will read in track 0 sectors 2 - 13
  9.  
  10.         2)  A copy of PINIT.ASM
  11.  
  12.         3)  A hex version of your current BIOS
  13.  
  14.         4)  A copy of PGEN.COM
  15.  
  16.  
  17.     The short boot loader of 1) can be generated from your current system
  18. boot loader if either a source or listing of it is available.  This trans-
  19. formation process is simply the reduction of a two track bootstrap into a
  20. single track one.  Two programs BOOT.ASM and PBOOT.ASM are provided as inspir-
  21. ation for this proceedure.
  22.  
  23.  
  24.     NOTE:  PBOOT loads its sectors to location (MSIZE-48)*1024+0BA00H
  25.            and then jumps to that same point.
  26.  
  27.  
  28.     If you have no inkling of how your current system boot either loads or
  29. works, you will have to prevail on your system supplier for that information.
  30.  
  31.  
  32.     PINIT.ASM is the source for the code that boots in and starts
  33. SYSTEM.MICRO, the P-Machine interpreter.  A quick edit of PINIT.ASM is needed
  34. to modify the MSIZE equate to match the memory size (in kilobytes) of the
  35. current system BIOS.  Once this has been done each of the modules PBOOT, PINIT
  36. and BIOS must be assembled to produce the .HEX files which will be overlayed
  37. into PGEN's data area as follows:
  38.  
  39.     NOTE:  In the following we assume a 48k system
  40.  
  41.  
  42.  
  43. A>DDT PGEN.COM            ;Read PGEN code into memory
  44.  
  45. DDT VERS 1.3            ;We will be overlaying PBOOT,
  46. NEXT  PC            ;  PINIT, and BIOS into PGEN's
  47. 0300 0100            ;  data area, and finally saving
  48.                 ;  the memory image.
  49. -IPBOOT.HEX            ;Set 'PBOOT.HEX' as the input file
  50. -H900 0                ;PBOOT starts at location 0,  we want
  51. 0900 0900            ;  to compute a bias to read it to loc 900
  52. -R900                ;Using this bias we read PBOOT to PGEN's
  53. NEXT  PC            ;  data area
  54. 0980 0000
  55. -IPINIT.HEX            ;We will now do the same proceedure with
  56. -H980 BA00            ;PINIT.  This object code will go to
  57. C380 4F80            ;  location 980, notice PINIT starts at
  58. -R4F80                ;  BA00 (HEX) in a 48k system.
  59. NEXT  PC
  60. 0A7D BA00            ;The value below NEXT will vary with the release
  61. -IBIOS.HEX            ;Last we read BIOS to location D80
  62. -HD80 BE00
  63. C380 4F80            ;This should be the same bias value as last time
  64. -R4F80
  65. NEXT  PC
  66. 0F76 0000            ;The value below NEXT is dependant on BIOS
  67. -^C                ;We now leave ddt to save our work
  68.  
  69. A>SAVE 16 PGEN48.COM        ;Our boot writer will be called PGEN48
  70. A>PGEN48            ;The booter may now be put out to Pascal
  71.  
  72. PGEN VERSION 1.0        ;  system disks by executing PGEN48
  73.  
  74. GET BOOTER?(Y/N)N        ;  as shown
  75.  
  76. PUT BOOTER?(Y/N)Y
  77. WRITING BOOTER TO DRIVE A, TYPE RETURN
  78. AGAIN?(Y/N)N
  79.  
  80. REBOOTING CP/M, TYPE RETURN
  81.