Annotation of 42BSD/sys/stand/srt0.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.