1: / Startup code for two-stage bootstrap
   2: 
   3: / non-UNIX instructions
   4: mfpi    = 6500^tst
   5: stst    = 170300^tst
   6: mtpi    = 6600^tst
   7: mfpd    = 106500^tst
   8: mtpd    = 106600^tst
   9: spl     = 230
  10: ldfps   = 170100^tst
  11: stfps   = 170200^tst
  12: wait    = 1
  13: rtt     = 6
  14: halt    = 0
  15: reset   = 5
  16: trap    = 104400
  17: 
  18: .globl  _end
  19: .globl  _main
  20: start:
  21:         reset
  22:         mov     $340,PS
  23:         mov     $140100,sp
  24: 
  25: / set kernel I+D to physical 0 and IO page
  26:         clr     r1
  27:         mov     $77406,r2
  28:         mov     $KISA0,r3
  29:         mov     $KISD0,r4
  30:         jsr     pc,setseg
  31:         mov     $IO,-(r3)
  32:         clr     r1
  33:         mov     $KDSA0,r3
  34:         mov     $KDSD0,r4
  35:         jsr     pc,setseg
  36:         mov     $IO,-(r3)
  37: 
  38: / set user I+D to physical 64K (words) and IO page
  39:         mov     $4000,r1
  40:         mov     $UISA0,r3
  41:         mov     $UISD0,r4
  42:         jsr     pc,setseg
  43:         mov     $IO,-(r3)
  44:         mov     $4000,r1
  45:         mov     $UDSA0,r3
  46:         mov     $UDSD0,r4
  47:         jsr     pc,setseg
  48:         mov     $IO,-(r3)
  49: 
  50: / enable map
  51:         mov     $65,SSR3        / 22-bit map
  52:         bit     $20,SSR3
  53:         beq     1f
  54:         mov     $3,MSCR
  55: 1:
  56:         mov     $30340,PS
  57:         inc     SSR0
  58: 
  59: 
  60: / copy program to user I space
  61:         mov     $_end,r0
  62:         asr     r0
  63:         clr     r1
  64: 1:
  65:         mov     (r1),-(sp)
  66:         mtpi    (r1)+
  67:         sob     r0,1b
  68: 
  69: 
  70: / continue execution in user space copy
  71:         mov     $140004,sp
  72:         clr     *$KDSA6
  73:         mov     $140340,-(sp)
  74:         mov     $user,-(sp)
  75:         rtt
  76: user:
  77:         mov     $_end+512.,sp
  78:         mov     sp,r5
  79: 
  80:         jsr     pc,_main
  81: 
  82:         trap
  83: 
  84:         br      user
  85: 
  86: setseg:
  87:         mov     $8,r0
  88: 1:
  89:         mov     r1,(r3)+
  90:         add     $200,r1
  91:         mov     r2,(r4)+
  92:         sob     r0,1b
  93:         rts     pc
  94: 
  95: .globl  _setseg
  96: _setseg:
  97:         mov     2(sp),r1
  98:         mov     r2,-(sp)
  99:         mov     r3,-(sp)
 100:         mov     r4,-(sp)
 101:         mov     $77406,r2
 102:         mov     $KISA0,r3
 103:         mov     $KISD0,r4
 104:         jsr     pc,setseg
 105:         mov     (sp)+,r4
 106:         mov     (sp)+,r3
 107:         mov     (sp)+,r2
 108:         rts     pc
 109: 
 110: / clrseg(addr,count)
 111: .globl  _clrseg
 112: _clrseg:
 113:         mov     4(sp),r0
 114:         beq     2f
 115:         asr     r0
 116:         bic     $!77777,r0
 117:         mov     2(sp),r1
 118: 1:
 119:         clr     -(sp)
 120:         mtpi    (r1)+
 121:         sob     r0,1b
 122: 2:
 123:         rts     pc
 124: 
 125: 
 126: / mtpi(word,addr)
 127: .globl  _mtpi
 128: _mtpi:
 129:         mov     4(sp),r0
 130:         mov     2(sp),-(sp)
 131:         mtpi    (r0)+
 132:         rts     pc
 133: 
 134: .globl  __rtt
 135: __rtt:
 136:         halt
 137: 
 138: PS      = 177776
 139: SSR0    = 177572
 140: SSR1    = 177574
 141: SSR2    = 177576
 142: SSR3    = 172516
 143: KISA0   = 172340
 144: KISA1   = 172342
 145: KISA7   = 172356
 146: KISD0   = 172300
 147: KISD7   = 172316
 148: KDSA0   = 172360
 149: KDSA6   = 172374
 150: KDSA7   = 172376
 151: KDSD0   = 172320
 152: KDSD5   = 172332
 153: SISA0   = 172240
 154: SISA1   = 172242
 155: SISD0   = 172200
 156: SISD1   = 172202
 157: UISA0   = 177640
 158: UISD0   = 177600
 159: UDSA0   = 177660
 160: UDSD0   = 177620
 161: MSCR    = 017777746     / 11/70 memory control register
 162: IO      = 177600
 163: SWR     = 177570
 164: 
 165: .data

Defined functions

IO defined in line 162; used 4 times
KDSA0 defined in line 148; used 1 times
  • in line 33
KDSA6 defined in line 149; used 1 times
  • in line 72
KDSA7 defined in line 150; never used
KDSD0 defined in line 151; used 1 times
  • in line 34
KDSD5 defined in line 152; never used
KISA0 defined in line 143; used 2 times
KISA1 defined in line 144; never used
KISA7 defined in line 145; never used
KISD0 defined in line 146; used 2 times
KISD7 defined in line 147; never used
MSCR defined in line 161; used 1 times
  • in line 54
PS defined in line 138; used 2 times
SISA0 defined in line 153; never used
SISA1 defined in line 154; never used
SISD0 defined in line 155; never used
SISD1 defined in line 156; never used
SSR0 defined in line 139; used 1 times
  • in line 57
SSR1 defined in line 140; never used
SSR2 defined in line 141; never used
SSR3 defined in line 142; used 2 times
SWR defined in line 163; never used
UDSA0 defined in line 159; used 1 times
  • in line 45
UDSD0 defined in line 160; used 1 times
  • in line 46
UISA0 defined in line 157; used 1 times
  • in line 40
UISD0 defined in line 158; used 1 times
  • in line 41
__rtt declared in line 134; defined in line 135; used 1 times
_clrseg declared in line 111; defined in line 112; used 3 times
_mtpi declared in line 127; defined in line 128; used 4 times
_setseg declared in line 95; defined in line 96; used 4 times
setseg defined in line 86; used 5 times
start defined in line 20; never used
trap defined in line 16; used 1 times
  • in line 82
user defined in line 76; used 2 times
Last modified: 1979-05-16
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 705
Valid CSS Valid XHTML 1.0 Strict