|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)srt0.c 7.1 (Berkeley) 6/5/86 ! 7: */ ! 8: ! 9: #include "../vax/mtpr.h" ! 10: #define LOCORE ! 11: #include "../vax/cpu.h" ! 12: ! 13: /* ! 14: * Startup code for standalone system ! 15: * Non-relocating version -- for programs which are loaded by boot ! 16: * Relocating version for boot* ! 17: */ ! 18: ! 19: .globl _end ! 20: .globl _edata ! 21: .globl _main ! 22: .globl __rtt ! 23: .globl _configure ! 24: .globl _cpu ! 25: .globl _openfirst ! 26: ! 27: .set HIGH,31 # mask for total disable ! 28: ! 29: entry: .globl entry ! 30: .word 0x0 ! 31: mtpr $HIGH,$IPL # just in case ! 32: #ifdef REL ! 33: movl $RELOC,sp ! 34: #else ! 35: movl $RELOC-0x2400,sp ! 36: #endif ! 37: start: ! 38: movl aedata,r0 ! 39: clr: ! 40: clrl (r0)+ ! 41: cmpl r0,sp ! 42: jlss clr ! 43: #ifdef REL ! 44: movc3 aedata,*$0,(sp) ! 45: /* ! 46: * Reclear bss segment separately from text and data ! 47: * since movc3 can't move more than 64K bytes ! 48: */ ! 49: dclr: ! 50: clrl (r3)+ ! 51: cmpl r3,$_end ! 52: jlss dclr ! 53: /* this loop shouldn't be necessary, but is when booting from an ra81 */ ! 54: xclr: ! 55: clrl (r3)+ ! 56: cmpl r3,$0x100000 ! 57: jlss xclr ! 58: jmp *abegin ! 59: begin: ! 60: #endif ! 61: mtpr $0,$SCBB ! 62: calls $0,_configure ! 63: movl $1,_openfirst ! 64: calls $0,_main ! 65: #ifndef TP ! 66: jmp start ! 67: #else ! 68: ret ! 69: #endif ! 70: ! 71: .data ! 72: #ifdef REL ! 73: abegin: .long begin ! 74: aedata: .long _edata-RELOC ! 75: #else ! 76: aedata: .long _edata ! 77: #endif ! 78: ! 79: __rtt: ! 80: .word 0x0 ! 81: #ifdef REL ! 82: halt ! 83: #else ! 84: jmp start ! 85: #endif ! 86: ! 87: .globl _badloc ! 88: _badloc: ! 89: .word 0 ! 90: movl $1,r0 ! 91: movl 4(ap),r3 ! 92: movl $4,r2 ! 93: movab 9f,(r2) ! 94: tstl (r3) ! 95: 1: clrl r0 # made it w/o machine checks ! 96: 2: movl $4,r2 ! 97: clrl (r2) ! 98: ret ! 99: .align 2 ! 100: 9: ! 101: casel _cpu,$1,$VAX_MAX ! 102: 0: ! 103: .word 8f-0b # 1 is 780 ! 104: .word 5f-0b # 2 is 750 ! 105: .word 5f-0b # 3 is 730 ! 106: .word 6f-0b # 4 is 8600 ! 107: 5: ! 108: mtpr $0xf,$MCESR ! 109: brb 1f ! 110: 6: ! 111: mtpr $0,$EHSR ! 112: brb 1f ! 113: 8: ! 114: mtpr $0,$SBIFS ! 115: 1: ! 116: addl2 (sp)+,sp # discard mchchk trash ! 117: movab 2b,(sp) ! 118: rei
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.