DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3a36d8512⟧ TextFile

    Length: 5430 (0x1536)
    Types: TextFile
    Names: »INTRPT.I«

Derivation

└─⟦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« 

TextFile


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