Attachment 'IHPIB1.TXT'
DownloadHEWLETT-PACKARD: Inverse Assembly Language Mon Jul 11 23:53:48 2011 PAGE 1 FILE: C:\DOSBOX\IHPIB1.S LOCATION OBJECT CODE LINE SOURCE LINE 1 ^IAL^ 2 ************************************************************** 3 * 4 * INVERSE ASSEMBLER FOR THE HPIB BUS 5 * 6 * This source code can be used with the HP 64620S, HP 1630A/D/G 7 * HP 1631A/D, HP 1650A, HP 1651A or HP 16510A logic analyzers. 8 * 2011-07-11 RudolfReuter, Version 1.0 9 * 10 * INPUT_DATA consists of the following GPIB signals (POD 4): 11 * Clock J DAV 12 * BIT 7 DIO8 13 * Bit 6 DIO7 14 * BIT 5 DIO6 15 * Bit 4 DIO5 16 * BIT 3 DIO4 17 * Bit 2 DIO3 18 * BIT 1 DIO2 19 * Bit 0 DIO1 20 * 21 * INPUT_STATUS consists of the following GPIB signals (POD 3): 22 * Clock K PAR POLL Option 23 * BIT 7 NRFD 24 * Bit 6 DAV 25 * BIT 5 NDAC 26 * Bit 4 SRQ _ 27 * BIT 3 IFC 28 * BIT 2 REN 29 * BIT 1 EOI 30 * BIT 0 ATN 31 * 32 * These signals are clocked in at the negativ edge of DAV 33 *************************************************************** 34 * INITIALIZE 35 *************************************************************** 36 * SEARCH_LIMIT 5 0000 00000000 37 DEFAULT_WIDTH 41 002C 00002920 38 LABEL_TITLE " ATN Mnemonic HEX EOI SRQ REN IFC" 002D 00151C20 39 BASE_TITLE " Instructions" 40 41 * LSB Bit Masks < 001F > 42 ML5 CONSTANT 01FH 5 LSB MASK 0034 007F0000 43 ML7 CONSTANT 07FH 0036 00800000 44 ML8 CONSTANT 080H < 0001 > 45 INSTR_LINE CONSTANT 1 FLAG FOR INSTR LINE 46 47 * SET RETURN_FLAGS,INSTR_LINE PRESET TO INSTRUCTION LINE 0000 3007 48 SET RETURN_FLAGS,0 49 0001 100E 50 LOAD INPUT_STATUS ; Get Status Byte 51 * show command lines as string 0002 02E7 52 POSITION ABS,39 0003 B86301C0 53 IF 3,3 <> 0 THEN GOTO TST_ATN IFC 0006 6041 54 OUTPUT S_IFC 0007 55 TST_ATN 0007 02C8 56 POSITION ABS,8 HEWLETT-PACKARD: Inverse Assembly Language Mon Jul 11 23:53:48 2011 PAGE 2 FILE: C:\DOSBOX\IHPIB1.S LOCATION OBJECT CODE LINE SOURCE LINE 0008 B80001C0 57 IF 0,0 <> 0 THEN GOTO TST_EOI ATN 000B 6043 58 OUTPUT S_ATN 000C 59 TST_EOI 000C 02DB 60 POSITION ABS,27 000D B82101C0 61 IF 1,1 <> 0 THEN GOTO TST_REN EOI 0010 6045 62 OUTPUT S_EOI 0011 63 TST_REN 0011 02E3 64 POSITION ABS,35 0012 B84201C0 65 IF 2,2 <> 0 THEN GOTO TST_SRQ REN 0015 6047 66 OUTPUT S_REN 0016 67 TST_SRQ 0016 02DF 68 POSITION ABS,31 0017 B88401C0 69 IF 4,4 <> 0 THEN GOTO OUT_DAT SRQ 001A 6049 70 OUTPUT S_SRQ 001B 71 OUT_DAT 001B 02D7 72 POSITION ABS,23 001C 100D 73 LOAD INPUT_DATA ; Get Data Byte 001D 7024 74 OUTPUT ACCUMULATOR,HEX2_FMT 001E 02CD 75 POSITION ABS,13 76 * check if Status needs special treatment 001F 100E 77 LOAD INPUT_STATUS Get Status Byte 0020 E0200021 78 CASE_OF 1,0 handle PARPOLL, EOI & ATN 0022 604B 79 OUTPUT S_PARPOLL 0023 5027 80 CALL ANALYSIS EOI 0024 505F 81 CALL CMD_SEL ATN, Data = GPIB Command 0025 5027 82 CALL ANALYSIS Data 0021 0004 83 CASE_END 0026 0013 84 RETURN 85 * now take care about the data and GPIB commands 0027 86 ANALYSIS 0027 100D 87 LOAD INPUT_DATA Get Data Byte 0028 02C1 88 POSITION ABS,1 0029 B0E0001B 89 IF 7,0 < ML8 THEN GOTO IS_ASCII 002C 6050 90 OUTPUT S_MSBSET 002D 91 IS_ASCII 002D 161A 92 AND ML7 002E 02CD 93 POSITION ABS,13 002F A8C001E0 94 IF 6,0 > 020H THEN GOTO ASC_OUT 95 * display Control character as string 0032 0321 96 POSITION REL,1 0033 E0800034 97 CASE_OF 4,0 0035 6054 98 OUTPUT S_NUL 0036 6057 99 OUTPUT S_SOH 0037 605A 100 OUTPUT S_STX 0038 605D 101 OUTPUT S_ETX 0039 6060 102 OUTPUT S_EOT 003A 6063 103 OUTPUT S_ENQ 003B 6066 104 OUTPUT S_ACK 003C 6069 105 OUTPUT S_BEL 003D 606C 106 OUTPUT S_BS 003E 606F 107 OUTPUT S_HT 003F 6072 108 OUTPUT S_LF 0040 6075 109 OUTPUT S_VT 0041 6078 110 OUTPUT S_FF 0042 607B 111 OUTPUT S_CR 0043 607E 112 OUTPUT S_SO HEWLETT-PACKARD: Inverse Assembly Language Mon Jul 11 23:53:48 2011 PAGE 3 FILE: C:\DOSBOX\IHPIB1.S LOCATION OBJECT CODE LINE SOURCE LINE 0044 6081 113 OUTPUT S_SI 0045 6084 114 OUTPUT S_DLE 0046 6087 115 OUTPUT S_DC1 0047 608A 116 OUTPUT S_DC2 0048 608D 117 OUTPUT S_DC3 0049 6090 118 OUTPUT S_DC4 004A 6093 119 OUTPUT S_NAK 004B 6096 120 OUTPUT S_SYN 004C 6099 121 OUTPUT S_ETB 004D 609C 122 OUTPUT S_CAN 004E 609F 123 OUTPUT S_EM 004F 60A2 124 OUTPUT S_SUB 0050 60A5 125 OUTPUT S_ESC 0051 60A8 126 OUTPUT S_FS 0052 60AB 127 OUTPUT S_GS 0053 60AE 128 OUTPUT S_RS 0054 60B1 129 OUTPUT S_US 0034 0020 130 CASE_END 0055 0013 131 RETURN 132 0056 133 ASC_OUT 0056 B8C001E0 134 IF 6,0 <> 020H THEN GOTO ASC_OUT2 0059 0321 135 POSITION REL,1 005A 60B4 136 OUTPUT S_SPACE 005B 0013 137 RETURN 005C 138 ASC_OUT2 ; display 7 bit Data byte in ASCII format 005C 0323 139 POSITION REL,3 005D 7028 140 OUTPUT ACCUMULATOR,ASC_FMT 005E 0013 141 RETURN 142 005F 143 CMD_SEL ; select GPIB Command 005F 100D 144 LOAD INPUT_DATA 0060 161A 145 AND ML7 0061 E0C40062 146 CASE_OF 6,4 0x10 - 0x70 0063 506C 147 CALL PRI_CMD 0064 507F 148 CALL ACG_CMD 0065 5099 149 CALL LISTEN 0066 5099 150 CALL LISTEN 0067 50A2 151 CALL TALK 0068 50A2 152 CALL TALK 0069 50AB 153 CALL SGC_CMD 006A 50AB 154 CALL SGC_CMD 0062 0008 155 CASE_END 006B 0013 156 RETURN 157 006C 158 PRI_CMD 006C E060006D 159 CASE_OF 3,0 006E 407E 160 GOTO PRI_RET 006F 60B7 161 OUTPUT S_GTL 0070 407E 162 GOTO PRI_RET 0071 407E 163 GOTO PRI_RET 0072 60BA 164 OUTPUT S_SDC 0073 60BD 165 OUTPUT S_PPC 0074 407E 166 GOTO PRI_RET 0075 407E 167 GOTO PRI_RET 0076 60C0 168 OUTPUT S_GET HEWLETT-PACKARD: Inverse Assembly Language Mon Jul 11 23:53:48 2011 PAGE 4 FILE: C:\DOSBOX\IHPIB1.S LOCATION OBJECT CODE LINE SOURCE LINE 0077 60C3 169 OUTPUT S_TCT 0078 407E 170 GOTO PRI_RET 0079 407E 171 GOTO PRI_RET 007A 407E 172 GOTO PRI_RET 007B 407E 173 GOTO PRI_RET 007C 407E 174 GOTO PRI_RET 007D 407E 175 GOTO PRI_RET 006D 0010 176 CASE_END 007E 177 PRI_RET 007E 0013 178 RETURN 179 007F 180 ACG_CMD 007F 60C6 181 OUTPUT S_ACG 0080 17CF 182 AND 0FH prepare $11-$19 for case selector 0081 60C9 183 OUTPUT S_ACG2 0082 E0600083 184 CASE_OF 3,0 0084 4094 185 GOTO ACG_RET 0085 60CA 186 OUTPUT S_LLO 0086 4094 187 GOTO ACG_RET 0087 4094 188 GOTO ACG_RET 0088 60CD 189 OUTPUT S_DCL 0089 60D0 190 OUTPUT S_PPU 008A 4094 191 GOTO ACG_RET 008B 4094 192 GOTO ACG_RET 008C 60D3 193 OUTPUT S_SPE 008D 60D6 194 OUTPUT S_SPD 008E 4094 195 GOTO ACG_RET 008F 4094 196 GOTO ACG_RET 0090 4094 197 GOTO ACG_RET 0091 4094 198 GOTO ACG_RET 0092 4094 199 GOTO ACG_RET 0093 4094 200 GOTO ACG_RET 0083 0010 201 CASE_END 0094 202 ACG_RET 0094 0013 203 RETURN 204 0095 205 UCG_CMD 0095 60D9 206 OUTPUT S_UCG 0096 17C7 207 AND 07H 0097 60DC 208 OUTPUT S_UCG2 0098 0013 209 RETURN 210 0099 211 LISTEN 0099 17DF 212 AND ML5 009A B88001DF 213 IF 4,0 <> 01FH THEN GOTO LISTEN2 009D 60DD 214 OUTPUT S_UNL 009E 0013 215 RETURN 009F 216 LISTEN2 009F 60E1 217 OUTPUT S_LAG 00A0 7026 218 OUTPUT ACCUMULATOR,DEC2_FMT_5 00A1 0013 219 RETURN 00A2 220 TALK 00A2 17DF 221 AND ML5 00A3 B88001DF 222 IF 4,0 <> 01FH THEN GOTO TALK2 00A6 60E4 223 OUTPUT S_UNT 00A7 0013 224 RETURN HEWLETT-PACKARD: Inverse Assembly Language Mon Jul 11 23:53:48 2011 PAGE 5 FILE: C:\DOSBOX\IHPIB1.S LOCATION OBJECT CODE LINE SOURCE LINE 00A8 225 TALK2 00A8 60E8 226 OUTPUT S_TAG 00A9 7026 227 OUTPUT ACCUMULATOR,DEC2_FMT_5 00AA 0013 228 RETURN 00AB 229 SGC_CMD 00AB 60EB 230 OUTPUT S_SCG 00AC 7024 231 OUTPUT ACCUMULATOR,HEX2_FMT 00AD 60EE 232 OUTPUT S_SCG2 00AE 0013 233 RETURN 234 0024 200200E0 235 HEX2_FMT FORMAT 8,HEX,2 8 BITS, HEX, 2 DIGITS 0026 20C20080 236 DEC2_FMT_5 FORMAT 5,DEC,2 5 BITS, DEC, 2 DIGITS 0028 4401FFFF 237 ASC_FMT FORMAT ASCII 238 * Strings 002A 2A202020 239 TITL1 ASCII " ATN Mnemonic HEX EOI SRQ REN IFC " 0040 0120 240 S_SPC1 ASCII " " 0041 03494643 241 S_IFC ASCII "IFC" 0043 0341544E 242 S_ATN ASCII "ATN" 0045 03454F49 243 S_EOI ASCII "EOI" 0047 0352454E 244 S_REN ASCII "REN" 0049 03535251 245 S_SRQ ASCII "SRQ" 004B 09504152 246 S_PARPOLL ASCII "PAR POLL " 0050 074D5342 247 S_MSBSET ASCII "MSB set" 248 * Control characters 0054 053C4E55 249 S_NUL ASCII "<NUL>" 0057 053C534F 250 S_SOH ASCII "<SOH>" 005A 053C5354 251 S_STX ASCII "<STX>" 005D 053C4554 252 S_ETX ASCII "<ETX>" 0060 053C454F 253 S_EOT ASCII "<EOT>" 0063 053C454E 254 S_ENQ ASCII "<ENQ>" 0066 053C4143 255 S_ACK ASCII "<ACK>" 0069 053C4245 256 S_BEL ASCII "<BEL>" 006C 053C4253 257 S_BS ASCII "<BS >" 006F 053C4854 258 S_HT ASCII "<HT >" 0072 053C4C46 259 S_LF ASCII "<LF >" 0075 053C5654 260 S_VT ASCII "<VT >" 0078 053C4646 261 S_FF ASCII "<FF >" 007B 053C4352 262 S_CR ASCII "<CR >" 007E 053C534F 263 S_SO ASCII "<SO >" 0081 053C5349 264 S_SI ASCII "<SI >" 0084 053C444C 265 S_DLE ASCII "<DLE>" 0087 053C4443 266 S_DC1 ASCII "<DC1>" 008A 053C4443 267 S_DC2 ASCII "<DC2>" 008D 053C4443 268 S_DC3 ASCII "<DC3>" 0090 053C4443 269 S_DC4 ASCII "<DC4>" 0093 053C4E41 270 S_NAK ASCII "<NAK>" 0096 053C5359 271 S_SYN ASCII "<SYN>" 0099 053C4554 272 S_ETB ASCII "<ETB>" 009C 053C4341 273 S_CAN ASCII "<CAN>" 009F 053C454D 274 S_EM ASCII "<EM >" 00A2 053C5355 275 S_SUB ASCII "<SUB>" 00A5 053C4553 276 S_ESC ASCII "<ESC>" 00A8 053C4653 277 S_FS ASCII "<FS >" 00AB 053C4753 278 S_GS ASCII "<GS >" 00AE 053C5253 279 S_RS ASCII "<RS >" 00B1 053C5553 280 S_US ASCII "<US >" HEWLETT-PACKARD: Inverse Assembly Language Mon Jul 11 23:53:48 2011 PAGE 6 FILE: C:\DOSBOX\IHPIB1.S LOCATION OBJECT CODE LINE SOURCE LINE 281 * 00B4 05737061 282 S_SPACE ASCII "space" 00B7 04204754 283 S_GTL ASCII " GTL" Go To Local 0x01 00BA 05202053 284 S_SDC ASCII " SDC" Selected Device Clear 0x04 00BD 05202050 285 S_PPC ASCII " PPC" Parallel Poll Configure 0x05 00C0 05202047 286 S_GET ASCII " GET" Group Execute Trigger 0x08 00C3 05202054 287 S_TCT ASCII " TCT" Take Control 0x09 00C6 05414347 288 S_ACG ASCII "ACG [" Addressed Command Group 00C9 015D 289 S_ACG2 ASCII "]" 00CA 0520204C 290 S_LLO ASCII " LLO" Local Lockout 0x11 00CD 05202044 291 S_DCL ASCII " DCL" Device Clear 0x14 00D0 05202050 292 S_PPU ASCII " PPU" Parallel Poll Unconfig. 0x15 00D3 05202053 293 S_SPE ASCII " SPE" Serial Poll Unable 0x18 00D6 05202053 294 S_SPD ASCII " SPD" Serial Poll Disable 0x19 00D9 05554347 295 S_UCG ASCII "UCG [" Universal Command Group 00DC 015D 296 S_UCG2 ASCII "]" 00DD 07202A55 297 S_UNL ASCII " *UNL* " Unlisten 0x3F 00E1 05204C41 298 S_LAG ASCII " LAG_" Listener Address 00E4 07202A55 299 S_UNT ASCII " *UNT* " Untalk 0x5F 00E8 05205441 300 S_TAG ASCII " TAG_" Talker Address 00EB 05534347 301 S_SCG ASCII "SCG [" Secondary Command Group 00EE 015D 302 S_SCG2 ASCII "]" 303 Errors= 0
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.