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 - 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»