$TITLE ('Configuration Module for iSBC-286/10 System Test') /*****************************************************************************\ * * TITLE: Configuration * * DATE: 4\04\84 * * ABSTRACT: This is the configuration module for the * iSBC-286/10 System Test for SDTMON. This * module has been designed to facilitate the * porting of diagnostic software from GPCP * support to SDTMON. * * HISTORY: * 1. Added iSBC215_installed support. * 4/04/84 J. D. Montague * * LANGUAGE DEPENDENCIES: * * PLM86 v2.3 {}.p86 * \*****************************************************************************/ /*****************************************************************************\ * * * Copyright Intel Corporation 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. * * * \*****************************************************************************/ Configuration: DO; $SUBTITLE('Data Declaration Section') /*************************************************************** * * * Literal Data Declarations Section * * * ***************************************************************/ $INCLUDE(sdt286r.dir/inc/intrlev.lit) $INCLUDE(sdt286r.dir/inc/board.lit) /***** Generic literals *****/ DECLARE BOOLEAN LITERALLY 'BYTE', CR LITERALLY '0Dh', LF LITERALLY '0Ah', NULL LITERALLY '0', YES LITERALLY '0FFH', NO LITERALLY '0', TRUE LITERALLY '0FFH', FALSE LITERALLY '0', PASS LITERALLY '0FFH', FAIL LITERALLY '0', /***** GPCP oriented literals *****/ /***** SDTMON oriented literals *****/ HEXFORM LITERALLY '0C3h'; DECLARE IGN LITERALLY '1', REC LITERALLY '0'; /*************************************************************** * * * External Data Declarations Section * * * ***************************************************************/ DECLARE error BOOLEAN PUBLIC; $EJECT /*************************************************************** * * * SDTxxx Test Definition Configuration Section * * * ***************************************************************/ DECLARE num$ts LITERALLY '12', /* Total number of optional */ /* and mandatory tests */ test$def$block (num$ts)STRUCTURE ( flag BYTE, /* RECoginze / IGNore test */ addr POINTER,/* Address of the test */ name$ptr POINTER)/* Address of test description */ PUBLIC DATA( REC, @sq$286R$instr$br, @sq$286R$instr$desc, REC, @sq$286R$LBX_MB$br, @sq$286R$LBX_MB$desc, REC, @sq$286R$proc_intr$br, @sq$286R$proc_intr$desc, REC, @sq$286R$PIC_intr$br, @sq$286R$PIC_intr$desc, REC, @sq$286R$PROM_cks$br, @sq$286R$PROM_cks$desc, REC, @sq$286R$timer$br, @sq$286R$timer$desc, REC, @sq$286R$MPSC$br, @sq$286R$MPSC$desc, REC, @sq$286R$PPI$br, @sq$286R$PPI$desc, REC, @sq$286R$80287$br, @sq$286R$80287$desc, IGN, @sq$286R$MPSC_ext$br, @sq$286R$MPSC_ext$desc, IGN, @sq$286R$MPSC_io$br, @sq$286R$MPSC_io$desc, IGN, @sq$286R$LP$br, @sq$286R$LP$desc); DECLARE td$debug WORD EXTERNAL, td$erronly WORD EXTERNAL, abort WORD, diagnostics WORD; $EJECT /*************************************************************** * * * Sign-on Message and Subtest Titles * * * ***************************************************************/ DECLARE user$signon (*)BYTE PUBLIC DATA( 'System Diagnostic Test - 286R, V1.1',CR,LF, 'Copyright 1983 Intel Corporation',CR,LF,NULL); DECLARE sq$286R$instr$desc (*) BYTE DATA( '80286 Instruction Test',NULL), sq$286R$LBX_MB$desc (*) BYTE DATA( 'iLBX - MULTIBUS address Test',NULL), sq$286R$proc_intr$desc (*) BYTE DATA( 'Processor Interrupt Test',NULL), sq$286R$PIC_intr$desc (*) BYTE DATA( 'PIC/NMI Interrupt Test',NULL), sq$286R$PROM_cks$desc (*) BYTE DATA( 'PROM Checksum Verification',NULL), sq$286R$timer$desc (*) BYTE DATA( '8254 Timer Test',NULL), sq$286R$MPSC$desc (*) BYTE DATA( '8274 Serial Controller Test',NULL), sq$286R$PPI$desc (*) BYTE DATA( 'Parallel Port Test',NULL), sq$286R$80287$desc (*) BYTE DATA( '80287 Test',NULL), sq$286R$MPSC_ext$desc (*) BYTE DATA( 'Extended 8274 Test',NULL), sq$286R$MPSC_io$desc (*) BYTE DATA( '8274 Pass Through Test',NULL), sq$286R$LP$desc (*) BYTE DATA( 'PPI Lineprinter Test',NULL); $EJECT /*************************************************************** * * * Board-Specific Configuration Information * * * ***************************************************************/ DECLARE scratch LITERALLY '6000h', /* Size of user's scratch area. */ first_time LITERALLY 'YES', /* Ask Reset Software questions */ /* when test is booted in. */ /* The interrupt level that the Slave PIC is tied to. */ slave_PIC_level LITERALLY 'MASTER_LEVEL_7', /* The interrupt level that the MPSC (8274) is tied to. */ MPSC_level LITERALLY 'MASTER_LEVEL_6', /* Disable MPSC Port B input testing. */ port_B_disable LITERALLY 'YES', /* The interrupt level that Timer 0 of the 8254 is tied to. */ timer_0_level LITERALLY 'MASTER_LEVEL_0', /* The interrupt level that the ECC error interrupt is tied to. */ ECC_level LITERALLY 'NONMASKABLE', /* The CPU Clock Frequency (4.9 Mhz or 6.0 Mhz) */ CPU_clof LITERALLY 'CPU_CLOF_60', /* True is there is a loopback connector installed on the parallel port */ PPI_loopback LITERALLY 'NO', /* If there is an 80287 installed on the board, indicate TRUE */ have_80287 LITERALLY 'YES', /* If there is an iSBC215 installed on the board, indicate TRUE */ have_iSBC215 LITERALLY 'NO', /* If you want iSBC 215 to be reset when the test is booted in, answer TRUE */ reset_215_on_bootup LITERALLY 'NO', /* Baud rate that the terminal on channel A is running at. */ channel_A_baudrate LITERALLY 'BAUD_9600', /* Baud rate that the terminal on channel B is running at. */ channel_B_baudrate LITERALLY 'BAUD_9600'; $EJECT /*************************************************************** * * * Test-Specific Configuration Information * * * ***************************************************************/ $EJECT /*************************************************************** * * * Mandatory Subroutines * * * ***************************************************************/ Initialize$GPCP$flags: PROCEDURE PUBLIC; abort = false; diagnostics = td$debug AND NOT td$err$only; error = false; END Initialize$GPCP$flags; /*Initialize$GPCP$flags: */ /* Initialize GPCP variables */ /* PROCEDURE EXTERNAL; */ /* not normally used in SDTMON */ /* END Initialize$GPCP$flags;*/ $EJECT /*************************************************************** * * * Mandatory Tests * * * ***************************************************************/ sq$286R$instr: /* 80286 Instruction Test */ PROCEDURE EXTERNAL; END sq$286R$instr; sq$286R$instr$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$instr; RETURN NOT error; END sq$286R$instr$br; sq$286R$LBX_MB: /* iLBX - MULTIBUS address Test */ PROCEDURE EXTERNAL; END sq$286R$LBX_MB; sq$286R$LBX_MB$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$LBX_MB; RETURN NOT error; END sq$286R$LBX_MB$br; sq$286R$proc_intr: /* Processor Interrupt Test */ PROCEDURE EXTERNAL; END sq$286R$proc_intr; sq$286R$proc_intr$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$proc_intr; RETURN NOT error; END sq$286R$proc_intr$br; sq$286R$PIC_intr: /* PIC/NMI interrupt Test */ PROCEDURE EXTERNAL; END sq$286R$PIC_intr; sq$286R$PIC_intr$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$PIC_intr; RETURN NOT error; END sq$286R$PIC_intr$br; sq$286R$PROM_cks: /* PROM checksum verification */ PROCEDURE EXTERNAL; END sq$286R$PROM_cks; sq$286R$PROM_cks$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$PROM_cks; RETURN NOT error; END sq$286R$PROM_cks$br; sq$286R$timer: /* Timer Test */ PROCEDURE EXTERNAL; END sq$286R$timer; sq$286R$timer$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$timer; RETURN NOT error; END sq$286R$timer$br; sq$286R$MPSC: /* MPSC test */ PROCEDURE EXTERNAL; END sq$286R$MPSC; sq$286R$MPSC$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$MPSC; RETURN NOT error; END sq$286R$MPSC$br; sq$286R$PPI: /* PPI test */ PROCEDURE EXTERNAL; END sq$286R$PPI; sq$286R$PPI$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$PPI; RETURN NOT error; END sq$286R$PPI$br; sq$286R$80287: /* 80287 recognition test. */ PROCEDURE EXTERNAL; END sq$286R$80287; sq$286R$80287$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$80287; RETURN NOT error; END sq$286R$80287$br; $EJECT /*************************************************************** * * * Optional Tests * * * ***************************************************************/ sq$286R$MPSC_ext: /* MPSC extended test. */ PROCEDURE EXTERNAL; END sq$286R$MPSC_ext; sq$286R$MPSC_ext$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$MPSC_ext; RETURN NOT error; END sq$286R$MPSC_ext$br; sq$286R$MPSC_io: /* serial I/O passthrough test */ PROCEDURE EXTERNAL; END sq$286R$MPSC_io; sq$286R$MPSC_io$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$MPSC_io; RETURN NOT error; END sq$286R$MPSC_io$br; sq$286R$LP: /* PPI Line Printer test. */ PROCEDURE EXTERNAL; END sq$286R$LP; sq$286R$LP$br: PROCEDURE boolean PUBLIC; CALL Initialize$GPCP$flags; CALL sq$286R$LP; RETURN NOT error; END sq$286R$LP$br; $EJECT /*********************************************************** * * * Non-Configurable Data Area * * * ***********************************************************/ DECLARE user$tdt (num$ts)STRUCTURE ( flag BYTE, overlay BYTE, addr POINTER, name$ptr POINTER, err$cnt WORD, exec$cnt WORD) PUBLIC, user$number$of$tests WORD PUBLIC DATA(num$ts); DECLARE user$scratch (scratch) BYTE PUBLIC, /* User scratch area */ user$scratch$size WORD PUBLIC DATA(scratch); /* *!*!* THE FOLLOWING LITERALS ARE PUT HERE *!*!* */ /* *!*!* SINCE CURRENTLY THEY ARE IN NO WAY *!*!* */ /* *!*!* TO BE CHANGED. THEY ARE PUT IN TO *!*!* */ /* *!*!* ALLOW FOR FUTURE CHANGES. *!*!* */ DECLARE system_clof LITERALLY '1', /* Onboard timer frequency: */ /* 0 = 153.6 KHz. */ /* 1 = 1.23 MHz. */ /* 2 = 2.46 MHz. */ system_timer LITERALLY '0', /* Onboard timer to be used for */ /* the fail/safe timer. */ system_timer_intr LITERALLY '0', /* Interrupt connected to timer */ /* specified in cpu_timer. */ system_base_port LITERALLY '0C0H'; /* System processer board */ /* base port. */ /* And finally the configuration variables */ DECLARE pq$first_time$init BOOLEAN PUBLIC DATA(first_time), pq$286R$slave_PIC_level$init BYTE PUBLIC DATA(slave_PIC_level), pq$286R$MPSC_level$init BYTE PUBLIC DATA(MPSC_level), pq$286R$port_B_disable$init BOOLEAN PUBLIC DATA(port_B_disable), pq$286R$timer_0_level$init BYTE PUBLIC DATA(timer_0_level), pq$286R$ECC_level$init BYTE PUBLIC DATA(ECC_level), pq$286R$CPU_clof$init BYTE PUBLIC DATA(CPU_clof), pq$286R$PPI_loopback$init BOOLEAN PUBLIC DATA(PPI_loopback), pq$286R$80287_installed$init BOOLEAN PUBLIC DATA(have_80287), pq$286R$have_iSBC215$init BOOLEAN PUBLIC DATA(have_iSBC215), pq$286R$reset_215_on_bootup$init BOOLEAN PUBLIC DATA(reset_215_on_bootup), baud_count$init (2) WORD PUBLIC DATA( channel_A_baudrate, channel_B_baudrate), pq$286Rsystem_clof$init BYTE PUBLIC DATA( system_clof ), pq$286R$system_timer$init BYTE PUBLIC DATA( system_timer ), pq$286R$system_timer_intr$init BYTE PUBLIC DATA( system_timer_intr ), pq$286R$system_base_port$init WORD PUBLIC DATA( system_base_port ); /*********************************************************** * End of Configuration Module * ***********************************************************/ END Configuration;