1*30513Skarels /* srt0.c 1.5 87/02/17 */ 225870Ssam 325870Ssam #include "../machine/mtpr.h" 425870Ssam #define LOCORE 525870Ssam 625870Ssam /* 725870Ssam * Startup code for standalone system 825870Ssam */ 925870Ssam 1025870Ssam .globl _end 1125870Ssam .globl _main 1225870Ssam .globl __rtt 1325870Ssam .globl _openfirst 1425870Ssam .globl _start 1525870Ssam 1625870Ssam .set HIGH,31 # mask for total disable 1725870Ssam 1830313Ssam #ifndef REL 1930313Ssam .globl _device_space 2030313Ssam _device_space: # Tapemaster config block, etc. 2130313Ssam .space 0x1000-RELOC 2230313Ssam 2329955Skarels .globl _entry 2429955Skarels _entry: 2525870Ssam .word 0x00 # 'call' by relsrt0. 2625870Ssam #endif 2725870Ssam _start: 2825870Ssam mtpr $HIGH,$IPL # just in case 2929955Skarels #ifdef REL 3030313Ssam movl $BOOTRELOC,sp 3125870Ssam 3230313Ssam movl $RELOC,r0 /* source address to copy from */ 3330313Ssam movl $BOOTRELOC,r1 /* destination address */ 34*30513Skarels movl tdlen,r2 /* length to copy */ 3529553Sroot addl2 r2,r0 3629553Sroot addl2 r2,r1 3725870Ssam mvloop: 3829553Sroot decl r0 3929553Sroot decl r1 4025870Ssam movb (r0),(r1) 4125870Ssam decl r2 4229553Sroot bgeq mvloop 4329553Sroot 4429955Skarels /* 4529955Skarels * zero bss 4629955Skarels */ 47*30513Skarels movl aedata,r1 /* destination address */ 48*30513Skarels subl3 $_edata,$_end,r2 /* length to zero */ 4929955Skarels zloop: 5029955Skarels movb $0,(r1) 5129955Skarels incl r1 5229955Skarels decl r2 5329955Skarels bgeq zloop 5429955Skarels 55*30513Skarels mtpr $1,$PACC 56*30513Skarels mtpr $1,$PADC 5725870Ssam jmp *abegin 5829955Skarels #endif 5929553Sroot 6025870Ssam begin: 6129955Skarels movl fp,ofp 6225870Ssam movl $1,_openfirst 6325870Ssam callf $4,_main 6429955Skarels #ifdef REL 6529955Skarels halt 6629955Skarels #endif 6729955Skarels ret 6825870Ssam 6925870Ssam __rtt: 7025870Ssam .word 0x0 7129955Skarels #ifdef REL 7229955Skarels halt 7329955Skarels #endif 7429955Skarels movl ofp,fp 7529955Skarels ret 7625870Ssam 7725870Ssam .data 7825870Ssam abegin: .long begin 7930313Ssam #ifdef REL 80*30513Skarels aedata: .long _edata 81*30513Skarels tdlen: .long _edata-BOOTRELOC 8230313Ssam #endif 8329955Skarels ofp: .long 0 84