Assembler for MIMD-TRAP2/3 (c) V.Angelov, v3.3, Apr 2004 Please send any comments to: angelov@kip.uni-heidelberg.de 16:39:33 / 03 Aug 2006 Source code file: src/fitred.asm Memory initialisation file: Log file: wrk/cpu3.log Program memory size in words: 4096 Default constants, read from /cad/tools/bin/asm_mimd.inc 1 CPU3 = 2 CC_SIGNED = 0X14 3 CC_NSIGNED = 0X04 4 CC_ZERO = 0X11 5 CC_NZERO = 0X01 6 CC_OVERFL = 0X13 7 CC_NOVERFL = 0X03 8 CC_NEG = 0X12 9 CC_NNEG = 0X02 10 CC_CARRY = 0X10 11 CC_NCARRY = 0X00 12 CC_BUSY = 0X17 13 CC_NBUSY = 0X07 14 CC_DIVB = 0X15 15 CC_NDIVB = 0X05 16 CC_ERRDIV = 0X16 17 CC_NERRDIV = 0X06 18 CC_UNCOND = 0X0F 19 CC_EQ = 0X11 20 CC_NEQ = 0X01 21 CC_NEG = 0X12 22 CC_POS0 = 0X02 23 CC_LTS = 0X14 24 CC_GES = 0X04 25 CC_LTU = 0X10 26 CC_GEU = 0X00 27 CC_LES = 0X19 28 CC_GTS = 0X09 29 CC_LEU = 0X18 30 CC_GTU = 0X08 31 RR_BYTE = 3 32 RR_WORD = 1 33 RR_DWORD = 0 34 LRA1 = LRA 3, 35 LRA2 = LRA 1, 36 LRA4 = LRA 0, 37 LRA4+ = LRA+ 0, 38 XOR = EOR 39 NOT = COM 40 SHLT = SHL 41 ANDT = AND 42 R0 = PRF[0] 43 R1 = PRF[1] 44 R2 = PRF[2] 45 R3 = PRF[3] 46 R4 = PRF[4] 47 R5 = PRF[5] 48 R6 = PRF[6] 49 R7 = PRF[7] 50 R8 = PRF[8] 51 R9 = PRF[9] 52 R10 = PRF[10] 53 R11 = PRF[11] 54 R12 = PRF[12] 55 R13 = PRF[13] 56 R14 = PRF[14] 57 R15 = PRF[15] 58 G0 = GRF[0] 59 G1 = GRF[1] 60 G2 = GRF[2] 61 G3 = GRF[3] 62 G4 = GRF[4] 63 G5 = GRF[5] 64 G6 = GRF[6] 65 G7 = GRF[7] 66 G8 = GRF[8] 67 G9 = GRF[9] 68 G10 = GRF[10] 69 G11 = GRF[11] 70 G12 = GRF[12] 71 G13 = GRF[13] 72 G14 = GRF[14] 73 G15 = GRF[15] 74 F0 = FIT[0] 75 F1 = FIT[1] 76 F2 = FIT[2] 77 F3 = FIT[3] 78 F4 = FIT[4] 79 F5 = FIT[5] 80 F6 = FIT[6] 81 F7 = FIT[7] 82 F8 = FIT[8] 83 F9 = FIT[9] 84 F10 = FIT[10] 85 F11 = FIT[11] 86 F12 = FIT[12] 87 F13 = FIT[13] 88 F14 = FIT[14] 89 F15 = FIT[15] 90 C0 = CON[0] 91 C1 = CON[1] 92 C2 = CON[2] 93 C3 = CON[3] 94 C4 = CON[4] 95 C5 = CON[5] 96 C6 = CON[6] 97 C7 = CON[7] 98 C8 = CON[8] 99 C9 = CON[9] 100 C10 = CON[10] 101 C11 = CON[11] 102 C12 = CON[12] 103 C13 = CON[13] 104 C14 = CON[14] 105 C15 = CON[15] *** Include file 1: #def SML0=0x0A00; SSSS RRRR RR-- ---- -itt ttt 2: #def SML1=0x0A01; SSSS RRRR RR-- ---- -itt ttt 3: #def SML2=0x0A02; SSSS RRRR RR-- ---- -itt ttt 4: #def SMMODE=0x0A03; SSSS RRRR RR-- ---- pppp snm 5: #def SMCMD=0x0A04; ---- ---- ---- ---- cccc ccc 6: #def CPU0CLK=0x0A20; ---- ---- ---- ---- ---- --- 7: #def CPU0SS=0x0A21; ---- ---- ---- ---- ---- --- 8: #def CPU1CLK=0x0A22; ---- ---- ---- ---- ---- --- 9: #def CPU1SS=0x0A23; ---- ---- ---- ---- ---- --- 10: #def CPU2CLK=0x0A24; ---- ---- ---- ---- ---- --- 11: #def CPU2SS=0x0A25; ---- ---- ---- ---- ---- --- 12: #def CPU3CLK=0x0A26; ---- ---- ---- ---- ---- --- 13: #def CPU3SS=0x0A27; ---- ---- ---- ---- ---- --- 14: #def NICLK=0x0A28; ---- ---- ---- ---- ---- --- 15: #def NICLKSS=0x0A29; ---- ---- ---- ---- ---- --- 16: #def FILCLK=0x0A2A; ---- ---- ---- ---- ---- --- 17: #def FILCLKSS=0x0A2B; ---- ---- ---- ---- ---- --- 18: #def PRECLK=0x0A2C; ---- ---- ---- ---- ---- --- 19: #def PRECLKSS=0x0A2D; ---- ---- ---- ---- ---- --- 20: #def ADCEN=0x0A2E; ---- ---- ---- ---- ---- --- 21: #def ADCENSS=0x0A2F; ---- ---- ---- ---- ---- --- 22: #def NIODE=0x0A30; ---- ---- ---- ---- ---- --- 23: #def NIODESS=0x0A31; ---- ---- ---- ---- ---- --- 24: #def NIOCE=0x0A32; ---- ---- ---- ---- ---- --- 25: #def NIOCESS=0x0A33; ---- ---- ---- ---- ---- --- 26: #def NIIDE=0x0A34; ---- ---- ---- ---- ---- --- 27: #def NIIDESS=0x0A35; ---- ---- ---- ---- ---- --- 28: #def NIICE=0x0A36; ---- ---- ---- ---- ---- --- 29: #def NIICESS=0x0A37; ---- ---- ---- ---- ---- --- 30: #def PASADEL=0x3158; ---- ---- ---- ---- ---- --- 31: #def PASAPHA=0x3159; ---- ---- ---- ---- ---- --- 32: #def PASAPRA=0x315A; ---- ---- ---- ---- ---- --- 33: #def PASADAC=0x315B; ---- ---- ---- ---- ---- --- 34: #def PASACHM=0x315C; ---- ---- ---- -aaa aaaa aaa 35: #def PASASTL=0x315D; ---- ---- ---- ---- ---- --- 36: #def PASAPR1=0x315E; ---- ---- ---- ---- ---- --- 37: #def PASAPR0=0x315F; ---- ---- ---- ---- ---- --- 38: #def ADCMSK=0x3050; ---- ---- ---a aaaa aaaa aaa 39: #def ADCINB=0x3051; ---- ---- ---- ---- ---- --- 40: #def ADCDAC=0x3052; ---- ---- ---- ---- ---- --- 41: #def ADCPAR=0x3053; ---- ---- ---- --ii iiss ssb 42: #def ADCTST=0x3054; ---- ---- ---- ---- ---- --- 43: #def SADCAZ=0x3055; ---- ---- ---- ---- ---- --- 44: #def SADCTRG=0x3161; ---- ---- ---- ---- ---- --- 45: #def SADCRUN=0x3162; ---- ---- ---- ---- ---- --- 46: #def SADCPWR=0x3163; ---- ---- ---- ---- ---- --- 47: #def SADCSTA=0x3164; ---- ---- ---- ---- ---- --- 48: #def L0TSIM=0x3165; ---- ---- ---- ---- --aa aaa 49: #def SADCEC=0x3166; ---- ---- ---- ---- ---- --- 50: #def SADCC0=0x3168; ---- ---- ---- ---- ---- --A 51: #def SADCC1=0x3169; ---- ---- ---- ---- ---- --A 52: #def SADCC2=0x316A; ---- ---- ---- ---- ---- --A 53: #def SADCC3=0x316B; ---- ---- ---- ---- ---- --A 54: #def SADCC4=0x316C; ---- ---- ---- ---- ---- --A 55: #def SADCC5=0x316D; ---- ---- ---- ---- ---- --A 56: #def SADCC6=0x316E; ---- ---- ---- ---- ---- --A 57: #def SADCC7=0x316F; ---- ---- ---- ---- ---- --A 58: #def SADCMC=0x3170; ---- ---- ---- ---- ---- --- 59: #def SADCOC=0x3171; ---- ---- ---- ---- ---- --- 60: #def SADCGTB=0x3172; hhhh gggg ffff eeee dddd ccc 61: #def SADCTC=0x3173; ---- ---- ---- ---- ---- --- 62: #def ADCCPU=0x0100; ---- ---- ---- ---- ---- -ea 63: #def SEBDEN=0x3178; ---- ---- ---- ---- ---- --- 64: #def SEBDOU=0x3179; ---- ---- ---- ---- ---- --- 65: #def SEBDIN=0x317A; ---- ---- ---- ---- ---- --- 66: #def CHIPID=0x3160; ---- ---- ---- --AA AAAA AAA 67: #def TPPT0=0x3000; ---- ---- ---- ---- ---- --- 68: #def TPPAE=0x3004; ---- ---- ---- ---- ---- --- 69: #def TPPGR=0x3003; ---- ---- ---- ---- ---- --- 70: #def FLBY=0x3018; ---- ---- ---- ---- ---- --- 71: #def FLL=0x3100; ---- ---- ---- ---- ---- --- 72: #def FPBY=0x3019; ---- ---- ---- ---- ---- --- 73: #def FPTC=0x3020; ---- ---- ---- ---- ---- --- 74: #def FPNP=0x3021; ---- ---- ---- ---- ---- --- 75: #def FPCL=0x3022; ---- ---- ---- ---- ---- --- 76: #def FPA=0x3060; --dd dddd dddd dddd dddd ddd 77: #def FGBY=0x301A; ---- ---- ---- ---- ---- --- 78: #def FGFn=0x3080; ---- ---- ---- ---- ---- --- 79: #def FGAn=0x30A0; ---- ---- ---- ---- ---- --- 80: #def FGTA=0x3028; ---- ---- ---- ---- ---- ddd 81: #def FGTB=0x3029; ---- ---- ---- ---- ---- ddd 82: #def FGCL=0x302A; ---- ---- ---- ---- ---- --- 83: #def FGCAn=0x30C0; ---- --dd dddd dddd dddd ddd 84: #def FGCBn=0x30C0; ---- --dd dddd dddd dddd ddd 85: #def FTBY=0x301B; ---- ---- ---- ---- ---- --- 86: #def FTAL=0x3030; ---- ---- ---- ---- ---- --d 87: #def FTLL=0x3031; ---- ---- ---- ---- ---- --d 88: #def FTLS=0x3032; ---- ---- ---- ---- ---- --d 89: #def FCBY=0x301C; ---- ---- ---- ---- ---- --- 90: #def FCWn=0x3038; ---- ---- ---- ---- ---- --- 91: #def TPFS=0x3001; ---- ---- ---- ---- ---- --- 92: #def TPFE=0x3002; ---- ---- ---- ---- ---- --- 93: #def TPQS0=0x3005; ---- ---- ---- ---- ---- --- 94: #def TPQE0=0x3006; ---- ---- ---- ---- ---- --- 95: #def TPQS1=0x3007; ---- ---- ---- ---- ---- --- 96: #def TPQE1=0x3008; ---- ---- ---- ---- ---- --- 97: #def TPHT=0x3041; ---- ---- ---- ---- --dd ddd 98: #def TPVBY=0x3043; ---- ---- ---- ---- ---- --- 99: #def TPVT=0x3042; ---- ---- ---- ---- ---- --- 100: #def TPFP=0x3040; ---- ---- ---- ---- ---- --- 101: #def TPL=0x3180; ---- ---- ---- ---- ---- --- 102: #def TPCL=0x3045; ---- ---- ---- ---- ---- --- 103: #def TPCT=0x3044; ---- ---- ---- ---- ---- --- 104: #def TPD=0x3047; ---- ---- ---- ---- ---- --- 105: #def TPH=0x3140; ---- ---- ---- ---- ---- --- 106: #def TPCBY=0x3046; ---- ---- ---- ---- ---- --- 107: #def TPCI0=0x3048; ---- ---- ---- ---- ---- --- 108: #def TPCI1=0x3049; ---- ---- ---- ---- ---- --- 109: #def TPCI2=0x304A; ---- ---- ---- ---- ---- --- 110: #def TPCI3=0x304B; ---- ---- ---- ---- ---- --- 111: #def EBD=0x3009; ---- ---- ---- ---- ---- --- 112: #def EBSF=0x300C; ---- ---- ---- ---- ---- --- 113: #def EBAQA=0x300A; ---- ---- ---- ---- ---- --- 114: #def EBSIM=0x300D; ---- ---- ---- ---- ---- --- 115: #def EBSIA=0x300B; ---- ---- ---- ---- ---- --- 116: #def EBR=0x0800; ---- ---- ---- ---- ---- -pd 117: #def EBR0=0x0800; ---- ---- ---- ---- ---- -pd 118: #def EBR1=0x0840; ---- ---- ---- ---- ---- -pd 119: #def EBR2=0x0880; ---- ---- ---- ---- ---- -pd 120: #def EBR3=0x08C0; ---- ---- ---- ---- ---- -pd 121: #def EBR4=0x0900; ---- ---- ---- ---- ---- -pd 122: #def EBR5=0x0940; ---- ---- ---- ---- ---- -pd 123: #def EBW=0x2000; ---- ---- ---- ---- ---- --d 124: #def EBPP=0x300E; ---- ---- ---- ---- ---- --- 125: #def EBPC=0x300F; ---- ---- ---- ---- ---- --- 126: #def EBP0=0x3010; ---- ---- ---- ---- ---- --- 127: #def EBP1=0x3011; ---- ---- ---- ---- ---- --- 128: #def EBP2=0x3012; ---- ---- ---- ---- ---- --- 129: #def EBP3=0x3013; ---- ---- ---- ---- ---- --- 130: #def EBIS=0x3014; ---- ---- ---- ---- ---- --d 131: #def EBIT=0x3015; ---- ---- ---- ---- ---- ddd 132: #def EBIL=0x3016; ---- ---- ---- ---- ---- --- 133: #def EBIN=0x3017; ---- ---- ---- ---- ---- --- 134: #def EBI=0x0980; dddd dddd dddd dddd dddd ddd 135: #def EBI0=0x0980; dddd dddd dddd dddd dddd dd 136: #def EBI1=0x0981; dddd dddd dddd dddd dddd dd 137: #def EBI2=0x0982; dddd dddd dddd dddd dddd dd 138: #def EBI3=0x0983; dddd dddd dddd dddd dddd dd 139: #def EBI4=0x0984; dddd dddd dddd dddd dddd dd 140: #def EBI5=0x0985; dddd dddd dddd dddd dddd dd 141: #def EBI6=0x0986; dddd dddd dddd dddd dddd dd 142: #def EBI7=0x0987; dddd dddd dddd dddd dddd dd 143: #def EBI8=0x0988; dddd dddd dddd dddd dddd dd 144: #def EBI9=0x0989; dddd dddd dddd dddd dddd dd 145: #def EBIA=0x098A; dddd dddd dddd dddd dddd dd 146: #def EBIB=0x098B; dddd dddd dddd dddd dddd dd 147: #def ARBTIM=0x0A3F; ---- ---- ---- ---- ---- --- 148: #def MEMRW=0xD000; ---- ---- ---- ---- ---- --- 149: #def MEMCOR=0xD001; ---- ---- ---- ---- ---- --- 150: #def DMDELA=0xD002; ---- ---- ---- ---- ---- --- 151: #def DMDELS=0xD003; ---- ---- ---- ---- ---- --- 152: #def HCNTI0=0xD010; O0CC CCCC CCCC PPPP PPPP PPN 153: #def HCNTI1=0xD011; O0CC CCCC CCCC PPPP PPPP PPN 154: #def HCNTI2=0xD012; O0CC CCCC CCCC PPPP PPPP PPN 155: #def HCNTI3=0xD013; O0CC CCCC CCCC PPPP PPPP PPN 156: #def HCNTD0=0xD014; O0CC CCCC CCCC PPPP PPPP PPN 157: #def HCNTD1=0xD015; O0CC CCCC CCCC PPPP PPPP PPN 158: #def HCNTD2=0xD016; O0CC CCCC CCCC PPPP PPPP PPN 159: #def HCNTD3=0xD017; O0CC CCCC CCCC PPPP PPPP PPN 160: #def IA0=0x0B00; ---- ---- ---- ---- ---- aaa 161: #def IA1=0x0B20; ---- ---- ---- ---- ---- aaa 162: #def IA2=0x0B40; ---- ---- ---- ---- ---- aaa 163: #def IA3=0x0B60; ---- ---- ---- ---- ---- aaa 164: #def IRQSW0=0x0B0D; ---- ---- ---- ---- ---m mmm 165: #def IRQSW1=0x0B2D; ---- ---- ---- ---- ---m mmm 166: #def IRQSW2=0x0B4D; ---- ---- ---- ---- ---m mmm 167: #def IRQSW3=0x0B6D; ---- ---- ---- ---- ---m mmm 168: #def IRQHW0=0x0B0E; ---- ---- ---- ---- ---m mmm 169: #def IRQHW1=0x0B2E; ---- ---- ---- ---- ---m mmm 170: #def IRQHW2=0x0B4E; ---- ---- ---- ---- ---m mmm 171: #def IRQHW3=0x0B6E; ---- ---- ---- ---- ---m mmm 172: #def IRQHL0=0x0B0F; ---- ---- ---- ---- ---m mmm 173: #def IRQHL1=0x0B2F; ---- ---- ---- ---- ---m mmm 174: #def IRQHL2=0x0B4F; ---- ---- ---- ---- ---m mmm 175: #def IRQHL3=0x0B6F; ---- ---- ---- ---- ---m mmm 176: #def NMOD=0x0D40; ---- ---- ---- ---- ---- --- 177: #def NTRO=0x0D43; ---- ---- ---- --ii iddd ccc 178: #def NES=0x0D45; rrrr rrrr rrrr rrrr tttt ttt 179: #def NCUT=0x0D4C; dddd dddd cccc cccc bbbb bbb 180: #def NRRO=0x0D44; ---- ---- ---- --ii iddd ccc 181: #def NTP=0x0D46; pppp pppp pppp pppp pppp ppp 182: #def NP0=0x0D48; ---- ---- ---- ---- ---- -pp 183: #def NP1=0x0D49; ---- ---- ---- ---- ---- -pp 184: #def NP2=0x0D4A; ---- ---- ---- ---- ---- -pp 185: #def NP3=0x0D4B; ---- ---- ---- ---- ---- -pp 186: #def NLP=0x00C1; ---- ---- HHHH HHHH LLLL LLL 187: #def NED=0x0D42; ---- ---- ---- ---- orpp ppf 188: #def NDLY=0x0D41; --jj jiii hhhg ggff feee ddd 189: #def NBND=0x0D47; ---- ---- ---- ---- hhhh hhh 190: #def NLF=0x00C0; ---- ---- ---- ---- ---- -DS 191: #def NLE=0x00C2; ---- ---- ---- ---- ---- --- 192: #def NFE=0x0DC1; ---- ---- ---- ---- ---- --- 193: #def NCTRL=0x0DC0; ---- ---- ---- ---- ---- --- 194: #def NFSM=0x0DC2; ---- ---- ---- ---- ---- --- 195: #def NITM0=0x0A08; ---- ---- ---- ---- --tt ttt 196: #def NITM1=0x0A09; ---- ---- ---- ---- --tt ttt 197: #def NITM2=0x0A0A; ---- ---- ---- ---- --tt ttt 198: #def NIP4D=0x0A0B; ---- ---- ---- ---- --tt ttt 199: #def SMOFFON=0x0A05; ---- ---- dddd dddd dddd ddd 200: #def SMON=0x0A06; ---- ---- ---- ---- ---- ddd 201: #def SMOFF=0x0A07; ---- ---- ---- ---- ---- ddd 202: #def NODP=0x0000; dddd dddd dddd dddd dddd ddd 203: #def CMD_LP=0x0012; ---- ---- ---- ---- ---- 204: #def CMD_ACQ=0x0112; ---- ---- ---- ---- ---- 205: #def CMD_CHK_TST=0x0212; ---- ---- ---- ---- ---- 206: #def CMD_EXT_CLR=0x0312; ---- ---- ---- ---- ---- 207: #def CMD_CLEAR=0x0412; ---- ---- ---- ---- ---- 208: #def CMD_PRETRIGG=0x0512; ---- ---- ---- ---- ---- 209: #def CMD_SELFTP=0x0612; ---- ---- ---- ---- ---- 210: #def CMD_CPU_DONE=0x0712; ---- ---- ---- ---- ---- *** End of include file /cad/tools/bin/conf_va.inc 2: 3: ;################################################# 4: ;# 5: ;# Network Interface (NI) test program using the 6: ;# Ruprecht-Karls-Universitaet Heidelberg 7: ;# Physikalisches Institut 8: ;# 9: ;# J. Mercado ver. 1.9 latest update: 14.12.2005 10: ;# 11: ;# V. Angelov ver 2.0 latest update: 16.12.2005 12: ;# - first working version 13: ;# V. Angelov ver 2.1 latest update: 16.12.2005 14: ;# - added counters for the strobe pulses 15: ;# - more comments 16: ;# V. Angelov ver 2.2 latest update: 17.12.2005 17: ;# - second write to the output port using the in 18: ;# 19: ;# V. Angelov ver 2.3 latest update: 27.04.2006 20: ;# - packets of 7 32 bit data words and the inver 21: ;# constants C8..C14 (programmable over scsn at 22: ;# - the number of the packets is programmable as 23: ;# 24: ;# Short description of the program 25: ;# 1) CPU3 inits the NI in network mode 26: ;# 27: ;# 2) all CPUs init the privat counters to count 28: ;# 29: ;# 3) CPU3 writes 7 times two words - the cn and 30: ;# 31: ;# 4) all CPUs read from NI input fifo and write 32: ;# 33: ;# 5) all CPUs read the counters and write to DBA 34: ;# 35: ;# 6) CPU3 switches to low power 36: ;# 37: ;################################################# 38: 39: ; the address in GIO for storing the output data 40: ; 41: #ifdef cpu0 42: #def DMAD=0xF000 43: #endif 44: #ifdef cpu1 45: #def DMAD=0xF040 46: #endif 47: #ifdef cpu2 48: #def DMAD=0xF080 49: #endif 50: #ifdef cpu3 51: #def DMAD=0xF0C0 52: #endif 53: 54: #def CTPDINI = 0x0200 55: #def CTPCTRL = 0x0201 56: #def CTPDOUT = 0x0202 57: 58: ORG 0 59: ; start of the IRQ tst procedure 60: tst: 61: nop 0000 : 0000_0000_0000_0000_0000_0000 62: nop 0001 : 0000_0000_0000_0000_0000_0000 63: nop 0002 : 0000_0000_0000_0000_0000_0000 64: nop 0003 : 0000_0000_0000_0000_0000_0000 65: nop 0004 : 0000_0000_0000_0000_0000_0000 66: 67: #ifdef cpu3 68: ; clear the NI 69: mov b010011 r0; 0005 : 1100_0110_0000_0010_0110_0000 70: jmpr cc_busy 0 0006 : 0000_0100_0000_0000_1101_0111 71: sgio r0 NMOD 0007 : 0010_1000_0000_1101_0100_0000 72: nop 0008 : 0000_0000_0000_0000_0000_0000 73: nop 0009 : 0000_0000_0000_0000_0000_0000 74: ; release clear, set in network mode 75: mov b011011 r0; 000A : 1100_0110_0000_0011_0110_0000 76: jmpr cc_busy 0 000B : 0000_0100_0000_0001_0111_0111 77: sgio r0 NMOD 000C : 0010_1000_0000_1101_0100_0000 78: #else 79: nop 80: nop 81: nop 82: nop 83: nop 84: nop 85: nop 86: nop 87: #endif 88: ; initilalize the privat counter as up-counter, ex 89: mov b0110_0000_0000, r0 000D : 1100_0110_1100_0000_0000_0000 90: spio r0, CTPCTRL 000E : 0010_0000_0000_0010_0000_0001 91: mov 0, r0 000F : 1100_0110_0000_0000_0000_0000 92: spio r0, CTPDINI 0010 : 0010_0000_0000_0010_0000_0000 93: nop 0011 : 0000_0000_0000_0000_0000_0000 94: nop 0012 : 0000_0000_0000_0000_0000_0000 95: nop 0013 : 0000_0000_0000_0000_0000_0000 96: nop 0014 : 0000_0000_0000_0000_0000_0000 97: #ifdef cpu3 98: ; writing to the NI 99: mov c15, r1 0015 : 1100_0010_0000_0111_1110_0001 100: spack: 101: mov c8, r0 0016 : 1100_0010_0000_0111_0000_0000 102: spio r0, 0 0017 : 0010_0000_0000_0000_0000_0000 103: not r0, r0; invert the pattern 0018 : 1011_1110_0000_0000_0000_0000 104: spio r0, 0 0019 : 0010_0000_0000_0000_0000_0000 105: mov c9, r0 001A : 1100_0010_0000_0111_0010_0000 106: spio r0, 0 001B : 0010_0000_0000_0000_0000_0000 107: not r0, r0; invert the pattern 001C : 1011_1110_0000_0000_0000_0000 108: spio r0, 0 001D : 0010_0000_0000_0000_0000_0000 109: mov c10, r0 001E : 1100_0010_0000_0111_0100_0000 110: spio r0, 0 001F : 0010_0000_0000_0000_0000_0000 111: not r0, r0; invert the pattern 0020 : 1011_1110_0000_0000_0000_0000 112: spio r0, 0 0021 : 0010_0000_0000_0000_0000_0000 113: mov c11, r0 0022 : 1100_0010_0000_0111_0110_0000 114: spio r0, 0 0023 : 0010_0000_0000_0000_0000_0000 115: not r0, r0; invert the pattern 0024 : 1011_1110_0000_0000_0000_0000 116: spio r0, 0 0025 : 0010_0000_0000_0000_0000_0000 117: mov c12, r0 0026 : 1100_0010_0000_0111_1000_0000 118: spio r0, 0 0027 : 0010_0000_0000_0000_0000_0000 119: not r0, r0; invert the pattern 0028 : 1011_1110_0000_0000_0000_0000 120: spio r0, 0 0029 : 0010_0000_0000_0000_0000_0000 121: mov c13, r0 002A : 1100_0010_0000_0111_1010_0000 122: spio r0, 0 002B : 0010_0000_0000_0000_0000_0000 123: not r0, r0; invert the pattern 002C : 1011_1110_0000_0000_0000_0000 124: spio r0, 0 002D : 0010_0000_0000_0000_0000_0000 125: mov c14, r0 002E : 1100_0010_0000_0111_1100_0000 126: spio r0, 0 002F : 0010_0000_0000_0000_0000_0000 127: not r0, r0; invert the pattern 0030 : 1011_1110_0000_0000_0000_0000 128: spio r0, 0 0031 : 0010_0000_0000_0000_0000_0000 129: nop 0032 : 0000_0000_0000_0000_0000_0000 130: sub r1, c1, r1 0033 : 1000_1010_0001_0110_0010_0001 131: jmp cc_nzero, spack 0034 : 0000_0100_0000_0000_0000_0001 132: #else 133: shl 3, c15, r1 134: spdum: sub r1, c1, r1 135: nop 136: jmp cc_nzero, spdum 137: #endif 138: ; wait until the data are sent and received... 139: nop 0035 : 0000_0000_0000_0000_0000_0000 140: nop 0036 : 0000_0000_0000_0000_0000_0000 141: nop 0037 : 0000_0000_0000_0000_0000_0000 142: nop 0038 : 0000_0000_0000_0000_0000_0000 143: nop 0039 : 0000_0000_0000_0000_0000_0000 144: nop 003A : 0000_0000_0000_0000_0000_0000 145: ; init the autoincrement GIO pointer 146: iext DMAD 003B : 0101_0000_0000_0000_0000_1111 147: mov DMAD, r14 003C : 1100_0110_0001_1000_0000_1110 148: 149: ; read from NI input 150: mov 14, r1 003D : 1100_0110_0000_0001_1100_0001 151: mul32 r1, c15, r1 003E : 1001_0000_0001_0111_1110_1001 152: rfifo: 153: lpio 1 r4 003F : 1110_0110_0000_0000_0010_0100 154: lpio 0 r4 0040 : 1110_0110_0000_0000_0000_0100 155: ; write to DBANK 156: jmpr cc_busy 0 0041 : 0000_0100_0000_1000_0011_0111 157: sgio+ r4 0042 : 0011_1100_0100_0000_0000_0000 158: sub r1, c1, r1 0043 : 1000_1010_0001_0110_0010_0001 159: jmp cc_nzero, rfifo 0044 : 0000_0100_0000_0000_0000_0001 160: ; read the privat counter in NI - the number of st 161: lpio NLP, r5 0045 : 1110_0110_0001_1000_0010_0101 162: lpio NLP, r5 0046 : 1110_0110_0001_1000_0010_0101 163: jmpr cc_busy 0 0047 : 0000_0100_0000_1000_1111_0111 164: ; write to DBANK 165: sgio+ r5 0048 : 0011_1100_0101_0000_0000_0000 166: ; read the privat counter of the CPU - the number 167: lpio CTPDOUT, r5 0049 : 1110_0110_0100_0000_0100_0101 168: jmpr cc_busy 0 004A : 0000_0100_0000_1001_0101_0111 169: ; write to DBANK 170: sgio+ r5 004B : 0011_1100_0101_0000_0000_0000 171: #ifdef cpu3 172: ; switch to low power mode 173: jmpr cc_busy 0 004C : 0000_0100_0000_1001_1001_0111 174: mov 0x12 r0 004D : 1100_0110_0000_0010_0100_0000 175: sgio r0 0xA04 004E : 0010_1000_0000_1010_0000_0100 176: #endif 177: ; loop 178: jmpr cc_uncond 0 004F : 0000_0100_0000_1001_1110_1111 179: nop 0050 : 0000_0000_0000_0000_0000_0000 Source file read, 0 error(s), 0 warning(s).