ASMB,R,L,C,B HED ISA S61.1 EXEC AND BIT ROUTINES 09610-60025 REV. B * * SOURCE TAPE - 09610-80025 REV. B * RELOC. TAPE - 09610-60025 REV. B * * * NAM EX.BT,7 09610-60025B 092275 ENT IEOR,ISHFT,START,TRNON,WAIT EXT .ENTR,EXEC SUP SPC 3 OP1 NOP 1ST OPERAND OP2 NOP 2ND OPERAND IEOR NOP JSB .ENTR DEF OP1 LDA OP1,I FETCH 1ST NUMBER XOR OP2,I PERFORM EXCLUSIVE OR JMP IEOR,I RETURN SPC 3 OP3 NOP NUMBER TO BE SHIFTED NUM NOP NUMBER OF SHIFTS ISHFT NOP JSB .ENTR FETCH PARAMETER DEF OP3 ADDRESSES LDA OP3,I FETCH LDB NUM,I PARAMETER VALUES SSB,RSS IF POSITIVE JMP LSHFT GO TO LEFT SHIFT * * RIGHT SHIFT RSHFT CLE,ERA SHIFT RIGHT ONE PLACE INB,SZB IF AT END JMP RSHFT CONTINUE, OTHERWISE JMP ISHFT,I RETURN * * LEFT SHIFT LSHFT CMB,RSS IF ZERO NO SHIFT LSHF1 CLE,ELA LEFT SHIFT ONE PLACE INB,SZB IF NOT FINISHED JMP LSHF1 CONTINUE, OTHERWISE JMP ISHFT,I RETURN SKP NAM NOP MULT NOP RESL NOP ERR NOP START NOP JSB .ENTR FETCH PARAMETER DEF NAM ADDRESSES CLA,INA ASSUME NO STA ERR,I ERROR (ERR=1) LDA MULT,I FETCH TIME MULTIPLE LDB RESL,I AND RESOLUTION JSB TIME CONVERT TO RTE STANDARDS JMP IMMED IF MULT<0 SCHED IMMEDIATE JSB EXEC SCHEDULE DEF *+6 PROGRAM DEF B1014 WITH DEF NAM,I TO EXECUTE DEF RESL ONCE WITH DEF ZERO OFFSET DEF MULT SPC 1 JSB BERR BUMP ERROR FLAG IF ERROR JMP START,I SPC 3 IMMED JSB EXEC SCHEDULE DEF *+3 PROGRAM DEF B1010 IMMEDIATELY DEF NAM,I SPC 1 ISZ ERR,I BUMP ERROR FLAG IF ERROR JMP START,I * * BERR NOP LDA 1 GET ERROR MESSAGE AND C7 CONVERT TO OCTAL ADA ERR,I ADD TO EXISTING VALUE STA ERR,I JMP BERR,I AND EXIT * * SKP MULT1 NOP RESL1 NOP ERR1 NOP WAIT NOP JSB .ENTR FETCH PARAMETER DEF MULT1 ADDRESSES CLA,INA ASSUME NO STA ERR1,I ERROR (ERR1=1) LDA MULT1,I FETCH MULTIPLE LDB RESL1,I AND RESOLUTION JSB TIME CONVERT TO RTE STANDARDS JMP WAIT,I NO WAIT SO RETURN SPC 1 JSB EXEC SUSPEND DEF *+6 CALLING DEF B1014 DEF ZERO PROGRAM DEF RESL FOR DEF ZERO SPECIFIED DEF MULT TIME SPC 1 RSS SKIP IF ERROR JMP WAIT,I LDA 1 CONVERT RTE ERROR TO ISA AND C7 ADA ERR1,I STA ERR1,I JMP WAIT,I AND EXIT SKP NAME NOP ITIME NOP ERR2 NOP TRNON NOP JSB .ENTR FETCH CALLING DEF NAME ADDRESSES CLA,INA ASSUME NO STA ERR2,I ERROR (ERR2=1) LDA ITIME,I MOVE TIME OUT STA HRS OF ARRAY ISZ ITIME AND INTO DLD ITIME,I LOCAL AREA DST MIN SPC 1 JSB EXEC SCHEDULE DEF *+9 TO EXECUTE DEF B1014 ONCE AT A DEF NAME,I SPECIFIED DEF .1 TIME DEF ZERO DEF HRS DEF MIN DEF SEC DEF ZERO SPC 1 JSB BERR2 BUMP ERROR IF ERROR JMP TRNON,I * * BERR2 NOP LDA 1 GET ERROR MESSAGE AND C7 CONVERT TO OCTAL ADA ERR2,I ADD TO PRESENT VALUE STA ERR2,I JMP BERR2,I RETURN * C7 OCT 7 * * SKP TIME NOP CPB .1 RESOLUTION = MILLISECONDS? JMP MILLI YES GO CONVERT SZB,RSS RESL CODE = 0 RESL. CLB,INB SET TO ONE STB RESL AND SAVE CMA,SSA,INA,SZA COMPLEMENT MULTIPLE ISZ TIME BUMP RETURN IF MULT>0 STA MULT JMP TIME,I MILLI ADA .9 ROUND UP TO NEAREST CLB TEN MILLISECONDS DIV .10 THEN CONVERT TO TENS JMP RESL. SKP ZERO NOP B1010 OCT 100012 B1014 OCT 100014 .9 DEC 9 .1 DEC 1 .10 DEC 10 HRS EQU MULT1 MIN EQU RESL1 SEC EQU ERR1 END