|
|
1.1 ! root 1: /* srt0.c 1.6 87/04/02 */ ! 2: ! 3: #include "../machine/mtpr.h" ! 4: #define LOCORE ! 5: ! 6: /* ! 7: * Startup code for standalone system ! 8: */ ! 9: ! 10: .globl _end ! 11: .globl _main ! 12: .globl __rtt ! 13: .globl _openfirst ! 14: .globl _start ! 15: .globl _boothowto ! 16: .globl _bootdev ! 17: ! 18: .set HIGH,31 # mask for total disable ! 19: ! 20: #ifndef REL ! 21: .globl _device_space ! 22: _device_space: # Tapemaster config block, etc. ! 23: .space 0x1000-RELOC ! 24: ! 25: .globl _entry ! 26: _entry: ! 27: .word 0x00 # 'call' by relsrt0. ! 28: #endif ! 29: _start: ! 30: mtpr $HIGH,$IPL # just in case ! 31: #ifdef REL ! 32: movl $BOOTRELOC,sp ! 33: ! 34: movl $RELOC,r0 /* source address to copy from */ ! 35: movl $BOOTRELOC,r1 /* destination address */ ! 36: movl tdlen,r2 /* length to copy */ ! 37: addl2 r2,r0 ! 38: addl2 r2,r1 ! 39: mvloop: ! 40: decl r0 ! 41: decl r1 ! 42: movb (r0),(r1) ! 43: decl r2 ! 44: bgeq mvloop ! 45: ! 46: /* ! 47: * zero bss ! 48: */ ! 49: movl aedata,r1 /* destination address */ ! 50: subl3 $_edata,$_end,r2 /* length to zero */ ! 51: zloop: ! 52: movb $0,(r1) ! 53: incl r1 ! 54: decl r2 ! 55: bgeq zloop ! 56: ! 57: mtpr $1,$PACC ! 58: mtpr $1,$PADC ! 59: jmp *abegin ! 60: #endif ! 61: ! 62: begin: ! 63: movl fp,ofp ! 64: movl r11,_boothowto ! 65: movl r10,_bootdev ! 66: movl $1,_openfirst ! 67: callf $4,_main ! 68: #ifdef REL ! 69: halt ! 70: #endif ! 71: ret ! 72: ! 73: __rtt: ! 74: .word 0x0 ! 75: #ifdef REL ! 76: halt ! 77: #endif ! 78: movl ofp,fp ! 79: ret ! 80: ! 81: .data ! 82: abegin: .long begin ! 83: #ifdef REL ! 84: aedata: .long _edata ! 85: tdlen: .long _edata-BOOTRELOC ! 86: #endif ! 87: ofp: .long 0 ! 88: _boothowto: .long 0 ! 89: _bootdev: .long 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.