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
/
CPMUG023.ARK
/
LOAD.DOC
< prev
next >
Wrap
Text File
|
1984-04-29
|
6KB
|
201 lines
***************************************************************************
** COPYRIGHT (C) MASSACHUSETTS INSTITUTE OF TECHNOLOGY AND HARVARD **
** UNIVERSITY, BIOMEDICAL ENGINEERING CENTER 1977. ALL RIGHTS RESERVED. **
***************************************************************************
INITIAL LOADING OF STOIC
J. SACHS 2/15/77
STOIC REQUIRES A 24K BYTE SYSTEM WITH A MASS STORAGE DEVICE
AND TERMINAL OR TELETYPE.
TO GENERATE A VERSION OF STOIC FOR A NEW SYSTEM, THE FOLLOWING
STEPS MUST BE FOLLOWED:
BOOTSTRAP
REWRITE THE BOOTSTRAP AS NECESSARY TO RUN YOUR TERMINAL AND MASS
STORAGE DEVICE. THE FOLLOWING ROUTINES MUST BE PROVIDED:
TTYIN ACCEPT A CHARACTER FROM THE TERMINAL
CALL TTYIN
CHARACTER RETURNED IN A, PARITY BIT ZERO
TTYOU TYPE A CHARACTER ON THE TERMINAL
CHARACTER IN A
CALL TTYOU
DSKIN READ BLOCKS FROM THE MASS STORAGE DEVICE
BC CONTAINS A BLOCK COUNT
DE CONTAINS THE BUFFER ADDRESS
(THE ADDRESS INTO WHICH THE FIRST BYTE MUST BE READ)
HL CONTAINS THE FIRST BLOCK NUMBER
CALL DSKIN
ERROR CODE RETURNED IN A (ZERO IF OK)
DSKOU WRITE BLOCKS FROM THE MASS STORAGE DEVICE
BC CONTAINS A BLOCK COUNT
DE CONTAINS THE BUFFER ADDRESS
(THE ADDRESS FROM WHICH THE FIRST BYTE MUST BE WRITTEN)
HL CONTAINS THE FIRST BLOCK NUMBER
CALL DSKOU
ERROR CODE RETURNED IN A (ZERO IF OK)
THE PARAMETER "BSIZE" MUST BE SET TO THE BLOCK SIZE (IN
BYTES) FOR THE MASS STORAGE DEVICE. IF THE DEVICE USES
EXCESSIVELY SMALL BLOCKS, < 512 BYTES, IT MAY BE ADVANTAGEOUS
TO WRITE DSKIN AND DSKOU TO TRANSFER MULTIPLE PHYSICAL
RECORDS AS A SINGLE LOGICAL RECORD.
THE PARAMETER "RAM" SHOULD BE SET TO THE FIRST RAM LOCATION
OF YOUR SYSTEM.
CODE TO PROCESS RESTARTS (IF ANY) SHOULD BE INCLUDED IN THE
BOOTSTRAP.
THE PROGRAM AT "SIZE" SHOULD BE MODIFIED TO SIZE MEMORY FOR
YOUR SYSTEM. THIS PROBABLY MEANS MODIFYING THE CONSTANT
"0C000H" TO "0".
COMMIT THE BOOTSTRAP TO READ-ONLY MEMORY.
STOIC KERNEL
ENTER THE ADDRESS OF TTYIN, TTYOU, DSKIN, AND DSKOU AS PARAMETERS
IN THE KERNEL.
ENTER PARAMETER VALUES FOR BCKSP AND TABS FOR YOUR TERMINAL; IF
YOUR TERMINAL CAN BACKSPACE, BUT DOES NOT USE THE ASCII BACKSPACE
CHARACTER TO DO THIS, MODIFY THE CODE IN "RDLINE" TO BACKSPACE
YOUR TERMINAL.
ADJUST THE ORIGIN OF STOIC FOR YOUR SYSTEM.
CHOOSE STACK SIZES, COMPILE BUFFER SIZE, ETC,.
ENTER THE PARAMETER "BSIZE" THE SAME AS IN THE BOOTSTRAP.
ENTER THE PARAMETER "NBLKS", THE NUMBER OF AVAILABLE DISK BLOCKS.
REPLACE THE CODE AT 2000H WITH CODE TO PROCESS RESTARTS FOR YOUR
SYSTEM. NOTE THAT THE FIRST RAM LOCATION OF YOUR SYSTEM SHOULD
CONTAIN A "JMP ABORT".
ENTER TEXT FOR THE ERROR CODES FOR THE MASS STORAGE DEVICE IN
"RDERC" AND "WRERC".
MODIFY CODE AT "SIZE" TO SIZE MEMORY ON YOUR SYSTEM AND SET THE
VARIABLE "?MEMO" TO THE ADDRESS OF THE LAST USABLE RAM LOCATION + 1.
THIS IS THE SAME MODIFICATION AS IN THE BOOTSTRAP.
FILE SYSTEM
MODIFY THE CONSTANTS "BSIZE" AND "NBLKS" AS NECESSARY TO REFLECT
THE BLOCK SIZE (IN BYTES) AND THE TOTAL AVAILABLE NUMBER OF BLOCKS
ON THE MASS STORAGE DEVICE, RESPECTIVELY. (NBLKS MUST BE LESS THAN
OR EQUAL TO 512 DECIMAL)
REMOVE OR MODIFY THE WORD "DISK-COPY" WHICH COPIES AN ENTIRE DISK
FROM ONE UNIT TO ANOTHER.
MODIFY THE CODE TO SIZE MEMORY IN "(RDCI)", AS IN THE KERNEL AND
BOOTSTRAP.
MODIFY THE CONSTANT "2000" IN "WRITE-BOOT" TO THE 1ST RAM LOCATION
IN YOUR SYSTEM (HEX).
EDITOR
MODIFY THE VALUE OF THE VARIABLE "ESC" TO CORRESPOND TO AN APPROPRIATE
CHARACTER FOR YOUR TERMINAL. (E.G. ALT MODE FOR AN ASR 33)
MODIFY THE EDITOR WORD "DISPLAY-CURSORS" TO DISPLAY REASONABLE
CHARACTERS AS CURSORS. (FOR A TTY, "[", "]", AND "$" ARE SUGGESTED)
MODIFY THE EDITOR WORD "ERASE" TO ERASE THE SCREEN AND HOME THE CURSOR
ON YOUR TERMINAL.
IF YOU ARE USING A TELETYPE INSTEAD OF A DISPLAY TERMINAL, DELETE THE
FOLLOWING WORDS:
DISPLAY-CURSORS
DISPLAY-CHAR
DISPLAY
ERASE
EDIT-PROMPT
ERRS
REDEFINE THE FOLLOWING WORDS:
'H : GX > ;
'EDIT : GX EDITOR<
MEMORY @ DUP LAST ! DUP XLAST ! DUP CP ! DUP P1 ! P2 ! ;
LOADING STOIC
<CR> STANDS FOR THE CARRIAGE RETURN KEY
1) COPY THE BASIC DEFINITIONS AND FILE SYSTEM PROGRAMS ONTO THE
DISK AS TWO SETS OF CONTIGUOUS BLOCKS. WRITE DOWN THE STARTING
BLOCK # FOR EACH PROGRAM. WHEN COPYING THE TWO PROGRAMS ONTO THE
DISK, NOTE THAT LINES ARE TERMINATED BY CARRIAGE RETURN ONLY;
NO LINE FEEDS SHOULD BE INSERTED INTO THE FILES.
2) ASSEMBLE STOIC AND LOAD IT INTO MEMORY; START AT "SIZE".
3) TYPE "N LOAD<CR>" WHERE N IS THE FIRST BLOCK NUMBER OF THE BASIC
DEFINITIONS PROGRAM ON THE DISK.
4) TYPE "N LOAD<CR>" WHERE N IS THE FIRST BLOCK NUMBER OF THE FILE
SYSTEM PROGRAM ON THE DISK.
5) TYPE "ZERO-DIRECTORY<CR>".
6) TYPE "'STOIC WRITE-BOOT<CR>" TO MAKE A BOOTSTRAPPABLE VERSION
OF STOIC ON THE DISK. FROM THIS POINT ON, THE BOOTSTRAP SHOULD
LOAD STOIC BY ANSWERING "STOIC<CR>" TO THE QUESTION "FILENAME ? ".
7) TO LOAD FILES FROM A CHARACTER-ORIENTED INPUT DEVICE ONTO
A DISK FILE, TYPE IN THE FOLLOWING PROGRAM:
'GET : ... ;
'LOAD-FILE : OFILE WOPEN
BEGIN GET DUP PUTBYTE EOF EQ END
EOF PUTBYTE SHRINK CLOSE FLUSH ;
WHERE "GET" DEFINES A WORD WHICH RETURNS THE NEXT BYTE OF THE FILE
ON THE STACK. AT THE END OF THE FILE, "GET" MUST RETURN AN EOF (^D).
'NAME LOAD-FILE<CR>
WILL THEN COPY FROM THE INPUT DEVICE TO THE NAMED DISK FILE.
8) LOAD THE EDITOR AND ANY OTHER PROGRAMS YOU NEED ONTO THE DISK.
9) THE BASIC DEFINITIONS AND FILE SYSTEM PROGRAMS NEED NOT BE SAVED
ON THE DISK.
THE LINE DRAWER AND INTERRUPT HANDLER ARE HIGHLY SYSTEM DEPENDENT
AND ARE INCLUDED MAINLY AS GUIDELINES FOR WRITING YOUR OWN ROUTINES.
***EOF***