ASMB,A,B,L,C HED XBBDL 91700-16161 * (C) HEWLETT PACKARD CO. 1976 ORG 0 SPC 2 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 2 ************************************************************** * NAME: XBBDL * SOURCE TAPE: 91700-16161 REV A * ABS TAPE: 91700-16161 REV. A * PROGRAMMER: BOB SHATZER * DATE WRITTEN: 03/12/75 * DATE MODIFIED: 29 DEC 1975 ************************************************************** * * THIS PROGRAM CONFIGURES AND INSTALLS THE BBDL IN THE * PROTECTED AREA OF CORE FOR 4,8,12,16,24, AND 32K CPU'S. * * OPERATING INSTRUCTIONS: * * 1. LOAD (OR DOWN-LOAD) THIS PROGRAM USING THE BBL, BBDL, * SCE/1, OR SCE/2. * * 2. SET THE SWITCH REGISTER AS FOLLOWS: * NOTE - A ZERO IN ANY FIELD WILL RESULT IN THE FOLLOWING * CONFIGURATION: * READER 16 * DISC 21 * SUBCHANNEL 0 * * SWITCHES SET TO * """""""" """""" * * 5-0 SELECT CODE OF PHOTOREADER * * 6-11 SELECT CODE OF DISC (LOWER) * * 14-12 1 FOR 8K CPU * 2 FOR 12K CPU * 3 FOR 16K CPU * 5 FOR 24K CPU * 7 FOR 32K CPU * * 15 SUBCHANNEL OF SYSTEM DISC * (0 FOR LOWER AND 1 FOR UPPER) * * ALL OTHER SWITCHES MUST BE SET TO 0. * * 3. SET P REGISTER TO 2B (STARTING ADDRESS). * * 4. PRESS 'INTERNAL PRESET', 'EXTERNAL PRESET', 'LOADER * ENABLE', AND 'RUN'. * * 5. HLT 77B INDICATES SUCCESSFUL INSTALLATION. * * HLT 22B INDICATES AN INVALID SWITCH REGISTER SETTING: * - INVALID CPU SIZE * - EXTRANEOUS SWITCHES * SKP B EQU 1 * ORG 2B * JMP 3,I DEF START HLT 4B POWER FAIL HALT * ORG 100B * START CLC 0,C TURN OFF EVERYTHING LIA 1 GET SWITCH REGISTER AND B77 GET SELECT CODE OF READER SZA,RSS IS SELECT CODE ZERO? LDA B16 YES - SET IT TO 16 STA PCHAN AND SAVE IT LIA 1 GET SWITCH REGISTER AGAIN ELA,RAL ROTATE BIT 15 TO E ALF,ALF AND BITS 6-11 TO LOW WORD AND B77 ISOLATE SELECT CODE SZA IS DISC SELECT CODE ZERO? JMP *+3 NO LDA B21 YES - SET IT TO 21 CLE AND SET DISC SUBCHANNEL TO 0 STA DCHAN AND SAVE IT AS DISC SELECT CODE CLA,CME CHANGE DISC SUBCHANNEL BIT FOR HDWE ELA,RAL AND ROTATE IT INTO POSITION ALF,ALF IOR G30 INCL OR WITH SEEK WORD VALUE STA SEEKA,I AND SAVE IT LIA 1 AND G70 GET CPU SIZE CPA G40 JMP HLT22 20K NO GOOD CPA G60 JMP HLT22 28K NO GOOD SZA,RSS IS MEM SIZE 0? LDA G70 YES - SET IT TO 32K IOR C77 FORM FWBBL STA FWBBL CMA,INA NEGATE FOR MEM-PROTECT CONSTANT STA .MS,I * LDB IOTBP GET DEF TO READER I/O TABLE LDA PCHAN AND READER SELECT CODE JSB CONFG CONFIGURE READER I/O LDB IOTBD GET DISC DATA CHANNEL I/O TABLE LDA DCHAN AND ITS SELECT CODE JSB CONFG GO CONFIGURE THAT LDB IOTBC GET COMMAND CHANNEL I/O TABLE LDA DCHAN GET DATA CHANNEL S/C INA BUMP IT TO GET COMMAND CHANNEL JSB CONFG GO CONFIGURE THAT TOO * LDB .GO MOVE1 LDA B,I STA FWBBL,I ISZ FWBBL INB CPB .ENDR FINISHED ? JMP HLT77 YES. JMP MOVE1 NO. LOOP. * HLT22 HLT 22B INVALID SWITCH SETTINGS RSS HLT77 HLT 77B INSTALLATION COMPLETED. JMP 3,I RESTART * CONFG NOP I/O CONFIGURATION ROUTINE STB T2 STA CHAN CNFG1 LDB T2,I CONFIGURE THE I/O INSTRUCTIONS SZB,RSS JMP CONFG,I FINISHED. LDA B,I SSA,RSS SIMPLE I/O INSTRUCTION TEST HLT 63B NOT I/O INSTRUCTION XOR CHAN AND B77 XOR B,I STA B,I STORE CONFIGURED INSTRUCTION ISZ T2 JMP CNFG1 * .GO DEF LOAD .ENDR DEF ENDR .MS DEF MAXAD PCHAN NOP DCHAN NOP CHAN NOP T2 NOP B16 OCT 16 B21 OCT 21 B77 OCT 77 G70 OCT 70000 G30 OCT 30000 G40 OCT 40000 G60 OCT 60000 C77 OCT 7700 FWBBL NOP SEEKA DEF SEEKC * IOTBP DEF *+1 PHOTOREADER I/O TABLE DEF RDCH+2 DEF RDCH+3 DEF RDCH+5 NOP TERMINATES TABLE * IOTBD DEF *+1 DISC DATA CHANNEL I/O TABLE DEF D.1 DEF D.2 DEF D.3 DEF D.4 DEF DMACW NOP * IOTBC DEF *+1 DISC COMMAND CHANNEL I/O TABLE DEF C.1 DEF C.2 DEF C.3 DEF C.4 DEF C.5 DEF C.6 DEF C.7 NOP * HED BBDL CODE * (C) HEWLETT PACKARD CO. 1976 ORG 3700B SITUATE FOR TRANSPORTABILITY * RDR EQU 16B * LOAD CLA,RSS EOBLK LDA EOTC TRAILER LENGTH LEADR CLC 0,C LEAVE CLEAN ON EXIT CCE,INA,SZA,RSS HLT 77B END OF TAPE JSB RDCH READ A CHAR CMB,CCE,INB,SZB,RSS IS IT WORD COUNT? JMP LEADR NO STB COUNT SAVE WDCOUNT JSB RDCH THROW AWAY ONE FRAME JSB RDCH READ START ADDRESS STB 0 INITIALIZE CKSUM LOOP STB ADDR SET POINTER ADB MAXAD VALIDATE LOAD ADDRESS SEZ,CLE LOADER CLOBBERED? ADDR2 HLT 55B YES TELL USER JSB RDCH FETCH DATA WORD EOTC STB ADDR,I PLANT WORD IN CORE ADA 1 TALLY CKSUM LDB ADDR CLE,INB ISZ COUNT END OF BLOCK JMP LOOP NOT YEST JSB RDCH READ CKSUM CPB 0 VALID? JMP EOBLK YES ADDR1 HLT 11B NO-CKSUM ERROR COUNT NOP MAXAD NOP RDCH NOP READ FRAME(2 IF E IS CLEAR) CLB STC RDR,C START READER SFS RDR MSK1 JMP *-1 USED BY DISC BOOT MIB RDR,C SEZ,CME READ ANOTHER CHAR? JMP RDCH,I NO,EXIT WITH E CLEAR BLF,BLF SET FOR SECOND CHAR JMP RDCH+2 * ADDR NOP DC EQU 21B CC EQU DC+1 * SEEKC OCT 30000 SUBCHAN=1 (OCT 31000=SUBCHAN 0) LDB MSK1 C.1 OTB CC ISSUE READ COMMAND C.2 STC CC,C START READ TO CLEAR 1ST STATUS LDA SEEKC D.1 OTA DC ISSUE CYLINDER ADDRESS (0) D.2 STC DC,C TELL CTRL CYL ADDRESS LOADED C.3 OTA CC ABORT READ,SEND SEEK COMMAND C.4 STC CC,C START SEEK LDA DMACW OTA SIX ISSUE DMA CONTROL WD LDA ADDR1 OTA TWO ISSUE START CORE ADDRESS(2011B) D.3 STC DC,C TELL CNTL HEAD/SECT LOADED STC TWO SET FOR WORD COUNT OTA TWO ISSUE WD COUNT (HUGE) C.5 OTB CC ISSUE READ COMMAND D.4 STC DC,C PREVENT SPURIOUS DMA XFER STC SIX,C START DMA C.6 STC CC,C START DISK READ C.7 SFS CC WAIT FOR DISC XFER (6144 WDS) JMP *-1 JSB ADDR2,I DONE-JMP INTO CODE (2055B,I) * DMACW ABS 120000B+DC ENDR BSS 0 * TWO EQU 2 SIX EQU 6 * END