• Keine Ergebnisse gefunden

MCBO BBFBIIIICB HDUAL

II. lCBO BBPBIBICB IlDUlL

Other system calls used: RD1 (10), GETSCR (48), RD (50), GETWORK (91) Other registers altered: none

Example Calling Sequence: (OVEREND-OVERLIY+1) ; Overlay region length

4 ; Sector count, including reI table

Function: Perform table lookup.

SC 100 DISPArcJI 80- IIlClO ley B

Input parameters: Other Registers altered: none

HI.CJlO ley B - 81 - SC 101 GJmJSBI

IlACBO BBFBIBICB HDD.IL

Example Calling Sequence:

se, LD

.

.

101 (CUR$USER),A Get·user id Save it

= ====:: = = = = ====

==

===:: == = ====.==== == ===SC =, 02 =CBDD=:: = ===:: =;:

=

= ==:: ::::::

==

= =::

= = =

==

=

======

===================================================================================

Function: Perform console input character translate and escape sequence actionso Input parameters:

-..

-Reg A - Character input Reg IY - Address of UCB Output-parameters:

Description:

Reg A - Character to be used

Flag C - Set if character to be ignored by driver reset otherwise

This system call provides a simple and consistent method for a dev~ce

driver to-make sure that the OASIS system console escape sequences are handled properly. It is advised that all user written device drivers that accept input from a device and that might be attached as' a console device use this system call for each character that is input. (The driver should check to see it it is the console first to improve performanceo)

This system call tests to see it the device is -the conole input device.

If not then the system call is eXited with the carry flag reset. When the device is the console the system call checks to see if there is a SYSTEM.CLASSnn file loaded--if so then the character-is passed to that routine. If not then the character is checked to see if it is part of an escape sequenceo When the I character is part of an escape sequence from the console input device the appropriate action is taken and the carry flag is set before the system call is exited •. ,

Other system calls used: GETSCR (48), CONESC (78) Other registers altered: A .

For an example see the appendix on programing examples.

==============================~====================.================================

SC 103 P01VECT

===================================================================================

Function: To insert an interrupt vector address into the system tablee Input parameters:

Reg A Relative vector number Reg DE - Vector transfer address Output parameters: none

Description:

This system call is used to inform the operating system where an interrupt service routine is located at. It is mandatory that this system call be used for this purpose in a multiuser, multi-memory bank system and it should be used in all other types of systems fo~ convenience and consistency.

The relative vector number in the A register is/a number in the range of 2 - 6 (mode 0) 0 - 7 (mode 1) or 0 - 127 (mode 2), corresponding to the desired priority of the interrupt (mode 1) or the vector number that the

Interrupti~ device will give to the system when it interrupts (mode 0 or 2). The interrupt service routines for the three modes of interrupts are similar except the mode 1 service routine must first poll its device to

, SC 103 PUnBCT - 82 - ' III.CBO Bey B

Other Other

, CB1PDB 7: SYSTIII CALLS determine if it was the device causing the interrupt; 'if not then the routine performs a return without enablipg 'interrupts ,(the system will call the next routine in the ,vector table). The relative' vector number for mode 1 d~termines the "priority" or sequence that- the service routine will be called when an interrupt occurs. ' .

The vector transfer address in the DE register pair'is the address of the interrupt service routine for the vector number in the A register. When the system has multiple memory banks available to it the operating system will keep track of which bank that particular address is in.

system calls used: none registers altered: none Example- Calling Sequence:

LD A 2 Vector number 2

LD DE3INT In~~t interrupt

SC 10 Pu vector,

===================================sc=;o,=oiiBiri==================================

---~---

---

---Function: Transfer byte(s) from another partition space.

Input parameters:

Reg A - Partition identification number of partition to get from Reg BC - Count of bytes to- get

Reg DE - Address of buffer ,to transfer bytes to (your partition) Reg HL - Address of buffer to transfer bytes from (his partition) Output parameters:

Reg BC 0

Reg DE - Address following bytes transferred (your partition) Reg HL - Address followi~ bytes transferred (his partition)

Int~rrupts are disabled Description:

This system call functions similar to an LDIR instruction in a single user 'system.

In a multi-user system this system call allows you to transfer a character or string of . characters from another partition to your partition, even though that other partition may be in different bank of memory.

Note: Upon return from this system call interrupts have been disabled. It is your responsibility to re-enable them if they should be on.

Other system calls used: none Other registers altered: none Example Calling Sequence:

LD LD LD LD SC EI

!J

2 .

HL,5000H DE,4FOOH BC,.20H 10q

From partition two From his location 5000 To my location 4FOO For 32 bytes

Transfer

Enable interrupts

===================================================================================

SC 105 PO'IBrrB

===================================================================================

Function: Transfer byte(s) to another partition space.

HlClO Bev B - 83 - ',- SC 105 PU'lBrrB

lII.elO BBFBIIIICB IID1JAL Other registers altered: none Example Calling Sequence: Other registers altered: none

Example Calling Sequence:

CIIAPDI T: SISDII ~

======================================.=============================================

SC10TVlIUft

===================================================================================

Function: Deactivate current partition until interrupt occurs.

Input parameters: none OUtput parameters: none Description:

This system call is similar to system call 79 (SNU) in that the next user partition. is activated. Unlike SC 79' this system call informs' the operating system that the current partition is not to be activated again' until an interrupt occurs that ·needs this partition to be serviced.

This system call allows greater throughput for a multi~user system in that any partition using it that· is waiting for an event to happen (i.e.

waiting for the operator to type another key) will not waste a lot of cp6 time merely determining that it is still wai tinge

When this system call is used (as it is' in all OASIS supplied device drivers) control will return to the instruction following the call when aAY interrupt occurs from a device attached to this partition. However, the interrupting device may not be the event that was required by your partition. Therefore upon return to your program you should re-check the status of the device that you were waiting for. .

Other system call used: SNU (79) Other registers altered: none

·Example Calling Sequence:

IN: CALL IN1:

JR SC JR

STATUS NZ10

t

IN1

IN

Check status of device Skip if ready

Else deactivate Re-check status

===================================================================================

SC 108 PDDPGM

===================================================================================

Function: Return address of a loaded, re-entrant program.

Input parameters:

Reg DE - Address of program name desired (8 characters) Output parameters:

Description:

Flag Z - Set if found Reset otherwise.

Reg HL - Address of program if found

This system call searches the Re-entrant Program Table (RPB) for a match with the program name specified by the DE register pair. If the program is found in the table the starting address is loaded into the HL register pair, the Z flag is set and the system call exited.

When· the program name specified by the DE register pair is not found in the RPBthe Z flag is reset and the system call is exited.

Other system calls used: COMPARE (93) Other registers altered: none

BelO ley B - 85 - SC 108 PDDPGII

HACHO BBFERIICB HUUlL Example Calling Sequence:

LD SC JR JP NAME: DC

DE

"NAME

fru.rOADIT

100