ASMB,R,L,C * NAME: DC.. * SOURCE: 92064-18043 * RELOC: 92064-16017 * PGMR: G.L.M. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. 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. * * *************************************************************** * * NAM DC..,7 92064-16017 REV.1650 760802 * EXT CLD.R,.P1,.P2,.P3,.P4,.P5,LODCB,WRITF EXT .ENTR,$CDIR,.DRCT,PMOVE,.PDCV * ENT DC.. SPC 2 CNT NOP LST NOP ER NOP * DC.. NOP JSB .ENTR FETCH CALL DEF CNT PARMS * ISZ LST ADVANCE PAST FLAG WORD LDA LST,I FETCH LU SSA,RSS -LU ONLY,CART REF JMP ER10 NOT ALLOWED * STA .P2 SET FOR CALL TO D.R LDA XEQT SET PROG ID STA .P4 FOR LOCK LDA .11 SET FUNCTION STA .P1 CODE FOR MASTER LOCK * * CALL TO D.R SETUP * SO GO REQUEST MASTER LOCK * JSB CLD.R CALL D.R LDA B,I FETCH ERROR PARAMETER SZA OK? JMP EREX NOPE--EXIT(ERROR CODE IN A) * * * NOW GO LOCK REQUESTED UNIT * LDA .3 FETCH CARTRIDGE LOCK CODE STA .P1 SAVE FOR D.R JSB CLD.R LDA B,I ANY ERRORS ? SZA OK? JMP ELOK YES--GO CLEAR MASTER LOCK STA .P4 CLEAR LOCK ID PARM(THIS VALUE IS SET AS LOCK) * ADB .2 ADVANCE RETURN PARM ADDRESS(POINT AT DIRECTORY ADDR) LDB B,I FETCH CART DIR ADDR OF NEXT ENTRY * * THIS LOCATION IS REQUESTED LU+4 * STB .P5 SAVE IN TEMP * * CLEAR WORD 1 OF DIRECTORY HEADER--CLEAR IT FOR USE * ADB N2 BACK UP DIRECTORY ADDRESS LDB B,I FETCH THAT ADDRESS ADB N3 NOW BACK UP TO "ASSIGNED" WORD CLA USE A REG AS FROM ADDRESS JSB PMOVE GO PRIV AND CLEAR IT OCT 1 * LDB .P5 RESTORE POINTER TO CARTRIDGE DIRECTORY * * FETCH DIRECT ADDRESS OF CARTRIDGE DIRECTORY * (B) IN NOT CHANGED * JSB .DRCT DEF $CDIR ADA N1 BACKUP TO END OF SEARCH WORD LDA A,I WORD AND FETCH IT STA CNT SAVE STOP ADDRESS CPA B IF CARTRIDGE TO BE DISMOUNTED IS LAST, JMP CLR SKIP CLOSE UP OF GAP * * CALCULATE TO,FROM AND LEGNTH WORDS FOR * MOVE(CLOSE UP GAP) * * A=STOP ADDRESS, B=NEXT DIR ADDRESS * CMB,INB SET NEXT ADDR NEGATIVE ADA B ADD TO END OF TABLE STA LN1 SAVE LEGNTH FOR MOVE CMB,INB SET NEXT ADDR POSITIVE LDA B SET "FROM" ADDRESS ADB N4 CALCULATE "TO" ADDRESS * JSB PMOVE GO PRIV AND CLOSE UP GAP LN1 NOP # OF WORDS TO MOVE * * CLEAR LAST ENTRY IN TABLE * CLR LDA ZBUF FETCH FROM ADDRESS(4 NOP'S) LDB CNT CALCULATE "TO" ADDRESS ADB N4 (END OF SEARCH -4) JSB PMOVE GO PRIV AND MOVE IT IN .4 OCT 4 * * CARTRIDGE ENTRY CLEARED AND * POSSIBLE GAP HAS BEEN CLOSED * LDA LST,I FETCH LU AGAIN CMA,INA MAKE IT POS JSB .PDCV GO CONVERT IT TO DEC ASCII * STA LU AND SET IT FOR MESSAGE * JSB WRITF DEF ELOK DEF LODCB DEF ER,I DEF DCMES DEF .14 * * ELOK STA ER,I SET ERROR CODE * CLA STA .P2 CLEAR CR/LU WORD LDA .11 STA .P1 RESET CODE FOR MASTER LOCK SET/CLEAR JSB CLD.R GO CLEAR IT JMP DC..,I ER10 LDA .10 BAD INPUT ERROR EREX STA ER,I SET ERROR RETURN JMP DC..,I EXIT * N2 OCT -2 N3 OCT -3 SKP .2 OCT 2 .3 OCT 3 .10 DEC 10 .11 DEC 11 .14 DEC 14 N1 OCT -1 N4 OCT -4 * * DON'T CHANGE THIS ZBUF DEF *+1 NOP NOP NOP NOP * DCMES ASC 13,CARTRIDGE DISMOUNTED > LU LU NOP * XEQT EQU 1717B A EQU 0 B EQU 1 LEN EQU * END