ASMB,L NAM TESEG 12824-1X054 REV.2026 800506 ENT TESEG EXT .ESEG,.ENTR,$LIBR,$LIBX,$DVPT ************************************************************** * * NAME: TESEG * SOURCE: 12824-18053 * RELOC: PART OF 12824-16002 * PGMR: CG * * *********************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE * * * WITHOUT THE PRIOR CONSENT OF HEWLETT-PACKARD COMPANY. * * *********************************************************** * ************************************************************** XIDEX EQU 1645B * IERR BSS 1 TESEG NOP JSB .ENTR GET ADDRESSES DEF IERR CLA INITIALIZE ERROR COUNT STA ERROR * ******************************************************************** * * CALL .ESEG WITH #MAPS < 0 * CLA SET FIRST MAP = 0 CCB SET #MAPS = -1 JSB .ESEG DEF RTN1 DEF TABL1 RTN1 JSB ABCHK TEST A & B REGISTERS ISZ ERROR ERROR IF RETURNS HERE * ******************************************************************** * * CALL .ESEG WITH #MAPS > MSEG SIZE * CLA SET FIRST MAP = 0 LDB =D3 SET #MAPS = 3 JSB .ESEG DEF RTN2 DEF TABL1 RTN2 JSB ABCHK TEST A & B REGISTERS ISZ ERROR ERROR IF RETURNS HERE * ********************************************************************* * * CALL .ESEG BY A NON-EMA PROGRAM * LDA XIDEX SAVE IDEX ADDR STA IDEX IN IDEX JSB $LIBR GO PRIVILEGED NOP CLA CLEAR IDEX ADDR STA XIDEX * CLB,INB SET #MAPS = 1 JSB .ESEG DEF RTN3 DEF TABL1 RTN3 JSB ABCHK CHECK A & B REGISTERS ISZ ERROR ERROR IF RETURNS HERE * LDA IDEX RESTORE IDEX ADDR STA XIDEX JSB $LIBX GO UN-PRIVILEGED DEF *+1 DEF *+1 * ******************************************************************** * * NORMAL CALL * LDA XMAP1 SAVE USER MAPS IOR =B100000 IN MAP1 USA * CLA SET FIRST MAP = 0 LDB =D2 SET #MAPS = 2 JSB .ESEG LOAD MSEG MAPS DEF RTN4 DEF TABL1 RTN4 ISZ ERROR ERROR IF RETURNS HERE * LDA XMAP2 SAVE NEW USER MAPS IOR =B100000 IN MAP2 USA * * CALCULATE WHAT THE NEW USER MAP SHOULD BE * ISZ IDEX POINT TO 2ND WORD OF IDEX XLA IDEX,I AND =B1777 SET A = PHYS START PAGE OF EMA STA SPEMA SAVE IN SPEMA XLA IDEX,I AND =B174000 SET A = LOG. START PAGE MSEG ALF,RAL ADA XMAP1 SET A = BUFFER ADDR STA 1 SET B = BUFFER ADDR LDA SPEMA SET A = 1ST PHYS PAGE STA 1,I STORE IN MAP1 BUFFER ADA TABL2 SET A = 2ND PHYS PAGE IOR =B140000 SET RD,WRT PROTECT BITS INB INC BUFFER ADDR STA 1,I STORE IN MAP1 BUFFER * JSB COMP COMPARE MAP BUFFERS SKP * * POINT 1ST DRIVER PARTITION MAP TO USER BASE PAGE * CLB,INB SET B = 1 CBX SET X = 1 (MAP) XLA $DVPT SET A = DRIVER PARTITION ADA =B40 POINT TO USER MAP LDB XMAP1 POINT B TO USER BASE PAGE MAP * JSB $LIBR GO PRIVILEGED NOP XMM LOAD THE MAP * * MOVE COPY OF MAPS ON BASE PAGE TO 2ND BUFFER * XLA $DVPT SET A = DRIVER PARTITION ALF,ALF MULTIPLY BY 2000B RAL,RAL ADA =B1740 SET A = MAPS ADDRESS LDB XMAP2 SET B = 2ND BUFFER MVW =D32 MOVE TO 2ND BUFFER * JSB $LIBX GO UN-PRIVILEGED DEF *+1 DEF *+1 * JSB COMP COMPARE MAP BUFFERS * ********************************************************************** * * RETURN ERROR COUNT * OK2 LDA ERROR STA IERR,I JMP TESEG,I RETURN * ******************************************************************** SKP ******************************************************************** * COMP NOP * * FIRST ZERO OUT DRIVER PARTITION MAPS IN BOTH BUFFERS * CLA SET A = 0 XLB $DVPT SET B = DRIVER PARTITION MAP ADB XMAP1 POINT TO 1ST BUFFER STA 1,I ZERO BUFFER MAP INB POINT TO 2ND MAP STA 1,I ZERO BUFFER MAP * XLB $DVPT SET B = DRIVER PARTITION MAP ADB XMAP2 POINT TO 2ND BUFFER STA 1,I ZERO BUFFER MAP INB POINT TO 2ND MAP STA 1,I ZERO BUFFER MAP * * NOW COMPARE MAP BUFFERS * LDA XMAP1 POINT A TO 1ST BUFFER LDB XMAP2 POINT B TO 2ND BUFFER CMW =D32 COMPARE 32 MAPS JMP COMP,I OK,RETURN ISZ ERROR ERROR IF RETURNS HERE ISZ ERROR ERROR IF RETURNS HERE JMP COMP,I ERROR RETURN * ******************************************************************** * ABCHK NOP CPA ASC21 TEST A REGISTER RSS OK (NO SKIP) JMP ABCHK,I ERROR RETURN CPB ASCEM TEST B REGISTER RSS OK (NO SKIP) JMP ABCHK,I ERROR RETURN ISZ ABCHK SET OK RETURN JMP ABCHK,I RETURN * ASC21 ASC 1,21 ASCEM ASC 1,EM * ******************************************************************** SKP IDEX BSS 1 ERROR BSS 1 TABL1 OCT 0 TABL2 OCT 100 XMAP1 DEF MAP1 MAP1 BSS 32 XMAP2 DEF MAP2 MAP2 BSS 32 SPEMA BSS 1 * END