$ TITLE ('User-alterable configuration parameters') /****************************************************************************** * * TITLE: SDT309 Configuration Module * * DATE: May 24, 1982 * * ABSTRACT: This module contains the user-alterable configuration * parameters. * * LANGUAGE DEPENDENCIES: [sdt309.dir/src/9config.p86] * * ******************************************************************************/ /*****************************************************************************\ * * * Copyright Intel Corporation 1982, 1983 * * All rights reserved. No part of this program or publication may be * * reproduced, transmitted, transcribed, stored in a retrieval system, or * * translated into any language or computer language, in any form or by any * * means, electronic, mechanical, magnetic, optical, chemical, manual or * * otherwise, without the prior written permission of Intel Corporation, * * 3065 Bowers Avenue, Santa Clara, California, 95051, Attention: Software * * License Administration. * * * \*****************************************************************************/ sq$configuration$module: DO; /* Declarations of external tests and their descriptions */ /* Test 0 */ sq$interrupt_verification: PROCEDURE BYTE EXTERNAL; END sq$interrupt_verification; /* Test 1 */ sq$exception_conditions: PROCEDURE BYTE EXTERNAL; END sq$exception_conditions; /* Test 2 */ sq$physical_addresses: PROCEDURE BYTE EXTERNAL; END sq$physical_addresses; /* Test 3 */ sq$memory_bounds: PROCEDURE BYTE EXTERNAL; END sq$memory_bounds; /* Test 4 */ sq$memory_access: PROCEDURE BYTE EXTERNAL; END sq$memory_access; /* Test 5 */ sq$DMA_IO_operation: PROCEDURE BYTE EXTERNAL; END sq$DMA_IO_operation; /* SDTMON's table of where to find the tests, as well as the location of the * ignore/recognize flag, error count and execution count. */ DECLARE nr$tests LITERALLY '6'; DECLARE user$tdt (nr$tests) STRUCTURE (flag BYTE, /* Ignore/recognize flag */ overlay BYTE, /* Not used - must be zero */ addr POINTER, /* Address of test code */ name$ptr POINTER, /* Address of test description string */ err$cnt WORD, /* Number of times the test failed */ exec$cnt WORD) /* Number of test executions */ PUBLIC INITIAL ( /* tst flg ovl address desc errs exec */ /* 0 */ 0, 0, @sq$interrupt_verification, @sq$intrpt_desc, 0, 0, /* 1 */ 0, 0, @sq$exception_conditions, @sq$except_desc, 0, 0, /* 2 */ 0, 0, @sq$physical_addresses, @sq$physical_desc, 0, 0, /* 3 */ 0, 0, @sq$memory_bounds, @sq$bounds_desc, 0, 0, /* 4 */ 0, 0, @sq$memory_access, @sq$access_desc, 0, 0, /* 5 */ 0, 0, @sq$DMA_IO_operation, @sq$DMA_desc, 0, 0); DECLARE sq$intrpt_desc (*) BYTE DATA('INTERRUPT PROCESSING', 0), sq$except_desc (*) BYTE DATA('EXCEPTION CONDITIONS', 0), sq$physical_desc (*) BYTE DATA('PHYSICAL ADDRESS VERIFICATION', 0), sq$bounds_desc (*) BYTE DATA('MEMORY BOUNDS', 0), sq$access_desc (*) BYTE DATA('MEMORY ACCESS', 0), sq$DMA_desc (*) BYTE DATA('DMA I/O OPERATION', 0); /* * Variable to tell SDTMON how many tests there are. */ DECLARE user$number$of$tests WORD PUBLIC DATA (nr$tests); $ EJECT /****************************************************************************** * * User$reset$hardware configuration parameters * ******************************************************************************/ DECLARE /* Board strapped for allowing user mode I/O; true (0ffh) or [false (0)] */ sq$user_IO BYTE PUBLIC INITIAL (0), /* Number of processes the board is strapped for: 2, 4, [8], 16 or 32 */ sq$nr_processes BYTE PUBLIC INITIAL (8), /* This structure contains information used in the memory mapping. * Usage is as follows: * ::= * (32/sq$nr_processes) * ::= + * * Fields: * physical_page - the first physical page of the current block * (subsequent pages are contiguous) * * nr_pages - number of pages in this block to be mapped (any pages in * excess of this number will be mapped to block 0 as NO ACCESS, * and will not be accessed by the tests) * */ sq$memory_map (32) STRUCTURE (physical_page WORD, nr_pages WORD) PUBLIC DATA ( /* process 0 */ 0, 32, /* block 0 - always reserved */ 32, 32, /* block 1 */ 64, 32, /* block 2 */ 96, 32, /* block 3 */ /* process 1 */ 0, 32, /* block 0 - reserved */ 41, 32, /* block 1 */ 73, 32, /* block 2 */ 105, 32, /* block 3 */ /* process 2 */ 0, 32, /* block 0 - reserved */ 50, 32, /* block 1 */ 82, 32, /* block 2 */ 114, 32, /* block 3 */ /* process 3 */ 0, 32, /* block 0 - reserved */ 59, 32, /* block 1 */ 91, 32, /* block 2 */ 123, 32, /* block 3 */ /* process 4 */ 0, 32, /* block 0 - reserved */ 68, 32, /* block 1 */ 100, 32, /* block 2 */ 132, 32, /* block 3 */ /* process 5 */ 0, 32, /* block 0 - reserved */ 77, 32, /* block 1 */ 109, 32, /* block 2 */ 141, 32, /* block 3 */ /* process 6 */ 0, 32, /* block 0 - reserved */ 86, 32, /* block 1 */ 118, 32, /* block 2 */ 150, 32, /* block 3 */ /* process 7 */ 0, 32, /* block 0 - reserved */ 95, 32, /* block 1 */ 127, 32, /* block 2 */ 159, 32 /* block 3 */ ), /* Specifies the highest-numbered page (pages are 2K each) of contiguous * RAM in the system. If this variable is initialized to zero, the * default is calculated by checking RAM in 2K increments and setting its * value when non-existent (or ROM) memory is encountered. Otherwise, the * value it contains will be used as the highest page in RAM (unless it * specifies more memory than actually exists, in which case the actual * value used will be calculated as above). */ sq$page_limit WORD PUBLIC INITIAL (0), /* Defines the base port address for the 8253 PIT. */ sq$timer_port WORD PUBLIC INITIAL (00D0H), /* PIC interrupt level associated with the interval timer * (0, 1, [2], 3, 4, 5, 6, 7). */ sq$interrupt_level BYTE PUBLIC INITIAL (2), /* Which counter is in use on the timer ([0] or 1; 2 reserved for USART). */ sq$counter BYTE PUBLIC INITIAL (0), /* The clock frequency of the timer (0 = 153.6kHz or [1 = 1.23MHz]). */ sq$timer_clock BYTE PUBLIC INITIAL (1); END sq$configuration$module;