;BLISS-10 7B(222) 11/8/77 16:45:31 TOP.I36 Page 1 ; 1 ! BLISS-36C 4(141) Tuesday 08-Nov-1977 16:45:30 SFT60:TOP.B36[10,777] Page 1 ; 2 ! Digital Equipment Corporation, COMPANY CONFIDENTIAL ; 3 ! ; 4 ! 0001 MODULE TOP(MAIN=TOP)= ; 5 ! 0002 !Module to define prologues and the prime stack ; 6 ! 0003 !It will not work as-is, but should be modified to set ; 7 ! 0004 !the AC field in the return address to the # of registers to restore ; 8 ! 0005 BEGIN ; 9 MODULE TOP(BLS36,CCL,STACK,TIMER=EXTERNAL(SIX12C),DEBUG,IDELE,MLIST,SREG=#17,VREG=#1,FREG=#15,DREGS=7,RESERVE(0,#16))= ; 10 BEGIN ; 11 TITLE TOP.. TWOSEG RELOC 400000 OPDEF DEBUG[37B8] ;LUUO FOR SIX12 ;ROUTINE PROLOGS AND EPILOGS .ENT.0:: HRLI 5,0_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 JRST 00,0(05) .ENT.1:: HRLI 5,1_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 PUSH $S,14 JRST 00,0(05) .ENT.2:: HRLI 5,2_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 PUSH $S,14 PUSH $S,13 JRST 00,0(05) .ENT.3:: HRLI 5,3_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 PUSH $S,14 PUSH $S,13 PUSH $S,12 JRST 00,0(05) .ENT.4:: HRLI 5,4_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 PUSH $S,14 PUSH $S,13 PUSH $S,12 PUSH $S,11 JRST 00,0(05) .ENT.5:: HRLI 5,5_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 ;BLISS-10 7B(222) 11/8/77 16:45:31 TOP.I36 Page 1-1 HRRZ $F,17 PUSH $S,14 PUSH $S,13 PUSH $S,12 PUSH $S,11 PUSH $S,10 JRST 00,0(05) .ENT.6:: HRLI 5,6_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 PUSH $S,14 PUSH $S,13 PUSH $S,12 PUSH $S,11 PUSH $S,10 PUSH $S,7 JRST 00,0(05) .ENT.7:: HRLI 5,7_5 ;# of saved DREGS HLLM 5,(17) ;Save in LH of return addr word PUSH $S,15 HRRZ $F,17 PUSH $S,14 PUSH $S,13 PUSH $S,12 PUSH $S,11 PUSH $S,10 PUSH $S,7 PUSH $S,6 JRST 00,0(05) .EXT.7:: POP $S,6 .EXT.6:: POP $S,7 .EXT.5:: POP $S,10 .EXT.4:: POP $S,11 .EXT.3:: POP $S,12 .EXT.2:: POP $S,13 .EXT.1:: POP $S,14 .EXT.0:: POP $S,15 POPJ $S,0 ;STACK=TOP.O+0 .SREG=:-17 .FREG=:-15 .VREG=:-1 .DREGS=:-17700 ; 12 REQUIRE SYS:BLS36C.DCL; ; 48 LIBRARY& 'SYS:BLS36C.REL'; ;BLISS-10 7B(222) 11/8/77 16:45:31 TOP.I36 Page 1-2 ; 49 BEGIN ; 50 ! 0006 EXTERNAL ROUTINE MAIN; ; 51 EXTERNAL MAIN; ; 52 ! 0007 ROUTINE TOP=MAIN(); ; 53 ; 54 ; 55 ROUTINE TOP= ; 56 (MAIN()); ; 57 TOP: DEBUG 00,TOP ;00000 JSP 05,.ENT.0 ;00001 External PUSHJ $S,MAIN ;00002 External SUB $S,TOP.L+0 ;00003 DEBUG $V,TOP ;00004 57 SUB $S,TOP.L+0 ;00005 JRST 00,.EXT.0 ;00006 External ; 58 SWITCHES NULL; ; 59 ! 0008 END ELUDOM ; 60 ; 61 TOP(.15,.9,.7,.0,.VREG); ; 62 ; 63 END ; 64 END ELUDOM ; 65 ; 66 ; 67 ; 68 ! Run Time: 00:00 ; 69 ! Elapsed Time: 00:00 ; 70 ! Memory Used: 2K ; 71 ! Translation Complete TOP.F:: TDZA $V,1 ;00000 1 MOVEI $V,1 ;00001 HRRZI $F,TOP.O+0 ;00002 MOVEM $F,.BREG ;00003 External HRLI $S,-765 ;00004 HRRZI $F,13($F) ;00005 Formal HRR $S,15 ;00006 PUSH $S,1 ;00007 HRRZI 05,0 ;00010 TLO 05,400000 ;00011 PUSH $S,5 ;00012 PUSHJ $S,SIX12C ;00013 External SUB $S,TOP.L+1 ;00014 POP $S,1 ;00015 PUSH $S,17 ;00016 52 PUSH $S,11 ;00017 PUSH $S,7 ;00020 PUSH $S,0 ;00021 PUSH $S,1 ;00022 ;BLISS-10 7B(222) 11/8/77 16:45:32 TOP.I36 Page 1-3 PUSHJ $S,TOP ;00023 SUB $S,TOP.L+2 ;00024 SETZ $V,0 ;00025 62 CALLI 00,12 ;00026 65 ;Special register declarations $S=: 17 $F=: 15 $V=: 1 ;Constant pointers TOP.C:: ;Literals TOP.L:: XWD 000000,000000 ;00000 XWD 000001,000001 ;00001 XWD 000005,000005 ;00002 ;PLIT area TOP.P:: RELOC ;To low segment ;GLOBAL area TOP.G:: ;OWN area TOP.O:: BLOCK 1000 .BREG:: BLOCK 1 ;CO-ROUTINE PSEUDO-REGISTER ;EXTERNAL requests EXTERN SIX12C,MAIN END TOP.F ;Pseudo-op for MACRO-10 ;Module length: 91+3 ;Run Time: 0:0.5 ;Elapsed Time: 0:1.5 ;Max core used: 7 + 41 K ;[BLSNED No errors detected]