as860 DOS Rel 1.4, (C) 1990 Intel Corp., The Portland Group Tue Jul 06 16:44:56 1993 Page 1 1 // 2 // 3 // project: blaster 4 // subsystem: ttm100 860_rpc_kernel 5 // 6 // module: rpc_kernel 7 // file: pstart.s 8 // 9 // author: chrg 10 // date: 10:02:90 11 // 12 // copyright (c) division ltd. 1990 13 // sccs ident %w% %g% 14 // 15 // 16 // modified: 17 // 18 // 19 // 20 // 21 // 22 // function:- main entry point to rpc kernel. disables interrupts and 23 // then calls _vstart to go virtual etc. 24 // 25 // 26 // 27 // 28 29 .file "pstart.s" 30 31 .globl _start 32 .globl pstart 33 .globl _vstart 34 35 psr_im = 0x10 36 low_pg = 0x0fff 37 db_ate = 0x20 38 39 .text 40 41 42 // at this point, we are running on the bootloaders stack. 43 pstart: 44 _start: 45 46 47 // turn off all interrupts 30300000 00000000 48 ld.c psr,r16 d6100010 00000004 49 andnot psr_im,r16,r16 38208000 00000008 50 st.c r16,psr 51 52 53 // ensure ate disabled and iti set 30500000 0000000c 54 ld.c dirbase,r16 e4100020 00000010 55 or db_ate,r0,r16 as860 DOS Rel 1.4, (C) 1990 Intel Corp., The Portland Group Tue Jul 06 16:44:56 1993 Page 2 38408000 00000014 56 st.c r16,dirbase 57 58 // ensure fte clear 30900000 00000018 59 ld.c fsr,r16 e4100000 0000001c 60 or 0,r0,r16 38808000 00000020 61 st.c r16,fsr 62 63 // initialise fir 30000000 00000024 64 ld.c fir,r0 65 66 // setup boot stack ec0f8380 00000028 67 orh 0x8380, r0, r15 e40e0001 0000002c 68 or 0x01, r0, r14 1de07001 00000030 69 st.l r14, 0(r15) 70 9412ff00 00000034 71 mov 0xffffff00, r18 e4130004 00000038 72 or 0x04, r0, r19 1e409801 0000003c 73 st.l r19, 0(r18) 74 75 // call _flush 76 // nop 77 9412ff00 00000040 78 mov 0xffffff00, r18 e413000b 00000044 79 or 0xb, r0, r19 1e409819 00000048 80 st.l r19, 24(r18) 81 82 83 // grab initstack and topmem from ccb ec1f0000 0000004c 84 orh ha%_input_ccb, r0, r31 17fd0001 00000050 85 ld.l l%_input_ccb(r31), r29 86 87 ec10f040 00000054 88 orh 0xf040, r0, r16 // set stack to 0xf0400000 a2020000 00000058 89 mov r16, sp 90 91 92 // grab the trap vector ec14ffff 0000005c 93 orh 0xffff,r0,r20 e694ff00 00000060 94 or 0xff00,r20,r20 //hard vector 95 // orh h%alltraps,r0,r21 96 // or l%alltraps,r21,r21 //vector in .text 97 // subu r21,r20,r22 //rel addr 98 // shr 2,r22,r22 99 // adds -3,r22,r22 // adust for 2 NOPS, +1 100 // // change if remove NOPS!!!! 101 // andnoth 0xfc00,r22,r22 102 // orh 0x6800,r22,r22 // br alltraps e4130000 00000064 103 or h%alltraps, r0, r19 ee73ec01 00000068 104 orh 0xec01, r19, r19 105 e4150000 0000006c 106 or l%alltraps, r0, r21 eeb5e421 00000070 107 orh 0xe421, r21, r21 108 ec164000 00000074 109 orh 0x4000, r0, r22 e6d60800 00000078 110 or 0x0800, r22, r22 as860 DOS Rel 1.4, (C) 1990 Intel Corp., The Portland Group Tue Jul 06 16:44:56 1993 Page 3 111 112 ec17a000 0000007c 113 orh 0xa000,r0,r23 // nop 114 1e80b801 00000080 115 st.l r23,0(r20) // chip bug NOP 1e80b805 00000084 116 st.l r23,4(r20) // chip bug NOP 1e809809 00000088 117 st.l r19,8(r20) // br alltraps 1e80a80d 0000008c 118 st.l r21,12(r20) // delayed NOP 1e80b011 00000090 119 st.l r22,16(r20) // delayed NOP 1e80b815 00000094 120 st.l r23,20(r20) // delayed NOP 1e80b819 00000098 121 st.l r23,24(r20) // delayed NOP 1e80b81d 0000009c 122 st.l r23,28(r20) // delayed NOP 123 9412f000 000000a0 124 mov 0xfffff000, r18 e4130032 000000a4 125 or 0x32, r0, r19 1e409801 000000a8 126 st.l r19,0(r18) 127 68000000 000000ac 128 br _vstart a0000000 000000b0 129 nop 130 131 // *END* / 132 133 134 135 136 137 138 139