|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5430 (0x1536)
Types: TextFile
Names: »INTRPT.I«
└─⟦e0c43619c⟧ Bits:30005797 CR80 Disc pack ( Vol:FNJ1 861029/EC CR80 S/W Package II+III+IV+V+VII )
└─⟦this⟧ »CSP007_V0501.D!CSS7000.D!INTRPT.I«
%LIST %LIST %LIST
"-----------------------------------------------------------------------
"
" MODULE NAME: TPE Interrupt Module
" MODULE ID NMB: CSS/7000
" MODULE VERSION: 03
" MODULE RELEASE: 01
" RELEASE DATE: 850910
"
"-----------------------------------------------------------------------
%NOLIST %NOLIST %NOLIST
type
activation =
( delayed,
immediate );
import var
local_action_context : cpu_context;
local_action_info : array [0..2] of integer;
IMPORT PROCEDURE
define_interrupt_handler
"======================"
(r0; " C K interrupt identification
" (= 'crate number' shiftll 10 + 'device number')
r1; " C K location of interrupt handler procedure
r2; " C K immediate/delayed interrupt handling
r6); " C D link
"--------------------------------------------------------------------
" This procedure defines an interrupt handler procedure to be activated
" when an interrupt is received from the identified interrupt source.
" If r2 = 'immediate' the interrupt handler is activated immediately
" when the interrupt is received, otherwise
" the interrupt handler is activated when the test program
" explicitly waits for it, even when the CPU is open for interrupts,
" these are by the TPE queued until the test program issues a wait
" call.
"
" Note: 'Immediate' interrupt handling is intended for internal TPE
" usage (Real Time Clock management).
"--------------------------------------------------------------------
IMPORT PROCEDURE
clear_interrupt_handler
"====================="
(r0; " C K interrupt identification
r6); " C D link
"--------------------------------------------------------------------
" This procedure disables the interrupt handling procedure as
" installed by a 'define_interrupt_handler'. After the execution
" of this procedure, interrupts from the specified source will
" simply be ignored. At program initialization this is the case
" for all interrupt sources.
"--------------------------------------------------------------------
IMPORT PROCEDURE
define_local_action_handler
"========================="
(r0; " C K local action cause
" 0 = fast timer interrupt
" 1 = illegal instruction
" 2 = parity error
" 3 = timeout
" 4 = bound violation
" 5 = trace interrupt
r1; " C K location of local action procedure
r6); " C D link
"--------------------------------------------------------------------
" This procedure is similar to the 'define interrupt handler' procedure.
" It supports the connection of individual procedures to the various
" types of local actions.
"--------------------------------------------------------------------
IMPORT PROCEDURE
clear_local_action_handler
"========================"
(r0; " C K local action cause
r6); " C D link
"--------------------------------------------------------------------
" This procedure disables the local action handler for the specified
" local action cause. After execution of this procedure a standard
" handling of local actions is performed by the TPE. This is the
" situation after program initialization.
"--------------------------------------------------------------------
IMPORT PROCEDURE
issue_pseudo_interrupt
"===================="
(r0; " C K interrupt identification
r6); " C D link
"--------------------------------------------------------------------
" This procedure generates an (artificial) interrupt. With this
" procedure it is possible for the TPE (or a test program directly)
" to issue an interrupt on behalf of a device.
"
" This procedure is mainly intended for internal TPE use (for
" generating RTC pseudo interrupts).
"--------------------------------------------------------------------
IMPORT PROCEDURE
schedule_next_interrupt
"====================="
(r6); " C link
" R interrupts handled (0 or 1)
"--------------------------------------------------------------------
" This procedure scans through the descriptors for arrived interrupts
" and activates the handler procedure of the first one met in the scan.
"--------------------------------------------------------------------
IMPORT PROCEDURE
interrupt_processor
"================="
(r6); " - - dummy link parameter
"--------------------------------------------------------------------
" This is the procedure to be activated by firmware at interrupt.
"--------------------------------------------------------------------
IMPORT PROCEDURE
local_action_processor
"===================="
(r6); " - - dummy link parameter
"--------------------------------------------------------------------
" This is the procedure to be activated by firmware at local action.
"--------------------------------------------------------------------
IMPORT PROCEDURE
init_interrupt_module
"==================="
(r6); " C D link
"--------------------------------------------------------------------
" This procedure initializes the interrupt module by setting up
" default interrupt and local action tables so that all interrupts and local
" actions are served by default handlers that are part of the interrupt
" module.
"
" Note: This procedure is only to be used by the TPE itself.
"--------------------------------------------------------------------
" end if INTRPT.I «a5»