1*3349Swnj /* srt0.c 4.7 81/03/22 */ 2326Sbill 33263Swnj #include "../h/mtpr.h" 4*3349Swnj #define LOCORE 5*3349Swnj #include "../h/cpu.h" 63263Swnj 71914Swnj /* 81914Swnj * Startup code for standalone system 91914Swnj * Non-relocating version -- for programs which are loaded by boot 101914Swnj */ 11326Sbill 12*3349Swnj .globl _end 131757Sbill .globl _edata 14326Sbill .globl _main 15326Sbill .globl __rtt 163263Swnj .globl _configure 17*3349Swnj .globl _cpu 18*3349Swnj .globl _openfirst 19326Sbill 20326Sbill .set HIGH,31 # mask for total disable 21326Sbill 222438Swnj entry: .globl entry 23326Sbill .word 0x0 24326Sbill mtpr $HIGH,$IPL # just in case 25*3349Swnj #ifdef REL 26*3349Swnj movl $RELOC,sp 27*3349Swnj #else 28*3349Swnj movl $RELOC-0x2400,sp 29*3349Swnj #endif 302438Swnj start: 31*3349Swnj movl aedata,r0 32411Sbill clr: 33411Sbill clrl (r0)+ 34411Sbill cmpl r0,sp 35411Sbill jlss clr 36*3349Swnj #ifdef REL 37*3349Swnj movc3 aend,*$0,(sp) 38*3349Swnj jmp *abegin 39*3349Swnj begin: 40*3349Swnj #endif 41*3349Swnj mtpr $0,$SCBB 423263Swnj calls $0,_configure 43*3349Swnj movl $1,_openfirst 44326Sbill calls $0,_main 45*3349Swnj #ifndef TP 46326Sbill jmp start 47*3349Swnj #else 48*3349Swnj ret 49*3349Swnj #endif 50326Sbill 51*3349Swnj .data 52*3349Swnj #ifdef REL 53*3349Swnj abegin: .long begin 54*3349Swnj aend: .long _end-RELOC 55*3349Swnj aedata: .long _edata-RELOC 56*3349Swnj #else 57*3349Swnj aedata: .long _edata 58*3349Swnj #endif 59*3349Swnj 60326Sbill __rtt: 61326Sbill .word 0x0 62326Sbill jmp start 63*3349Swnj 64*3349Swnj .globl _badloc 65*3349Swnj _badloc: 66*3349Swnj .word 0 67*3349Swnj movl $1,r0 68*3349Swnj movl 4(ap),r3 69*3349Swnj movl $4,r2 70*3349Swnj movab 9f,(r2) 71*3349Swnj tstl (r3) 72*3349Swnj 1: clrl r0 # made it w/o machine checks 73*3349Swnj 2: movl $4,r2 74*3349Swnj clrl (r2) 75*3349Swnj ret 76*3349Swnj .align 2 77*3349Swnj 9: 78*3349Swnj casel _cpu,$1,$VAX_MAX 79*3349Swnj 0: 80*3349Swnj .word 8f-0b # 1 is 780 81*3349Swnj .word 5f-0b # 2 is 750 82*3349Swnj .word 5f-0b # 3 is 730 83*3349Swnj 5: 84*3349Swnj mtpr $0xf,$MCESR 85*3349Swnj brb 1f 86*3349Swnj 8: 87*3349Swnj mtpr $0,$SBIFS 88*3349Swnj 1: 89*3349Swnj addl2 (sp)+,sp # discard mchchk trash 90*3349Swnj movab 2b,(sp) 91*3349Swnj rei 92