Assembler for MIMD-TRAP2/3 (c) V.Angelov, v3.7, Jul 2008 SVN Revision 2158, SVN Date 2008-07-17 Please send any comments to: angelov@kip.uni-heidelberg.de 15:32:30 / 03 Jul 2009 Source code file: SRC/fitred.asm Memory initialisation file: Log file: WRK/cpu0.log Program memory size in words: 4096 Default constants, read from /usr/share/trap/asm_mimd.inc 1 CPU0 = 2 TRAP3 = 3 CC_SIGNED = 0X14 4 CC_NSIGNED = 0X04 5 CC_ZERO = 0X11 6 CC_NZERO = 0X01 7 CC_OVERFL = 0X13 8 CC_NOVERFL = 0X03 9 CC_NEG = 0X12 10 CC_NNEG = 0X02 11 CC_CARRY = 0X10 12 CC_NCARRY = 0X00 13 CC_BUSY = 0X17 14 CC_NBUSY = 0X07 15 CC_DIVB = 0X15 16 CC_NDIVB = 0X05 17 CC_ERRDIV = 0X16 18 CC_NERRDIV = 0X06 19 CC_UNCOND = 0X0F 20 CC_EQ = 0X11 21 CC_NEQ = 0X01 22 CC_NEG = 0X12 23 CC_POS0 = 0X02 24 CC_LTS = 0X14 25 CC_GES = 0X04 26 CC_LTU = 0X10 27 CC_GEU = 0X00 28 CC_LES = 0X19 29 CC_GTS = 0X09 30 CC_LEU = 0X18 31 CC_GTU = 0X08 32 RR_BYTE = 3 33 RR_WORD = 1 34 RR_DWORD = 0 35 LRA1 = LRA 3, 36 LRA2 = LRA 1, 37 LRA4 = LRA 0, 38 LRA4+ = LRA+ 0, 39 XOR = EOR 40 NOT = COM 41 SHLT = SHL 42 ANDT = AND 43 R0 = PRF[0] 44 R1 = PRF[1] 45 R2 = PRF[2] 46 R3 = PRF[3] 47 R4 = PRF[4] 48 R5 = PRF[5] 49 R6 = PRF[6] 50 R7 = PRF[7] 51 R8 = PRF[8] 52 R9 = PRF[9] 53 R10 = PRF[10] 54 R11 = PRF[11] 55 R12 = PRF[12] 56 R13 = PRF[13] 57 R14 = PRF[14] 58 R15 = PRF[15] 59 G0 = GRF[0] 60 G1 = GRF[1] 61 G2 = GRF[2] 62 G3 = GRF[3] 63 G4 = GRF[4] 64 G5 = GRF[5] 65 G6 = GRF[6] 66 G7 = GRF[7] 67 G8 = GRF[8] 68 G9 = GRF[9] 69 G10 = GRF[10] 70 G11 = GRF[11] 71 G12 = GRF[12] 72 G13 = GRF[13] 73 G14 = GRF[14] 74 G15 = GRF[15] 75 F0 = FIT[0] 76 F1 = FIT[1] 77 F2 = FIT[2] 78 F3 = FIT[3] 79 F4 = FIT[4] 80 F5 = FIT[5] 81 F6 = FIT[6] 82 F7 = FIT[7] 83 F8 = FIT[8] 84 F9 = FIT[9] 85 F10 = FIT[10] 86 F11 = FIT[11] 87 F12 = FIT[12] 88 F13 = FIT[13] 89 F14 = FIT[14] 90 F15 = FIT[15] 91 C0 = CON[0] 92 C1 = CON[1] 93 C2 = CON[2] 94 C3 = CON[3] 95 C4 = CON[4] 96 C5 = CON[5] 97 C6 = CON[6] 98 C7 = CON[7] 99 C8 = CON[8] 100 C9 = CON[9] 101 C10 = CON[10] 102 C11 = CON[11] 103 C12 = CON[12] 104 C13 = CON[13] 105 C14 = CON[14] 106 C15 = CON[15] 107 ASM_SVN_REV = 2158 1: ;########################################################### 2: ;# 3: ;# Rudimentary Readout Program for TRAP3 chip 4: ;# 5: ;# Marcus Gutfleisch 6: ;# Universität Heidelberg, Kirchhoff-Institut für Physik 7: ;# 8: ;# Heidelberg, 15.10.2004 9: ;# 10: ;########################################################### 11: *** Include file 1: #def SML0=0x0A00; SSSS RRRR RR-- ---- -itt tttt tttt ttt 2: #def SML1=0x0A01; SSSS RRRR RR-- ---- -itt tttt tttt ttt 3: #def SML2=0x0A02; SSSS RRRR RR-- ---- -itt tttt tttt ttt 4: #def SMMODE=0x0A03; SSSS RRRR RR-- ---- pppp snme eeee ddd 5: #def SMCMD=0x0A04; ---- ---- ---- ---- cccc cccc cccc ccc 6: #def CPU0CLK=0x0A20; ---- ---- ---- ---- ---- ---- --St oam 7: #def CPU0SS=0x0A21; ---- ---- ---- ---- ---- ---- ---- --- 8: #def CPU1CLK=0x0A22; ---- ---- ---- ---- ---- ---- --St oam 9: #def CPU1SS=0x0A23; ---- ---- ---- ---- ---- ---- ---- --- 10: #def CPU2CLK=0x0A24; ---- ---- ---- ---- ---- ---- --St oam 11: #def CPU2SS=0x0A25; ---- ---- ---- ---- ---- ---- ---- --- 12: #def CPU3CLK=0x0A26; ---- ---- ---- ---- ---- ---- --St oam 13: #def CPU3SS=0x0A27; ---- ---- ---- ---- ---- ---- ---- --- 14: #def NICLK=0x0A28; ---- ---- ---- ---- ---- ---- --St oam 15: #def NICLKSS=0x0A29; ---- ---- ---- ---- ---- ---- ---- --- 16: #def FILCLK=0x0A2A; ---- ---- ---- ---- ---- ---- --St oam 17: #def FILCLKSS=0x0A2B; ---- ---- ---- ---- ---- ---- ---- --- 18: #def PRECLK=0x0A2C; ---- ---- ---- ---- ---- ---- --St oam 19: #def PRECLKSS=0x0A2D; ---- ---- ---- ---- ---- ---- ---- --- 20: #def ADCEN=0x0A2E; ---- ---- ---- ---- ---- ---- --St oam 21: #def ADCENSS=0x0A2F; ---- ---- ---- ---- ---- ---- ---- --- 22: #def NIODE=0x0A30; ---- ---- ---- ---- ---- ---- --St oam 23: #def NIODESS=0x0A31; ---- ---- ---- ---- ---- ---- ---- --- 24: #def NIOCE=0x0A32; ---- ---- ---- ---- ---- ---- --St oam 25: #def NIOCESS=0x0A33; ---- ---- ---- ---- ---- ---- ---- --- 26: #def NIIDE=0x0A34; ---- ---- ---- ---- ---- ---- --St oam 27: #def NIIDESS=0x0A35; ---- ---- ---- ---- ---- ---- ---- --- 28: #def NIICE=0x0A36; ---- ---- ---- ---- ---- ---- --St oam 29: #def NIICESS=0x0A37; ---- ---- ---- ---- ---- ---- ---- --- 30: 31: #def CTGDINI=0x0B80; dddd dddd dddd dddd dddd dddd dddd dddd 32: #def CTGCTRL=0x0B81; ---- ---- ---- ---- ---S idce essb bbbb 33: #def CTGDOUT=0x0B82; DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 34: #def CTPDINI=0x0200; dddd dddd dddd dddd dddd dddd dddd dddd 35: #def CTPCTRL=0x0201; ---- ---- ---- ---- ---S idce essb bbbb 36: #def CTPDOUT=0x0202; DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 37: 38: #def PASADEL=0x3158; ---- ---- ---- ---- ---- ---- aaaa aaa 39: #def PASAPHA=0x3159; ---- ---- ---- ---- ---- ---- --aa aaa 40: #def PASAPRA=0x315A; ---- ---- ---- ---- ---- ---- --aa aaa 41: #def PASADAC=0x315B; ---- ---- ---- ---- ---- ---- aaaa aaa 42: #def PASACHM=0x315C; ---- ---- ---- -aaa aaaa aaaa aaaa aaa 43: #def PASASTL=0x315D; ---- ---- ---- ---- ---- ---- aaaa aaa 44: #def PASAPR1=0x315E; ---- ---- ---- ---- ---- ---- ---- --- 45: #def PASAPR0=0x315F; ---- ---- ---- ---- ---- ---- ---- --- 46: #def ADCMSK=0x3050; ---- ---- ---a aaaa aaaa aaaa aaaa aaa 47: #def ADCINB=0x3051; ---- ---- ---- ---- ---- ---- ---- --m 48: #def ADCDAC=0x3052; ---- ---- ---- ---- ---- ---- ---d ddd 49: #def ADCPAR=0x3053; ---- ---- ---- --ii iiss ssbz hhhe app 50: #def ADCTST=0x3054; ---- ---- ---- ---- ---- ---- ---- --t 51: #def SADCAZ=0x3055; ---- ---- ---- ---- ---- ---- ---- --- 52: #def SADCTRG=0x3161; ---- ---- ---- ---- ---- ---- ---- --- 53: #def SADCRUN=0x3162; ---- ---- ---- ---- ---- ---- ---- --- 54: #def SADCPWR=0x3163; ---- ---- ---- ---- ---- ---- ---- -aa 55: #def SADCSTA=0x3164; ---- ---- ---- ---- ---- ---- -ret aii 56: #def L0TSIM=0x3165; ---- ---- ---- ---- --aa aaaa aaaa aaa 57: #def SADCEC=0x3166; ---- ---- ---- ---- ---- ---- -daa ate 58: #def SADCC0=0x3168; ---- ---- ---- ---- ---- --AA AAAA AAA 59: #def SADCC1=0x3169; ---- ---- ---- ---- ---- --AA AAAA AAA 60: #def SADCC2=0x316A; ---- ---- ---- ---- ---- --AA AAAA AAA 61: #def SADCC3=0x316B; ---- ---- ---- ---- ---- --AA AAAA AAA 62: #def SADCC4=0x316C; ---- ---- ---- ---- ---- --AA AAAA AAA 63: #def SADCC5=0x316D; ---- ---- ---- ---- ---- --AA AAAA AAA 64: #def SADCC6=0x316E; ---- ---- ---- ---- ---- --AA AAAA AAA 65: #def SADCC7=0x316F; ---- ---- ---- ---- ---- --AA AAAA AAA 66: #def SADCMC=0x3170; ---- ---- ---- ---- ---- ---- aaaa aaa 67: #def SADCOC=0x3171; ---- ---- ---- ---- ---- ---- aaaa aaa 68: #def SADCGTB=0x3172; hhhh gggg ffff eeee dddd cccc bbbb aaa 69: #def SADCTC=0x3173; ---- ---- ---- ---- ---- ---- ---- -aa 70: #def ADCCPU=0x0100; ---- ---- ---- ---- ---- -eaa aaaa aaa 71: #def SEBDEN=0x3178; ---- ---- ---- ---- ---- ---- ---- -ee 72: #def SEBDOU=0x3179; ---- ---- ---- ---- ---- ---- ---- -oo 73: #def SEBDIN=0x317A; ---- ---- ---- ---- ---- ---- ---- -ii 74: #def CHIPID=0x3160; ---- ---- ---- --AA AAAA AAAA AAAA AAA 75: #def TPPT0=0x3000; ---- ---- ---- ---- ---- ---- -ddd ddd 76: #def TPPAE=0x3004; ---- ---- ---- ---- ---- ---- -ddd ddd 77: #def TPPGR=0x3003; ---- ---- ---- ---- ---- ---- -ddd ddd 78: #def FLBY=0x3018; ---- ---- ---- ---- ---- ---- ---- --- 79: #def FLL=0x3100; ---- ---- ---- ---- ---- ---- --dd ddd 80: #def FPBY=0x3019; ---- ---- ---- ---- ---- ---- ---- --- 81: #def FPTC=0x3020; ---- ---- ---- ---- ---- ---- ---- --d 82: #def FPNP=0x3021; ---- ---- ---- ---- ---- ---d dddd ddd 83: #def FPCL=0x3022; ---- ---- ---- ---- ---- ---- ---- --- 84: #def FPA=0x3060; --dd dddd dddd dddd dddd dddd dddd ddd 85: #def FGBY=0x301A; ---- ---- ---- ---- ---- ---- ---- --- 86: #def FGFn=0x3080; ---- ---- ---- ---- ---- ---d dddd ddd 87: #def FGAn=0x30A0; ---- ---- ---- ---- ---- ---- --dd ddd 88: #def FGTA=0x3028; ---- ---- ---- ---- ---- dddd dddd ddd 89: #def FGTB=0x3029; ---- ---- ---- ---- ---- dddd dddd ddd 90: #def FGCL=0x302A; ---- ---- ---- ---- ---- ---- ---- --- 91: #def FGCAn=0x30C0; ---- --dd dddd dddd dddd dddd dddd ddd 92: #def FGCBn=0x30C0; ---- --dd dddd dddd dddd dddd dddd ddd 93: #def FTBY=0x301B; ---- ---- ---- ---- ---- ---- ---- --- 94: #def FTAL=0x3030; ---- ---- ---- ---- ---- --dd dddd ddd 95: #def FTLL=0x3031; ---- ---- ---- ---- ---- --dd dddd ddd 96: #def FTLS=0x3032; ---- ---- ---- ---- ---- --dd dddd ddd 97: #def FCBY=0x301C; ---- ---- ---- ---- ---- ---- ---- --- 98: #def FCWn=0x3038; ---- ---- ---- ---- ---- ---- dddd ddd 99: #def TPFS=0x3001; ---- ---- ---- ---- ---- ---- -ddd ddd 100: #def TPFE=0x3002; ---- ---- ---- ---- ---- ---- -ddd ddd 101: #def TPQS0=0x3005; ---- ---- ---- ---- ---- ---- -ddd ddd 102: #def TPQE0=0x3006; ---- ---- ---- ---- ---- ---- -ddd ddd 103: #def TPQS1=0x3007; ---- ---- ---- ---- ---- ---- -ddd ddd 104: #def TPQE1=0x3008; ---- ---- ---- ---- ---- ---- -ddd ddd 105: #def TPHT=0x3041; ---- ---- ---- ---- --dd dddd dddd ddd 106: #def TPVBY=0x3043; ---- ---- ---- ---- ---- ---- ---- --- 107: #def TPVT=0x3042; ---- ---- ---- ---- ---- ---- --dd ddd 108: #def TPFP=0x3040; ---- ---- ---- ---- ---- ---- --dd ddd 109: #def TPL=0x3180; ---- ---- ---- ---- ---- ---- ---d ddd 110: #def TPCL=0x3045; ---- ---- ---- ---- ---- ---- ---d ddd 111: #def TPCT=0x3044; ---- ---- ---- ---- ---- ---- ---d ddd 112: #def TPD=0x3047; ---- ---- ---- ---- ---- ---- ---- ddd 113: #def TPH=0x3140; ---- ---- ---- ---- ---- ---- ---d ddd 114: #def TPCBY=0x3046; ---- ---- ---- ---- ---- ---- ---- --- 115: #def TPCI0=0x3048; ---- ---- ---- ---- ---- ---- ---d ddd 116: #def TPCI1=0x3049; ---- ---- ---- ---- ---- ---- ---d ddd 117: #def TPCI2=0x304A; ---- ---- ---- ---- ---- ---- ---d ddd 118: #def TPCI3=0x304B; ---- ---- ---- ---- ---- ---- ---d ddd 119: #def EBD=0x3009; ---- ---- ---- ---- ---- ---- ---- -dd 120: #def EBSF=0x300C; ---- ---- ---- ---- ---- ---- ---- --- 121: #def EBAQA=0x300A; ---- ---- ---- ---- ---- ---- -ddd ddd 122: #def EBSIM=0x300D; ---- ---- ---- ---- ---- ---- ---- --- 123: #def EBSIA=0x300B; ---- ---- ---- ---- ---- ---- -ddd ddd 124: #def EBR=0x0800; ---- ---- ---- ---- ---- -pdd dddd ddd 125: #def EBR0=0x0800; ---- ---- ---- ---- ---- -pdd dddd ddd 126: #def EBR1=0x0840; ---- ---- ---- ---- ---- -pdd dddd ddd 127: #def EBR2=0x0880; ---- ---- ---- ---- ---- -pdd dddd ddd 128: #def EBR3=0x08C0; ---- ---- ---- ---- ---- -pdd dddd ddd 129: #def EBR4=0x0900; ---- ---- ---- ---- ---- -pdd dddd ddd 130: #def EBR5=0x0940; ---- ---- ---- ---- ---- -pdd dddd ddd 131: #def EBW=0x2000; ---- ---- ---- ---- ---- --dd dddd ddd 132: #def EBPP=0x300E; ---- ---- ---- ---- ---- ---- ---- --- 133: #def EBPC=0x300F; ---- ---- ---- ---- ---- ---- ---- --- 134: #def EBP0=0x3010; ---- ---- ---- ---- ---- ---d dddd ddd 135: #def EBP1=0x3011; ---- ---- ---- ---- ---- ---d dddd ddd 136: #def EBP2=0x3012; ---- ---- ---- ---- ---- ---d dddd ddd 137: #def EBP3=0x3013; ---- ---- ---- ---- ---- ---d dddd ddd 138: #def EBIS=0x3014; ---- ---- ---- ---- ---- --dd dddd ddd 139: #def EBIT=0x3015; ---- ---- ---- ---- ---- dddd dddd ddd 140: #def EBIL=0x3016; ---- ---- ---- ---- ---- ---- dddd ddd 141: #def EBIN=0x3017; ---- ---- ---- ---- ---- ---- ---- --- 142: #def EBI=0x0980; dddd dddd dddd dddd dddd dddd dddd ddd 143: #def EBI0=0x0980; dddd dddd dddd dddd dddd dddd dddd dd 144: #def EBI1=0x0981; dddd dddd dddd dddd dddd dddd dddd dd 145: #def EBI2=0x0982; dddd dddd dddd dddd dddd dddd dddd dd 146: #def EBI3=0x0983; dddd dddd dddd dddd dddd dddd dddd dd 147: #def EBI4=0x0984; dddd dddd dddd dddd dddd dddd dddd dd 148: #def EBI5=0x0985; dddd dddd dddd dddd dddd dddd dddd dd 149: #def EBI6=0x0986; dddd dddd dddd dddd dddd dddd dddd dd 150: #def EBI7=0x0987; dddd dddd dddd dddd dddd dddd dddd dd 151: #def EBI8=0x0988; dddd dddd dddd dddd dddd dddd dddd dd 152: #def EBI9=0x0989; dddd dddd dddd dddd dddd dddd dddd dd 153: #def EBIA=0x098A; dddd dddd dddd dddd dddd dddd dddd dd 154: #def EBIB=0x098B; dddd dddd dddd dddd dddd dddd dddd dd 155: #def ARBTIM=0x0A3F; ---- ---- ---- ---- ---- ---- ---- wwr 156: #def MEMRW=0xD000; ---- ---- ---- ---- ---- ---- -www wrr 157: #def MEMCOR=0xD001; ---- ---- ---- ---- ---- ---b dddd iii 158: #def DMDELA=0xD002; ---- ---- ---- ---- ---- ---- ---- aaa 159: #def DMDELS=0xD003; ---- ---- ---- ---- ---- ---- ---- sss 160: #def HCNTI0=0xD010; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 161: #def HCNTI1=0xD011; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 162: #def HCNTI2=0xD012; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 163: #def HCNTI3=0xD013; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 164: #def HCNTD0=0xD014; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 165: #def HCNTD1=0xD015; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 166: #def HCNTD2=0xD016; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 167: #def HCNTD3=0xD017; O0CC CCCC CCCC PPPP PPPP PPNN NNNN NNN 168: #def IA0=0x0B00; ---- ---- ---- ---- ---- aaaa aaaa aaa 169: #def IA1=0x0B20; ---- ---- ---- ---- ---- aaaa aaaa aaa 170: #def IA2=0x0B40; ---- ---- ---- ---- ---- aaaa aaaa aaa 171: #def IA3=0x0B60; ---- ---- ---- ---- ---- aaaa aaaa aaa 172: #def IRQSW0=0x0B0D; ---- ---- ---- ---- ---m mmmm mmmm mmm 173: #def IRQSW1=0x0B2D; ---- ---- ---- ---- ---m mmmm mmmm mmm 174: #def IRQSW2=0x0B4D; ---- ---- ---- ---- ---m mmmm mmmm mmm 175: #def IRQSW3=0x0B6D; ---- ---- ---- ---- ---m mmmm mmmm mmm 176: #def IRQHW0=0x0B0E; ---- ---- ---- ---- ---m mmmm mmmm mmm 177: #def IRQHW1=0x0B2E; ---- ---- ---- ---- ---m mmmm mmmm mmm 178: #def IRQHW2=0x0B4E; ---- ---- ---- ---- ---m mmmm mmmm mmm 179: #def IRQHW3=0x0B6E; ---- ---- ---- ---- ---m mmmm mmmm mmm 180: #def IRQHL0=0x0B0F; ---- ---- ---- ---- ---m mmmm mmmm mmm 181: #def IRQHL1=0x0B2F; ---- ---- ---- ---- ---m mmmm mmmm mmm 182: #def IRQHL2=0x0B4F; ---- ---- ---- ---- ---m mmmm mmmm mmm 183: #def IRQHL3=0x0B6F; ---- ---- ---- ---- ---m mmmm mmmm mmm 184: #def NMOD=0x0D40; ---- ---- ---- ---- ---- ---- ---i cmm 185: #def NTRO=0x0D43; ---- ---- ---- --ii iddd cccb bbaa aff 186: #def NES=0x0D45; rrrr rrrr rrrr rrrr tttt tttt tttt ttt 187: #def NCUT=0x0D4C; dddd dddd cccc cccc bbbb bbbb aaaa aaa 188: #def NRRO=0x0D44; ---- ---- ---- --ii iddd cccb bbaa aff 189: #def NTP=0x0D46; pppp pppp pppp pppp pppp pppp pppp ppp 190: #def NP0=0x0D48; ---- ---- ---- ---- ---- -ppp pfff fec 191: #def NP1=0x0D49; ---- ---- ---- ---- ---- -ppp pfff fec 192: #def NP2=0x0D4A; ---- ---- ---- ---- ---- -ppp pfff fec 193: #def NP3=0x0D4B; ---- ---- ---- ---- ---- -ppp pfff fec 194: #def NLP=0x00C1; ---- ---- HHHH HHHH LLLL LLLL CCCC CCC 195: #def NED=0x0D42; ---- ---- ---- ---- orpp ppff ffcc css 196: #def NDLY=0x0D41; --jj jiii hhhg ggff feee dddc ccbb baa 197: #def NBND=0x0D47; ---- ---- ---- ---- hhhh hhhh llll lll 198: #def NLF=0x00C0; ---- ---- ---- ---- ---- -DSS EHLZ YXW 199: #def NLE=0x00C2; ---- ---- ---- ---- ---- ---- EEEE EEE 200: #def NFE=0x0DC1; ---- ---- ---- ---- ---- ---- ---- DCB 201: #def NCTRL=0x0DC0; ---- ---- ---- ---- ---- ---- ---- --- 202: #def NFSM=0x0DC2; ---- ---- ---- ---- ---- ---- ---S SSS 203: #def NITM0=0x0A08; ---- ---- ---- ---- --tt tttt tttt ttt 204: #def NITM1=0x0A09; ---- ---- ---- ---- --tt tttt tttt ttt 205: #def NITM2=0x0A0A; ---- ---- ---- ---- --tt tttt tttt ttt 206: #def NIP4D=0x0A0B; ---- ---- ---- ---- --tt tttt tttt ttt 207: #def SMOFFON=0x0A05; ---- ---- dddd dddd dddd dddd dddd ddd 208: #def SMON=0x0A06; ---- ---- ---- ---- ---- dddd dddd ddd 209: #def SMOFF=0x0A07; ---- ---- ---- ---- ---- dddd dddd ddd 210: #def NODP=0x0000; dddd dddd dddd dddd dddd dddd dddd ddd 211: #def CMD_LP=0x0012; ---- ---- ---- ---- ---- ---- ---- 212: #def CMD_ACQ=0x0112; ---- ---- ---- ---- ---- ---- ---- 213: #def CMD_CHK_TST=0x0212; ---- ---- ---- ---- ---- ---- ---- 214: #def CMD_EXT_CLR=0x0312; ---- ---- ---- ---- ---- ---- ---- 215: #def CMD_CLEAR=0x0412; ---- ---- ---- ---- ---- ---- ---- 216: #def CMD_PRETRIGG=0x0512; ---- ---- ---- ---- ---- ---- ---- 217: #def CMD_SELFTP=0x0612; ---- ---- ---- ---- ---- ---- ---- 218: #def CMD_CPU_DONE=0x0712; ---- ---- ---- ---- ---- ---- ---- 219: #def GBUSR0=0x0300; -- readonly 220: #def GBUSR1=0x0301; -- readonly *** End of include file /usr/share/trap//conf_va.inc 13: 14: 15: ;########################################################### 16: ;# 17: ;# defines 18: ;# 19: ;########################################################### 20: 21: #def endsig_tr = c14 ; end signature for 22: #def endsig_rr = c15 ; end signature for 23: #def nsamples = c13 ; number of ADC samp 24: #def ChipPOS = c8 ; Chip Position for 25: #def EventHeader = c9 ; Readout Board Head 26: #def EHchip = 28 ; Evenh Header sendi 27: #def EventCounter = c12 ; event counter 28: #def NI_tmsn_delay = c11 ; programmable netwo 29: #def ReadoutFlag = c10 ; bit1: NI readout e 30: ; bit0: SCSN readout 31: #def EvtCtrGIOAdr = 0xC0C ; Address of Event C 32: 33: #def rstack = r8 ; program counter st 34: #def rio = r14 ; local I/O auto inc 35: 36: #ifdef cpu0 37: #def clk_onoff = CPU0SS ; own clock 38: #def clk_onoff_next = CPU2SS ; for delayed start 39: #def LSBdata = 0x03 ; LSBs for data tran 40: #def ni_counters = 0xF0E0 ; ni parity error an 41: #def IRQHW = IRQHW0 ; 42: #def IRQHL = IRQHL0 ; 43: #endif 44: 45: #ifdef cpu1 46: #def clk_onoff = CPU1SS; ; own clock 47: #def clk_onoff_next = CPU3SS; ; for delayed start 48: #def LSBdata = 0x02 ; LSBs for data tran 49: #def ni_counters = 0xF0E1 ; ni parity error an 50: #def IRQHW = IRQHW1 ; 51: #def IRQHL = IRQHL1 ; 52: #endif 53: 54: #ifdef cpu2 55: #def clk_onoff = CPU2SS; ; own clock 56: #def LSBdata = 0x03 ; LSBs for data tran 57: #def ni_counters = 0xF0E2 ; ni parity error an 58: #def IRQHW = IRQHW2 ; 59: #def IRQHL = IRQHL2 ; 60: #endif 61: 62: #ifdef cpu3 63: #def clk_onoff = CPU3SS; ; own clock 64: #def LSBdata = 0x02 ; LSBs for data tran 65: #def ni_counters = 0xF0E3 ; ni parity error an 66: #def IRQHW = IRQHW3 ; 67: #def IRQHL = IRQHL3 ; 68: #endif 69: 70: 71: ;########################################################### 72: ;# 73: ;# 0x000: Infinite Loop at Instruction Memory Reset Address 74: ;# 75: ;########################################################### 76: 77: ORG 0x0; 78: 79: jmpr cc_uncond, 0 0000 : 0000_0100_0000_0000_0000_1111 80: nop 0001 : 0000_0000_0000_0000_0000_0000 81: 82: 83: ;########################################################### 84: ;# 85: ;# 0x100: Interrupt Clear Jump Address 86: ;# 87: ;########################################################### 88: 89: ORG 0x100; 90: clr: 91: #ifdef cpu0 92: iext b1111_0101_0000_0000_0010_0000; 0100 : 0101_0000_0000_1111_0101_0000 93: mov b1111_0101_0000_0000_0010_0000, r1 0101 : 1100_0110_0000_0100_0000_0001 94: jmpr cc_busy, 0 0102 : 0000_0100_0010_0000_0101_0111 95: sgio r1, SMOFFON ; switch off all NI LVDS cells, cl 0103 : 0010_1000_0001_1010_0000_0101 96: #endif 97: 98: #ifdef cpu1 99: mov cmd_ext_clr, r0 100: jmpr cc_busy, 0 101: sgio r0, SMCMD ; clear ready (VA) 102: nop 103: #endif 104: 105: #ifdef cpu2 106: nop 107: nop 108: nop 109: nop 110: #endif 111: 112: #ifdef cpu3 113: nop 114: nop 115: nop 116: nop 117: #endif 118: 119: jmpr cc_uncond, 0 0104 : 0000_0100_0010_0000_1000_1111 120: nop 0105 : 0000_0000_0000_0000_0000_0000 121: 122: 123: ;########################################################### 124: ;# 125: ;# 0x200: Interrupt Tracklet Processing Jump Address 126: ;# 127: ;########################################################### 128: 129: ORG 0x200; 130: acq: 131: #ifdef cpu0 132: mov b0000_0010_0000, r1 0200 : 1100_0110_0000_0100_0000_0001 133: jmpr cc_busy, 0 0201 : 0000_0100_0100_0000_0011_0111 134: sgio r1, SMOFF ; switch off clk_fil 0202 : 0010_1000_0001_1010_0000_0111 135: #else 136: nop 137: nop 138: nop 139: #endif 140: 141: mov 32, r0 0203 : 1100_0110_0000_0100_0000_0000 142: delay: ; wait a while to make sure 143: sub r0, c1, r0 ; NI are ready for transmiss 0204 : 1000_1010_0000_0110_0010_0000 144: jmp cc_nzero, delay ; transition. 0205 : 0000_0100_0000_0000_0000_0001 145: 146: ;#ifdef cpu0 147: ; mov 0xEAD, r0 148: ; #else 149: mov endsig_tr r0 ; load Tracklet End Signatur 0206 : 1100_0010_0000_0111_1100_0000 150: ;#endif 151: spio r0 NODP ; Send Tracklet End Signatur 0207 : 0010_0000_0000_0000_0000_0000 152: 153: jmpr cc_uncond 0 0208 : 0000_0100_0100_0001_0000_1111 154: nop 0209 : 0000_0000_0000_0000_0000_0000 155: 156: 157: ;########################################################### 158: ;# 159: ;# 0x400: Interrupt Raw Data Transmission Jump Address 160: ;# 161: ;########################################################### 162: 163: ORG 0x400 164: raw: 165: #ifdef cpu0 166: mov cmd_CPU_done r0 ; CPU0 indicates upcoming da 0400 : 1100_0110_1110_0010_0100_0000 167: jmpr cc_busy, 0 0401 : 0000_0100_1000_0000_0011_0111 168: sgio r0 SMCMD; 0402 : 0010_1000_0000_1010_0000_0100 169: jmp cc_uncond, continue ; CPU0 fills FIFO immediatel 0403 : 0000_0100_0000_0000_0000_1111 170: #endif 171: 172: #ifdef cpu1 173: nop 174: nop 175: nop 176: jmp cc_uncond, continue ; CPU1 fills FIFO immediatel 177: #endif 178: 179: #ifdef cpu2 180: nop 181: nop 182: nop 183: nop 184: #endif 185: 186: #ifdef cpu3 187: nop 188: nop 189: nop 190: nop 191: #endif 192: 193: mov 0, r0 ; switch off own clock becau 0404 : 1100_0110_0000_0000_0000_0000 194: jmpr cc_busy, 0 0405 : 0000_0100_1000_0000_1011_0111 195: sgio r0, clk_onoff; ; CPU2 and CPU3 are filling 0406 : 0010_1000_0000_1010_0010_0001 196: jmpr cc_busy, 0 ; They will be started by CP 0407 : 0000_0100_1000_0000_1111_0111 197: 198: nop 0408 : 0000_0000_0000_0000_0000_0000 199: nop 0409 : 0000_0000_0000_0000_0000_0000 200: nop 040A : 0000_0000_0000_0000_0000_0000 201: nop 040B : 0000_0000_0000_0000_0000_0000 202: 203: continue: 204: 205: 206: 207: ;############################################## 208: ;# Store Start addresses for SCSN transfer via Databank 209: ;############################################## 210: 211: #ifdef cpu0 ; CPU0 starts at address 0xF 212: iext 0xF000 040C : 0101_0000_0000_0000_0000_1111 213: mov 0xF000, rio 040D : 1100_0110_0000_0000_0000_1110 214: #endif 215: 216: #ifdef cpu1 ; CPU1 starts at address 0x 217: iext 0xF033 218: mov 0xF033, rio 219: #endif 220: 221: #ifdef cpu2 ; CPU2 starts at address 0x 222: iext 0xF065 223: mov 0xF065, rio 224: #endif 225: 226: #ifdef cpu3 ; CPU3 starts at address 0x 227: iext 0xF097 228: mov 0xF097, rio ; end C8 229: #endif 230: 231: 232: 233: ;############################################## 234: ;# NI transfer event header (CPU0 only) 235: ;############################################## 236: 237: #ifdef cpu0 238: 239: mov EHchip, r0 ; chip EHchip starts readout 040E : 1100_0110_0000_0011_1000_0000 240: cmp r0, ChipPOS ; and sends event header 040F : 1000_1000_0000_0111_0000_0000 241: jmp cc_nzero, no_event_header 0410 : 0000_0100_0000_0000_0000_0001 242: 243: shl 2, EventHeader, r0 ; combine event header 0411 : 1011_0010_0010_0111_0010_0000 244: or r0, c1, r0 ; SOE+"01"+SOE+"01" 0412 : 1010_1010_0000_0110_0010_0000 245: shl 15, r0, r1 ; where SOE is the 14 bit St 0413 : 1011_0010_1111_0000_0000_0001 246: shl 1, r1, r1 0414 : 1011_0010_0001_0000_0010_0001 247: or r0, r1, r0 0415 : 1010_1010_0000_0000_0010_0000 248: 249: spio r0 NODP ; NI transfer event header 0416 : 0010_0000_0000_0000_0000_0000 250: jmpr cc_busy, 0 ; SCSN transfer chip header 0417 : 0000_0100_1000_0010_1111_0111 251: sgio+ r0 0418 : 0011_1100_0000_0000_0000_0000 252: 253: #else 254: 255: nop 256: nop 257: nop 258: nop 259: nop 260: nop 261: nop 262: nop 263: nop 264: nop 265: nop 266: 267: #endif 268: 269: no_event_header: 270: 271: swp rio, rio ; swap DBANK address to high 0419 : 0111_1010_0000_0001_1100_1110 272: 273: mov ReadoutFlag, r2 ; load NI&SCSN readout flag 041A : 1100_0010_0000_0111_0100_0010 274: cmp r2, 0 041B : 1100_1000_0010_0000_0000_0000 275: jmp cc_eq, del_end ; check for transmission flags 041C : 0000_0100_0000_0000_0001_0001 276: 277: #ifdef cpu0 278: 279: shl 15, ChipPOS, r0 ; combine chip header 041D : 1011_0010_1111_0111_0000_0000 280: shl 5, r0, r0 ; ChipPOS(8)+EventCounter(20 041E : 1011_0010_0101_0000_0000_0000 281: or r0, EventCounter, r0 041F : 1010_1010_0000_0111_1000_0000 282: shl 2, r0, r0 0420 : 1011_0010_0010_0000_0000_0000 283: or r0, c3, r0 0421 : 1010_1010_0000_0110_0110_0000 284: shl 2, r0, r0 0422 : 1011_0010_0010_0000_0000_0000 285: 286: spio r0 NODP ; NI transfer chip header 0423 : 0010_0000_0000_0000_0000_0000 287: swp rio, rio 0424 : 0111_1010_0000_0001_1100_1110 288: jmpr cc_busy, 0 ; SCSN transfer chip header 0425 : 0000_0100_1000_0100_1011_0111 289: sgio+ r0 ; no busy flag check due to 0426 : 0011_1100_0000_0000_0000_0000 290: swp rio, rio ; till next access 0427 : 0111_1010_0000_0001_1100_1110 291: 292: #else 293: 294: nop 295: nop 296: nop 297: nop 298: nop 299: nop 300: nop 301: nop 302: nop 303: nop 304: nop 305: 306: #endif 307: 308: mov LSBdata, r7 ; pass the two LSBs for data 0428 : 1100_0110_0000_0000_0110_0111 309: 310: iext 0xFFFF0000 ; high word mask for Channel 0429 : 0101_0001_1111_1111_1111_0000 311: mov 0xFFFF0000, r15 042A : 1100_0110_0000_0000_0000_1111 312: 313: mov nsamples, r1 ; initially load number of s 042B : 1100_0010_0000_0111_1010_0001 314: cmp r1, 0 042C : 1100_1000_0001_0000_0000_0000 315: jmp cc_nzero, run_tmsn ; check for transmission fla 042D : 0000_0100_0000_0000_0000_0001 316: 317: del_end: 318: mov 0x020, r2 ; wait a while to make sure 042E : 1100_0110_0000_0100_0000_0010 319: no_tmsn_del: ; NI are ready for transmiss 320: sub r2, c1, r2 ; transition. 042F : 1000_1010_0010_0110_0010_0010 321: jmp cc_nzero, no_tmsn_del 0430 : 0000_0100_0000_0000_0000_0001 322: 323: nop 0431 : 0000_0000_0000_0000_0000_0000 324: jmp cc_uncond, complete_ni_tmsn 0432 : 0000_0100_0000_0000_0000_1111 325: nop 0433 : 0000_0000_0000_0000_0000_0000 326: 327: run_tmsn: 328: 329: 330: ;############################################## 331: ;# NI&SCSN transfer 1st channel 332: ;############################################## 333: 334: mov EBR0, r0 ; address in LIO of the even 0434 : 1100_0111_0000_0000_0000_0000 335: or r0, rio, rio ; to low word of rio 0435 : 1010_1010_0000_0001_1100_1110 336: ; mov nsamples,r1 ; number of samples to read 337: mvpcr +2, rstack 0436 : 1100_0110_1000_0111_0000_1000 338: jmp cc_uncond, ChTML; 0437 : 0000_0100_0000_0000_0000_1111 339: 340: 341: ;############################################## 342: ;# NI&SCSN transfer 2nd channel 343: ;############################################## 344: 345: and r15, rio, rio 0438 : 1010_0110_1111_0001_1100_1110 346: mov EBR1, r0 ; address in LIO of the even 0439 : 1100_0111_0000_1000_0000_0000 347: or r0, rio, rio ; to low word of rio 043A : 1010_1010_0000_0001_1100_1110 348: mov nsamples,r1 ; number of samples to read 043B : 1100_0010_0000_0111_1010_0001 349: mvpcr +2, rstack 043C : 1100_0110_1000_0111_1100_1000 350: jmp cc_uncond, ChTML; 043D : 0000_0100_0000_0000_0000_1111 351: 352: 353: ;############################################## 354: ;# NI&SCSN transfer 3rd channel 355: ;############################################## 356: 357: and r15, rio, rio 043E : 1010_0110_1111_0001_1100_1110 358: mov EBR2, r0 ; address in LIO of the even 043F : 1100_0111_0001_0000_0000_0000 359: or r0, rio, rio ; to low word of rio 0440 : 1010_1010_0000_0001_1100_1110 360: mov nsamples,r1 ; number of samples to read 0441 : 1100_0010_0000_0111_1010_0001 361: mvpcr +2, rstack 0442 : 1100_0110_1000_1000_1000_1000 362: jmp cc_uncond, ChTML; 0443 : 0000_0100_0000_0000_0000_1111 363: 364: 365: ;############################################## 366: ;# NI&SCSN transfer 4th channel 367: ;############################################## 368: 369: and r15, rio, rio 0444 : 1010_0110_1111_0001_1100_1110 370: mov EBR3, r0 ; address in LIO of the even 0445 : 1100_0111_0001_1000_0000_0000 371: or r0, rio, rio ; to low word of rio 0446 : 1010_1010_0000_0001_1100_1110 372: mov nsamples,r1 ; number of samples to read 0447 : 1100_0010_0000_0111_1010_0001 373: mvpcr +2, rstack 0448 : 1100_0110_1000_1001_0100_1000 374: jmp cc_uncond, ChTML; 0449 : 0000_0100_0000_0000_0000_1111 375: 376: 377: ;############################################## 378: ;# NI&SCSN transfer 5th channel 379: ;############################################## 380: 381: and r15, rio, rio 044A : 1010_0110_1111_0001_1100_1110 382: mov EBR4, r0 ; address in LIO of the even 044B : 1100_0111_0010_0000_0000_0000 383: or r0, rio, rio ; to low word of rio 044C : 1010_1010_0000_0001_1100_1110 384: mov nsamples,r1 ; number of samples to read 044D : 1100_0010_0000_0111_1010_0001 385: mvpcr +2, rstack 044E : 1100_0110_1000_1010_0000_1000 386: jmp cc_uncond, ChTML; 044F : 0000_0100_0000_0000_0000_1111 387: 388: 389: ;############################################## 390: ;# NI&SCSN transfer 6th channel (CPU3 only) 391: ;############################################## 392: 393: #ifdef cpu3 394: and r15, rio, rio 395: mov EBR5, r0 ; address in LIO of the even 396: or r0, rio, rio ; to low word of rio 397: mov nsamples,r1 ; number of samples to read 398: mvpcr +2, rstack 399: jmp cc_uncond, ChTML; 400: #else 401: nop 0450 : 0000_0000_0000_0000_0000_0000 402: nop 0451 : 0000_0000_0000_0000_0000_0000 403: nop 0452 : 0000_0000_0000_0000_0000_0000 404: nop 0453 : 0000_0000_0000_0000_0000_0000 405: nop 0454 : 0000_0000_0000_0000_0000_0000 406: #endif; 407: 408: 409: ;############################################## 410: ;# Slow down NI transmission if NI_tmsn_delay != 0 411: ;############################################## 412: 413: complete_ni_tmsn: 414: nop 0455 : 0000_0000_0000_0000_0000_0000 415: 416: #ifdef cpu3 417: 418: mov NI_tmsn_delay, r1 ; mov doesn't set th 419: andt r1, r1 420: jmp cc_zero, end_ni_tmsn 421: cli 422: mov 0x015, r1 423: mov 0x415, r0 424: sgio r0, IRQHW 425: jmpr cc_busy, 0 426: sgio r0, IRQHL 427: jmpr cc_busy, 0 428: jmp cc_uncond, coff 429: #else 430: nop 0456 : 0000_0000_0000_0000_0000_0000 431: nop 0457 : 0000_0000_0000_0000_0000_0000 432: nop 0458 : 0000_0000_0000_0000_0000_0000 433: nop 0459 : 0000_0000_0000_0000_0000_0000 434: nop 045A : 0000_0000_0000_0000_0000_0000 435: nop 045B : 0000_0000_0000_0000_0000_0000 436: nop 045C : 0000_0000_0000_0000_0000_0000 437: nop 045D : 0000_0000_0000_0000_0000_0000 438: nop 045E : 0000_0000_0000_0000_0000_0000 439: nop 045F : 0000_0000_0000_0000_0000_0000 440: nop 0460 : 0000_0000_0000_0000_0000_0000 441: #endif 442: 443: 444: 445: 446: 447: ;############################################## 448: ;# CPU0, CPU1: start CPU2 and CPU3 for delayed transfer 449: ;############################################## 450: 451: end_ni_tmsn: 452: mov 1, r1 0461 : 1100_0110_0000_0000_0010_0001 453: 454: #ifdef cpu0 455: jmpr cc_busy, 0 0462 : 0000_0100_1000_1100_0101_0111 456: sgio r1 clk_onoff_next 0463 : 0010_1000_0001_1010_0010_0101 457: #endif 458: 459: #ifdef cpu1 460: jmpr cc_busy, 0 461: sgio r1 clk_onoff_next 462: #endif 463: 464: #ifdef cpu2 465: nop 466: nop 467: #endif 468: 469: #ifdef cpu3 470: nop 471: nop 472: #endif 473: 474: 475: ;############################################## 476: ;# CPU3: Increment Event Counter 477: ;############################################## 478: 479: #ifdef cpu3 480: 481: mov EventCounter, r0 482: add r0, c1, r0 483: iext 0x1FFFFF 484: mov 0x1FFFFF, r1 485: and r1, r0, r0 486: jmp cc_nzero, EvtCtrOK 487: mov 10, r0 488: EvtCtrOK: 489: jmpr cc_busy, 0 490: sgio r0 EvtCtrGIOAdr 491: 492: #else 493: 494: nop 0464 : 0000_0000_0000_0000_0000_0000 495: nop 0465 : 0000_0000_0000_0000_0000_0000 496: nop 0466 : 0000_0000_0000_0000_0000_0000 497: nop 0467 : 0000_0000_0000_0000_0000_0000 498: nop 0468 : 0000_0000_0000_0000_0000_0000 499: nop 0469 : 0000_0000_0000_0000_0000_0000 500: nop 046A : 0000_0000_0000_0000_0000_0000 501: nop 046B : 0000_0000_0000_0000_0000_0000 502: nop 046C : 0000_0000_0000_0000_0000_0000 503: 504: #endif 505: 506: ;############################################## 507: ;# NI&SCSN transfer end marker 508: ;############################################## 509: 510: mov endsig_rr r0 046D : 1100_0010_0000_0111_1110_0000 511: spio r0 NODP 046E : 0010_0000_0000_0000_0000_0000 512: swp rio, rio 046F : 0111_1010_0000_0001_1100_1110 513: jmpr cc_busy, 0 0470 : 0000_0100_1000_1110_0001_0111 514: ; sgio+ r0 515: swp rio, rio 0471 : 0111_1010_0000_0001_1100_1110 516: 517: 518: ;############################################## 519: ;# automatically go to clear state if ReadoutFlag=0 520: ;############################################## 521: 522: ; mov ReadoutFlag, r2 ; load NI&SCSN reado 523: ; cmp r2, 0 524: ; jmp cc_nzero, coff ; check for transmission fla 525: ; 526: ; #ifdef cpu3 527: ; mov CMD_CLEAR, r0 ; CPU0 indicates upcoming da 528: ; jmpr cc_busy, 0 529: ; sgio r0 SMCMD; 530: ; #else 531: ; nop 532: ; nop 533: ; nop 534: ; #endif 535: 536: 537: 538: ;############################################## 539: ;# switch off own clock after transfer 540: ;############################################## 541: 542: coff: 543: mov 0, r0 0472 : 1100_0110_0000_0000_0000_0000 544: 545: jmpr cc_busy, 0 0473 : 0000_0100_1000_1110_0111_0111 546: sgio r0 clk_onoff 0474 : 0010_1000_0000_1010_0010_0001 547: jmpr cc_busy, 0 0475 : 0000_0100_1000_1110_1011_0111 548: 549: nop 0476 : 0000_0000_0000_0000_0000_0000 550: nop 0477 : 0000_0000_0000_0000_0000_0000 551: nop 0478 : 0000_0000_0000_0000_0000_0000 552: nop 0479 : 0000_0000_0000_0000_0000_0000 553: nop 047A : 0000_0000_0000_0000_0000_0000 554: nop 047B : 0000_0000_0000_0000_0000_0000 555: nop 047C : 0000_0000_0000_0000_0000_0000 556: 557: jmp cc_uncond, coff 047D : 0000_0100_0000_0000_0000_1111 558: nop 047E : 0000_0000_0000_0000_0000_0000 559: 560: 561: 562: ;########################################################### 563: ;# 564: ;# NI transmission of one channel 565: ;# 566: ;########################################################### 567: ;# 568: ;# Interface: 569: ;# 570: ;# Input: r14 start address of event buffer in LIO 571: ;# r1 number of time bins to read (>0, mul 572: ;# r7 OR mask for the 32 bit word 573: ;# r2 Readout Flags 574: ;# 575: ;# Output: sends data to the NI output port 576: ;# Modifies: r3, r4, r5, r14, r1 (0) 577: ;# 578: ;########################################################### 579: 580: ;########################### 581: ;# BEGIN data transfer loop 582: ChTML: ;########################### 583: 584: lpio+ r3 ; initial read has to be don 047F : 1110_1110_0000_0000_0000_0011 585: lpio+ r3 ; memory delay (synchronous 0480 : 1110_1110_0000_0000_0000_0011 586: lpio+ r4 0481 : 1110_1110_0000_0000_0000_0100 587: lpio rio, r5 0482 : 1110_0010_0000_0001_1100_0101 588: 589: shl 10, r5, r5 ; combine three 10 bit data 0483 : 1011_0010_1010_0000_1010_0101 590: or r5, r4, r5 ; to one (32=10+10+10+2) bit 0484 : 1010_1010_0101_0000_1000_0101 591: shl 10, r5, r5 0485 : 1011_0010_1010_0000_1010_0101 592: or r5, r3, r5 0486 : 1010_1010_0101_0000_0110_0101 593: shl 2, r5, r5 0487 : 1011_0010_0010_0000_1010_0101 594: or r5, r7, r5 ; set the two LSBs 0488 : 1010_1010_0101_0000_1110_0101 595: 596: and r2, c2, r2 ; check NI readout flag 0489 : 1010_0110_0010_0110_0100_0010 597: jmp cc_zero, scsn_readout 048A : 0000_0100_0000_0000_0001_0001 598: 599: spio r5, NODP ; write to NI 048B : 0010_0000_0101_0000_0000_0000 600: 601: scsn_readout: 602: swp rio, rio ; switch to SCSN storage add 048C : 0111_1010_0000_0001_1100_1110 603: sgio+ r5 ; write to DBANK for SCSN re 048D : 0011_1100_0101_0000_0000_0000 604: swp rio, rio ; switch back to event buffe 048E : 0111_1010_0000_0001_1100_1110 605: 606: sub r1, c3, r1 ; decrease number of words t 048F : 1000_1010_0001_0110_0110_0001 607: jmp cc_gtu, ChTML ; loop 0490 : 0000_0100_0000_0000_0000_1000 608: 609: xor r7, c1, r7 0491 : 1010_0010_0111_0110_0010_0111 610: jmp cc_uncond, rstack ; return from subroutine 0492 : 0000_1000_1000_0000_0000_1111 611: ;########################### 612: ;# END data transfer loop 613: ;########################### 614: 615: nop 0493 : 0000_0000_0000_0000_0000_0000 616: 617: 618: ;########################################################### 619: ;# 620: ;# 0x500: Interrupt NI FIFO empty 621: ;# 622: ;########################################################### 623: ; 624: ORG 0x500 625: 626: 627: sgio r1, IRQHL 0500 : 0010_1000_0001_1011_0000_1111 628: jmpr cc_busy, 0 0501 : 0000_0100_1010_0000_0011_0111 629: sgio r1, IRQHW 0502 : 0010_1000_0001_1011_0000_1110 630: jmpr cc_busy, 0 0503 : 0000_0100_1010_0000_0111_0111 631: 632: ; program the delay 633: mov NI_tmsn_delay, r1 0504 : 1100_0010_0000_0111_0110_0001 634: spio r1, 0x200 0505 : 0010_0000_0001_0010_0000_0000 635: mov b1010_0101_1111, r1 ; counter, down, irq 0506 : 1100_0111_0100_1011_1110_0001 636: spio r1, 0x201 0507 : 0010_0000_0001_0010_0000_0001 637: mov b0101_0101, r1 0508 : 1100_0110_0000_1010_1010_0001 638: sgio r1, IRQHL 0509 : 0010_1000_0001_1011_0000_1111 639: jmpr cc_busy, 0 050A : 0000_0100_1010_0001_0101_0111 640: sgio r1, IRQHW 050B : 0010_1000_0001_1011_0000_1110 641: jmpr cc_busy, 0 050C : 0000_0100_1010_0001_1001_0111 642: jmp cc_uncond, coff 050D : 0000_0100_0000_0000_0000_1111 643: 644: 645: ;########################################################### 646: ;# 647: ;# 0x600: Interrupt NI FIFO empty 648: ;# 649: ;########################################################### 650: ; 651: ORG 0x600 652: 653: ; restore the interrupt mask 654: mov 0x015, r1 0600 : 1100_0110_0000_0010_1010_0001 655: sgio r1, IRQHL 0601 : 0010_1000_0001_1011_0000_1111 656: jmpr cc_busy, 0 0602 : 0000_0100_1100_0000_0101_0111 657: sgio r1, IRQHW 0603 : 0010_1000_0001_1011_0000_1110 658: jmpr cc_busy, 0 0604 : 0000_0100_1100_0000_1001_0111 659: 660: 661: ; send end signature 662: jmp cc_uncond, end_ni_tmsn 0605 : 0000_0100_0000_0000_0000_1111 663: nop 0606 : 0000_0000_0000_0000_0000_0000 Source file read, 0 error(s), 0 warning(s).