home *** CD-ROM | disk | FTP | other *** search
- The BIOS is implemented like this:
-
- xx00: 76 C9 00 76 C9 00 76 C9 00......
-
- For the non-z80-literate, that is a series of HALT and RETurn from
- subroutine statements. HALT instructions return control to the calling
- (c program) routine that started the Z-80 running in the first place.
- By dividing the low 8 bits of the PC by 3, we can find out what BIOS
- routine the caller wanted, do it in C, then return.
-
- upm takes various paramaters either on the command line or in
- ~/.upmrc. If specified, command line paramaters take precedence over
- .upmrc options. Options are in the form of dev:file, where dev is
- A-O, for disk devices, or TY, LP, PT, U1 or U2, for alternate physical
- devices. The files specified are attached to the coresponding disks or
- physical devices. The above identifiers corespond to these CP/M physical
- devices:
-
- TY TTY:
- LP LPT:
- PT PTP: PTR:
- U1 UC1: UL1: UP1: UR1:
- U2 UP2: UR2:
-
- The CRT: device is permanently assigned to stdin/stdout. stdin/stdout
- are set to RAW mode, to make all keys work. The last BIOS jump table
- entry is non-standard, and causes the CP/M system to halt and control
- return to unix. The CP/M program EXIT.COM will do this.
-
- As usual, the BAT: device is a combination of CRT: and LPT:
-
- The default I/O byte assigns as follows:
-
- CON:=CRT:
- RDR:=PTP:
- PUN:=PTR:
- LST:=LPT:
-
- A typical command line might say:
-
- % upm a:cpm.adrive lp:printer_file pt:copy_file
-
- The device identifiers may be in upper-case, but the files, of course,
- will be literal-cased.
-
- All device files except LP: will be fopen()ed "r+". LP: will be
- fopen()ed "w".
-
- Any device not specifically assigned will act like /dev/null.
-