1*45796Sbostic /* srt0.c 1.8 90/12/16 */ 225870Ssam 3*45796Sbostic #include "../include/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 1530760Skarels .globl _boothowto 1630760Skarels .globl _bootdev 1725870Ssam 1825870Ssam .set HIGH,31 # mask for total disable 1925870Ssam 2030313Ssam #ifndef REL 2130313Ssam .globl _device_space 2230313Ssam _device_space: # Tapemaster config block, etc. 2330313Ssam .space 0x1000-RELOC 2430313Ssam 2529955Skarels .globl _entry 2629955Skarels _entry: 2725870Ssam .word 0x00 # 'call' by relsrt0. 2825870Ssam #endif 2925870Ssam _start: 3025870Ssam mtpr $HIGH,$IPL # just in case 3129955Skarels #ifdef REL 3230313Ssam movl $BOOTRELOC,sp 3325870Ssam 3430313Ssam movl $RELOC,r0 /* source address to copy from */ 3530313Ssam movl $BOOTRELOC,r1 /* destination address */ 3630513Skarels movl tdlen,r2 /* length to copy */ 3729553Sroot addl2 r2,r0 3829553Sroot addl2 r2,r1 3925870Ssam mvloop: 4029553Sroot decl r0 4129553Sroot decl r1 4225870Ssam movb (r0),(r1) 4325870Ssam decl r2 4429553Sroot bgeq mvloop 4529553Sroot 4629955Skarels /* 4729955Skarels * zero bss 4829955Skarels */ 4930513Skarels movl aedata,r1 /* destination address */ 5030513Skarels subl3 $_edata,$_end,r2 /* length to zero */ 5129955Skarels zloop: 5229955Skarels movb $0,(r1) 5329955Skarels incl r1 5429955Skarels decl r2 5529955Skarels bgeq zloop 5629955Skarels 5730513Skarels mtpr $1,$PACC 5830513Skarels mtpr $1,$PADC 5925870Ssam jmp *abegin 6029955Skarels #endif 6129553Sroot 6225870Ssam begin: 6329955Skarels movl fp,ofp 6430760Skarels movl r11,_boothowto 6530760Skarels movl r10,_bootdev 6625870Ssam movl $1,_openfirst 6725870Ssam callf $4,_main 6829955Skarels #ifdef REL 6929955Skarels halt 7029955Skarels #endif 7129955Skarels ret 7225870Ssam 7325870Ssam __rtt: 7425870Ssam .word 0x0 7529955Skarels #ifdef REL 7629955Skarels halt 7729955Skarels #endif 7829955Skarels movl ofp,fp 7929955Skarels ret 8025870Ssam 8125870Ssam .data 8225870Ssam abegin: .long begin 8330313Ssam #ifdef REL 8430513Skarels aedata: .long _edata 8530513Skarels tdlen: .long _edata-BOOTRELOC 8630313Ssam #endif 8729955Skarels ofp: .long 0 8830760Skarels _boothowto: .long 0 8930760Skarels _bootdev: .long 0 90