mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.9 KiB
111 lines
2.9 KiB
/*
|
|
* SoftPC Revision 2.0
|
|
*
|
|
* Title : IBM PC Cassette IO BIOS declarations
|
|
*
|
|
* Description : This module contains definitions that are used in
|
|
* accessing the Cassette IO BIOS. In the AT BIOS, the
|
|
* original Cassette IO functionality has been greatly
|
|
* extended to provide support for multi-tasking systems.
|
|
*
|
|
* Author(s) : Ross Beresford
|
|
*
|
|
* Notes : For a detailed description of the XT and AT Cassette IO
|
|
* BIOS functions, refer to the following manuals:
|
|
*
|
|
* - IBM PC/XT Technical Reference Manual
|
|
* (Section A-72 System BIOS)
|
|
* - IBM PC/AT Technical Reference Manual
|
|
* (Section 5-164 BIOS1)
|
|
*/
|
|
|
|
/* SccsID[]="@(#)tape_io.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */
|
|
|
|
/*
|
|
* ============================================================================
|
|
* Structure/Data definitions
|
|
* ============================================================================
|
|
*/
|
|
|
|
/*
|
|
* Cassette I/O Functions
|
|
*/
|
|
|
|
#define INT15_INVALID 0x86
|
|
|
|
/*
|
|
* Multi-tasking Extensions
|
|
*/
|
|
|
|
/* device open */
|
|
#define INT15_DEVICE_OPEN 0x80
|
|
|
|
/* device close */
|
|
#define INT15_DEVICE_CLOSE 0x81
|
|
|
|
/* program termination */
|
|
#define INT15_PROGRAM_TERMINATION 0x82
|
|
|
|
/* event wait */
|
|
#define INT15_EVENT_WAIT 0x83
|
|
#define INT15_EVENT_WAIT_SET 0x00
|
|
#define INT15_EVENT_WAIT_CANCEL 0x01
|
|
|
|
/* joystick support */
|
|
#define INT15_JOYSTICK 0x84
|
|
#define INT15_JOYSTICK_SWITCH 0x00
|
|
#define INT15_JOYSTICK_RESISTIVE 0x01
|
|
|
|
/* system request key pressed */
|
|
#define INT15_REQUEST_KEY 0x85
|
|
#define INT15_REQUEST_KEY_MAKE 0x00
|
|
#define INT15_REQUEST_KEY_BREAK 0x01
|
|
|
|
/* timed wait */
|
|
#define INT15_WAIT 0x86
|
|
|
|
/* block move */
|
|
#define INT15_MOVE_BLOCK 0x87
|
|
|
|
/* extended memory size determine */
|
|
#define INT15_EMS_DETERMINE 0x88
|
|
|
|
/* processor to virtual mode */
|
|
#define INT15_VIRTUAL_MODE 0x89
|
|
|
|
/* device busy loop and interrupt complete */
|
|
#define INT15_DEVICE_BUSY 0x90
|
|
#define INT15_INTERRUPT_COMPLETE 0x91
|
|
#define INT15_DEVICE_DISK 0x00
|
|
#define INT15_DEVICE_FLOPPY 0x01
|
|
#define INT15_DEVICE_KEYBOARD 0x02
|
|
#define INT15_DEVICE_NETWORK 0x80
|
|
#define INT15_DEVICE_FLOPPY_MOTOR 0xfd
|
|
#define INT15_DEVICE_PRINTER 0xfe
|
|
|
|
/* return configuration parameters pointer */
|
|
#define INT15_CONFIGURATION 0xc0
|
|
|
|
/*
|
|
* ============================================================================
|
|
* External declarations and macros
|
|
* ============================================================================
|
|
*/
|
|
|
|
/*
|
|
* void cassette_io()
|
|
* {
|
|
* This routine performs the Cassette I/O BIOS function. When
|
|
* an INT 15 occurs, the assembler BIOS calls this function to
|
|
* do the actual work involved using a BOP instruction.
|
|
*
|
|
* As no Cassette device is implemented on SoftPC, the
|
|
* Cassette I/O functions just return with an appropriate error.
|
|
*
|
|
* On the AT, INT 15 is used to provide multi-tasking support
|
|
* as an extension to the Cassette I/O functionality. Most
|
|
* of these functions are supported in the same way as in
|
|
* real AT BIOS.
|
|
* }
|
|
*/
|
|
extern void cassette_io();
|