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

Defined functions

addl2 defined in line 19; never used
clrl defined in line 19; used 1 times
  • in line 95
tstl defined in line 19; never used

Defined macros

LOCORE defined in line 10; never used
Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 764
Valid CSS Valid XHTML 1.0 Strict