home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG025.ARK / LOAD.DOC < prev    next >
Text File  |  1984-04-29  |  6KB  |  201 lines

  1.  
  2.  
  3. ***************************************************************************
  4. ** COPYRIGHT (C) MASSACHUSETTS INSTITUTE OF TECHNOLOGY AND HARVARD       **
  5. ** UNIVERSITY, BIOMEDICAL ENGINEERING CENTER 1977.  ALL RIGHTS RESERVED. **
  6. ***************************************************************************
  7.  
  8. INITIAL LOADING OF STOIC
  9. J. SACHS 2/15/77
  10.  
  11.     STOIC REQUIRES A 24K BYTE SYSTEM WITH A MASS STORAGE DEVICE
  12. AND TERMINAL OR TELETYPE.
  13.  
  14.     TO GENERATE A VERSION OF STOIC FOR A NEW SYSTEM, THE FOLLOWING
  15. STEPS MUST BE FOLLOWED:
  16.  
  17. BOOTSTRAP
  18.  
  19. REWRITE THE BOOTSTRAP AS NECESSARY TO RUN YOUR TERMINAL AND MASS
  20. STORAGE DEVICE.  THE FOLLOWING ROUTINES MUST BE PROVIDED:
  21.  
  22.     TTYIN    ACCEPT A CHARACTER FROM THE TERMINAL
  23.  
  24.         CALL TTYIN
  25.         CHARACTER RETURNED IN A, PARITY BIT ZERO
  26.  
  27.     TTYOU    TYPE A CHARACTER ON THE TERMINAL
  28.  
  29.         CHARACTER IN A
  30.         CALL TTYOU
  31.  
  32.     DSKIN    READ BLOCKS FROM THE MASS STORAGE DEVICE
  33.  
  34.         BC CONTAINS A BLOCK COUNT
  35.         DE CONTAINS THE BUFFER ADDRESS
  36.            (THE ADDRESS INTO WHICH THE FIRST BYTE MUST BE READ)
  37.         HL CONTAINS THE FIRST BLOCK NUMBER
  38.         CALL DSKIN
  39.         ERROR CODE RETURNED IN A (ZERO IF OK)
  40.  
  41.     DSKOU    WRITE BLOCKS FROM THE MASS STORAGE DEVICE
  42.  
  43.         BC CONTAINS A BLOCK COUNT
  44.         DE CONTAINS THE BUFFER ADDRESS
  45.            (THE ADDRESS FROM WHICH THE FIRST BYTE MUST BE WRITTEN)
  46.         HL CONTAINS THE FIRST BLOCK NUMBER
  47.         CALL DSKOU
  48.         ERROR CODE RETURNED IN A (ZERO IF OK)
  49.  
  50.     THE PARAMETER "BSIZE" MUST BE SET TO THE BLOCK SIZE (IN
  51.     BYTES) FOR THE MASS STORAGE DEVICE.  IF THE DEVICE USES
  52.     EXCESSIVELY SMALL BLOCKS, < 512 BYTES, IT MAY BE ADVANTAGEOUS
  53.     TO WRITE DSKIN AND DSKOU TO TRANSFER MULTIPLE PHYSICAL
  54.     RECORDS AS A SINGLE LOGICAL RECORD.
  55.  
  56.     THE PARAMETER "RAM" SHOULD BE SET TO THE FIRST RAM LOCATION
  57.     OF YOUR SYSTEM.
  58.  
  59.     CODE TO PROCESS RESTARTS (IF ANY) SHOULD BE INCLUDED IN THE
  60.     BOOTSTRAP.
  61.  
  62.     THE PROGRAM AT "SIZE" SHOULD BE MODIFIED TO SIZE MEMORY FOR
  63.     YOUR SYSTEM.  THIS PROBABLY MEANS MODIFYING THE CONSTANT
  64.     "0C000H" TO "0".
  65.  
  66. COMMIT THE BOOTSTRAP TO READ-ONLY MEMORY.
  67.  
  68.  
  69. STOIC KERNEL
  70.  
  71. ENTER THE ADDRESS OF TTYIN, TTYOU, DSKIN, AND DSKOU AS PARAMETERS
  72. IN THE KERNEL.
  73.  
  74. ENTER PARAMETER VALUES FOR BCKSP AND TABS FOR YOUR TERMINAL; IF
  75. YOUR TERMINAL CAN BACKSPACE, BUT DOES NOT USE THE ASCII BACKSPACE
  76. CHARACTER TO DO THIS, MODIFY THE CODE IN "RDLINE" TO BACKSPACE
  77. YOUR TERMINAL.
  78.  
  79. ADJUST THE ORIGIN OF STOIC FOR YOUR SYSTEM.
  80.  
  81. CHOOSE STACK SIZES, COMPILE BUFFER SIZE, ETC,.
  82.  
  83. ENTER THE PARAMETER "BSIZE" THE SAME AS IN THE BOOTSTRAP.
  84. ENTER THE PARAMETER "NBLKS", THE NUMBER OF AVAILABLE DISK BLOCKS.
  85.  
  86. REPLACE THE CODE AT 2000H WITH CODE TO PROCESS RESTARTS FOR YOUR
  87. SYSTEM.  NOTE THAT THE FIRST RAM LOCATION OF YOUR SYSTEM SHOULD
  88. CONTAIN A "JMP ABORT".
  89.  
  90. ENTER TEXT FOR THE ERROR CODES FOR THE MASS STORAGE DEVICE IN
  91. "RDERC" AND "WRERC".
  92.  
  93. MODIFY CODE AT "SIZE" TO SIZE MEMORY ON YOUR SYSTEM AND SET THE
  94. VARIABLE "?MEMO" TO THE ADDRESS OF THE LAST USABLE RAM LOCATION + 1.
  95. THIS IS THE SAME MODIFICATION AS IN THE BOOTSTRAP.
  96.  
  97.  
  98. FILE SYSTEM
  99.  
  100. MODIFY THE CONSTANTS "BSIZE" AND "NBLKS" AS NECESSARY TO REFLECT
  101. THE BLOCK SIZE (IN BYTES) AND THE TOTAL AVAILABLE NUMBER OF BLOCKS
  102. ON THE MASS STORAGE DEVICE, RESPECTIVELY.  (NBLKS MUST BE LESS THAN
  103. OR EQUAL TO 512 DECIMAL)
  104.  
  105. REMOVE OR MODIFY THE WORD "DISK-COPY" WHICH COPIES AN ENTIRE DISK
  106. FROM ONE UNIT TO ANOTHER.
  107.  
  108. MODIFY THE CODE TO SIZE MEMORY IN "(RDCI)", AS IN THE KERNEL AND
  109. BOOTSTRAP.
  110.  
  111. MODIFY THE CONSTANT "2000" IN "WRITE-BOOT" TO THE 1ST RAM LOCATION
  112. IN YOUR SYSTEM (HEX).
  113.  
  114.  
  115. EDITOR
  116.  
  117. MODIFY THE VALUE OF THE VARIABLE "ESC" TO CORRESPOND TO AN APPROPRIATE
  118. CHARACTER FOR YOUR TERMINAL. (E.G. ALT MODE FOR AN ASR 33)
  119.  
  120. MODIFY THE EDITOR WORD "DISPLAY-CURSORS" TO DISPLAY REASONABLE
  121. CHARACTERS AS CURSORS.  (FOR A TTY, "[", "]", AND "$" ARE SUGGESTED)
  122.  
  123. MODIFY THE EDITOR WORD "ERASE" TO ERASE THE SCREEN AND HOME THE CURSOR
  124. ON YOUR TERMINAL.
  125.  
  126. IF YOU ARE USING A TELETYPE INSTEAD OF A DISPLAY TERMINAL, DELETE THE
  127. FOLLOWING WORDS:
  128.  
  129.     DISPLAY-CURSORS
  130.     DISPLAY-CHAR
  131.     DISPLAY
  132.     ERASE
  133.     EDIT-PROMPT
  134.     ERRS
  135.  
  136. REDEFINE THE FOLLOWING WORDS:
  137.  
  138.     'H : GX > ;
  139.     'EDIT : GX EDITOR<
  140.       MEMORY @ DUP LAST ! DUP XLAST ! DUP CP ! DUP P1 ! P2 ! ;
  141.  
  142.  
  143. LOADING STOIC
  144.  
  145. <CR> STANDS FOR THE CARRIAGE RETURN KEY
  146.  
  147. 1) COPY THE BASIC DEFINITIONS AND FILE SYSTEM PROGRAMS ONTO THE
  148.    DISK AS TWO SETS OF CONTIGUOUS BLOCKS.  WRITE DOWN THE STARTING
  149.    BLOCK # FOR EACH PROGRAM.  WHEN COPYING THE TWO PROGRAMS ONTO THE
  150.    DISK, NOTE THAT LINES ARE TERMINATED BY CARRIAGE RETURN ONLY;
  151.    NO LINE FEEDS SHOULD BE INSERTED INTO THE FILES.
  152.  
  153. 2) ASSEMBLE STOIC AND LOAD IT INTO MEMORY; START AT "SIZE".
  154.  
  155. 3) TYPE "N LOAD<CR>" WHERE N IS THE FIRST BLOCK NUMBER OF THE BASIC
  156.    DEFINITIONS PROGRAM ON THE DISK.
  157.  
  158. 4) TYPE "N LOAD<CR>" WHERE N IS THE FIRST BLOCK NUMBER OF THE FILE
  159.    SYSTEM PROGRAM ON THE DISK.
  160.  
  161. 5) TYPE "ZERO-DIRECTORY<CR>".
  162.  
  163. 6) TYPE "'STOIC WRITE-BOOT<CR>" TO MAKE A BOOTSTRAPPABLE VERSION
  164.    OF STOIC ON THE DISK.  FROM THIS POINT ON, THE BOOTSTRAP SHOULD
  165.    LOAD STOIC BY ANSWERING "STOIC<CR>" TO THE QUESTION "FILENAME ? ".
  166.  
  167. 7) TO LOAD FILES FROM A CHARACTER-ORIENTED INPUT DEVICE ONTO
  168.    A DISK FILE, TYPE IN THE FOLLOWING PROGRAM:
  169.  
  170. 'GET : ... ;
  171.  
  172. 'LOAD-FILE : OFILE WOPEN
  173.    BEGIN GET DUP PUTBYTE EOF EQ END
  174.    EOF PUTBYTE SHRINK CLOSE FLUSH ;
  175.  
  176. WHERE "GET" DEFINES A WORD WHICH RETURNS THE NEXT BYTE OF THE FILE
  177. ON THE STACK.  AT THE END OF THE FILE, "GET" MUST RETURN AN EOF (^D).
  178.  
  179. 'NAME LOAD-FILE<CR>
  180.  
  181. WILL THEN COPY FROM THE INPUT DEVICE TO THE NAMED DISK FILE.
  182.  
  183. 8) LOAD THE EDITOR AND ANY OTHER PROGRAMS YOU NEED ONTO THE DISK.
  184.  
  185. 9) THE BASIC DEFINITIONS AND FILE SYSTEM PROGRAMS NEED NOT BE SAVED
  186.    ON THE DISK.
  187.  
  188.  
  189. THE LINE DRAWER AND INTERRUPT HANDLER ARE HIGHLY SYSTEM DEPENDENT
  190. AND ARE INCLUDED MAINLY AS GUIDELINES FOR WRITING YOUR OWN ROUTINES.
  191.  
  192.  
  193.  
  194. ***EOF***
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.