Annotation of cci/sys/stand/srt0.c, revision 1.1.1.1

1.1       root        1: /*     srt0.c  4.8     81/04/03        */
                      2: /*  Tahoe version.     82/11/09        */
                      3: 
                      4: #include "../machine/mtpr.h"
                      5: #define        LOCORE
                      6: 
                      7: /*
                      8:  * Startup code for standalone system
                      9:  */
                     10: 
                     11:        .globl  _end
                     12:        .globl  _edata
                     13:        .globl  _main
                     14:        .globl  __rtt
                     15:        .globl  _openfirst
                     16:        .globl  _start
                     17: 
                     18:        .set    HIGH,31         # mask for total disable
                     19: 
                     20: #ifndef        REL
                     21:        .word   0x00                    # 'call' by relsrt0.
                     22: #endif
                     23: _start:
                     24:        mtpr    $HIGH,$IPL              # just in case
                     25:        movl    $(RELOC),sp
                     26:        movl    $RELOC,r0
                     27:        subl2   aedata,r0
                     28:        shar    $2,r0,r0
                     29:        clrl    r1              /* used to clear the memory */
                     30: clr:
                     31:        pushl   r1
                     32:        decl    r0              /* decrement counter */
                     33:        jgeq    clr             /* more to clear */
                     34: 
                     35:        movl    $RELOC,sp
                     36:        movl    $0x800,r0       /* source address to copy from */
                     37:        movl    $RELOC,r1       /* destination address */
                     38:        movl    aend,r2         /* length */
                     39:        subl2   $0x800,r2
                     40:  #     movblk
                     41:  # simple loop replaces movblk - until hardware people are ready
                     42: mvloop:
                     43:        movb    (r0),(r1)
                     44:        incl    r0
                     45:        incl    r1
                     46:        decl    r2
                     47:        bneq    mvloop
                     48:        .globl  goup
                     49:        mtpr    $0,$PACC
                     50: jumphigh:
                     51:        .set    goup,jumphigh+0x800-RELOC
                     52:        jmp     *abegin
                     53: begin:
                     54:        movl    $1,_openfirst
                     55:        callf   $4,_main
                     56:        jmp     begin
                     57: 
                     58: __rtt:
                     59:        .word   0x0
                     60:        jmp     begin
                     61: 
                     62:        .data
                     63: abegin:        .long   begin
                     64: aend:  .long   _end-RELOC+0x800
                     65: aedata:        .long   _edata-RELOC+0x800
                     66:        .globl  _entry
                     67:        .set    _entry,0x800

unix.superglobalmegacorp.com

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