From 09dc4dcb9ac5ede99290542563fd3683eb560ec5 Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 3 Apr 2017 16:10:08 -0700 Subject: [PATCH] Lots of MACRO-10 improvements, DAKAM now assembles (but does not pass) --- apps/pdp10/diags/ka10/dakam/DAKAM.LST.txt | 10176 +++++++++++++++++++ apps/pdp10/diags/ka10/dakam/DAKAM.MAC.txt | 5654 +++++++++++ apps/pdp10/diags/ka10/dakam/DAKAMM.MAC.txt | 3738 +++++++ apps/pdp10/diags/ka10/dakam/DAKAMT.MAC.txt | 154 + apps/pdp10/diags/ka10/dakam/README.md | 430 + docs/pcx86/examples/pcx86-dbg.js | 850 +- modules/pdp10/lib/debugger.js | 35 +- modules/pdp10/lib/macro10.js | 563 +- modules/shared/lib/debugger.js | 96 +- versions/pc8080/1.34.3/pc8080-dbg.js | 346 +- versions/pcx86/1.34.3/pcx86-dbg.js | 850 +- versions/pdpjs/1.34.3/pdp10-dbg.js | 461 +- versions/pdpjs/1.34.3/pdp11-dbg.js | 454 +- 13 files changed, 22048 insertions(+), 1759 deletions(-) create mode 100644 apps/pdp10/diags/ka10/dakam/DAKAM.LST.txt create mode 100644 apps/pdp10/diags/ka10/dakam/DAKAM.MAC.txt create mode 100644 apps/pdp10/diags/ka10/dakam/DAKAMM.MAC.txt create mode 100644 apps/pdp10/diags/ka10/dakam/DAKAMT.MAC.txt create mode 100644 apps/pdp10/diags/ka10/dakam/README.md diff --git a/apps/pdp10/diags/ka10/dakam/DAKAM.LST.txt b/apps/pdp10/diags/ka10/dakam/DAKAM.LST.txt new file mode 100644 index 000000000..e44f4e010 --- /dev/null +++ b/apps/pdp10/diags/ka10/dakam/DAKAM.LST.txt @@ -0,0 +1,10176 @@ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1 +DAKAMT MAC 20-JAN-77 11:33 DIAGNOSTIC PARAMETERS SEQ 0011 + + 1 ;DAKAM + 2 + 3 + 4 000000 MCNVER==0 + 5 000002 DECVER==2 + 6 + 7 + 8 XLIST + 9 LIST + 10 LALL + 11 + 12 NAME \MCNVER,\DECVER^ + 13 + 14 TITLE DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 + 15 ^ + 16 + 17 ;(BYTE, BLOCK TRANSFER, JFFO AND OTHER BASIC MISCELLANEOUS INSTRUCTIONS) + 18 + 19 ;COPYRIGHT 1975,1977 + 20 ;DIGITAL EQUIPMENT CORPORATION + 21 ;MARLBORO, MASS. 01752 + 22 + 23 ;JOHN R. KIRCHOFF + 24 + 25 000137 LOC 137 + 26 000137 000000 000002 MCNVER,,DECVER + 27 + 28 NOSYM +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 2 +DAKAMT MAC 20-JAN-77 11:33 DIAGNOSTIC PARAMETERS SEQ 0012 + + 29 SUBTTL DIAGNOSTIC PARAMETERS + 30 + 31 ;OPERATOR DEFINITIONS + 32 + 33 001000 000000 OPDEF ER1 [1B8] + 34 002000 000000 OPDEF ER2 [2B8] + 35 003000 000000 OPDEF ER3 [3B8] + 36 004000 000000 OPDEF ER4 [4B8] + 37 005000 000000 OPDEF ER5 [5B8] + 38 006000 000000 OPDEF ER6 [6B8] + 39 007000 000000 OPDEF ER7 [7B8] + 40 010000 000000 OPDEF ER10 [10B8] + 41 011000 000000 OPDEF ER11 [11B8] + 42 012000 000000 OPDEF ER12 [12B8] + 43 013000 000000 OPDEF ER13 [13B8] + 44 + 45 040530 LUUO1=ERRMES + 46 040530 LUUO2=ERRMES + 47 040530 LUUO3=ERRMES + 48 040530 LUUO4=ERRMES + 49 040530 LUUO5=ERRMES + 50 040530 LUUO6=ERRMES + 51 040530 LUUO7=ERRMES + 52 040530 LUUO10=ERRMES + 53 040530 LUUO11=ERRMES + 54 040530 LUUO12=ERRMES + 55 040530 LUUO13=ERRMES +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 3 +DAKAMT MAC 20-JAN-77 11:33 DIAGNOSTIC PARAMETERS SEQ 0013 + + 56 ;SUBROUTINE ASSEMBLY DEFINITIONS + 57 + 58 000040 DEBUG=40 + 59 000001 EXCASB=1 + 60 000001 USRASB=1 + 61 000001 KA10=1 + 62 000001 PGMEND=1 + 63 000001 ERDIAG=1 + 64 + 65 ;SPECIAL FEATURE DEFINITIONS + 66 + 67 030000 SADR1=BEGIN + 68 030000 SADR2=BEGIN + 69 030000 SADR3=BEGIN + 70 030000 SADR4=BEGIN + 71 254000 030000 SADR5=JRST BEGIN + 72 254000 030000 SADR6=JRST BEGIN + 73 254000 030000 SADR7=JRST BEGIN + 74 254000 030000 SADR8=JRST BEGIN + 75 254000 030000 SADR9=JRST BEGIN + 76 254000 030000 SADR10=JRST BEGIN + 77 254000 030000 SADR11=JRST BEGIN + 78 + 79 ;SPECIAL FEATURE PARAMETERS + 80 + 81 000000 PAREA0=0 + 82 000000 PAREA1=0 + 83 000000 PAREA2=0 + 84 444153 415500 PAREA3=SIXBIT/DAKAM/ + 85 645560 000000 PAREA4=SIXBIT/TMP/ + 86 000000 PAREA5=0 + 87 000000 PAREA6=0 + 88 001000 ITERAT==1000 + 89 + 90 ;MACROS + 91 + 92 DEFINE SAVEAC (A,B)< + 93 MOVEI AC+2,. ;SAVE TEST PC + 94 MOVEM AC+2,TESTPC + 95 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 96 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 4 +DAKAMT MAC 20-JAN-77 11:33 DIAGNOSTIC PARAMETERS SEQ 0014 + + 97 ;SPECIAL INSTRUCTIONS TO ASSEMBLER + 98 + 99 IF1, ;BYTBLK BEYOND AC RANGE FOR PASS 1 + 100 IF1, ;BLTBLK BEYOND AC RANGE FOR PASS 1 + 101 + 102 ;MACROS + 103 + 104 DEFINE GMOV (X1,DATA),< + 105 IFLE ,< + 106 MOVE X1,[DATA] ;PRELOAD X1 WITH DATA> + 107 IFG ,< + 108 MOVE AC+1,[DATA] + 109 MOVEM AC+1,X1 ;PRELOAD X1 WITH DATA>> + 110 + 111 DEFINE GCAM (X1,DATA),< + 112 SN=SN+1 + 113 IFG ,< + 114 MOVE AC-1,X1 + 115 CAME AC-1,[DATA] ;IS C(X1) = DATA + 116 IFIDN ,,< + 117 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 118 IFDIF ,,< + 119 ER2 AC-1,SN ;C(X1) WAS CLOBBERED>> + 120 IFLE ,< + 121 CAME X1,[DATA] ;IS C(X1) = DATA + 122 IFIDN ,,< + 123 ER2 X1,SN ;DEST NOT LOADED CORRECTLY> + 124 IFDIF ,,< + 125 ER2 X1,SN ;C(X1) WAS CLOBBERED>>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 5 +DAKAMT MAC 20-JAN-77 11:33 DIAGNOSTIC PARAMETERS SEQ 0015 + + 126 DEFINE BLTM1 (A1,C1,S1,D1,SC)< + 127 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 128 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 129 ;SOURCE DATA = SC + 130 + 131 AC=C1 + 132 SAVEAC (1,1) + 133 SN=A1 + 134 SRCE=S1 ;1ST LOC OF SOURCE = S1 + 135 DEST=D1 ;1ST LOC OF DESTINATION = D1 + 136 SIZ=1 ;BLOCK SIZE = 1 WORD + 137 + 138 G'A1: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 139 GMOV (SRCE-1,<252525252525>) + 140 GMOV (SRCE,) + 141 GMOV (SRCE+1,<770077007700>) + 142 GMOV (DEST-1,<070707070707>) + 143 GMOV (DEST,<123456765432>) + 144 GMOV (DEST+1,<552255225522>) + 145 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 146 GCAM (SRCE-1,<252525252525>) + 147 GCAM (SRCE,) + 148 GCAM (SRCE+1,<770077007700>) + 149 GCAM (DEST-1,<070707070707>) + 150 GCAM (DEST,) + 151 GCAM (DEST+1,<552255225522>) + 152 JUMPL AC+2,G'A1 ;LOOP ON ERROR> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0016 + + 153 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 154 + 155 DEFINE S,<;*********************************************************************> + 156 + 157 S^;*********************************************************************^ + 158 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 159 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 160 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 161 S^;*********************************************************************^ + 162 + 163 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 164 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 165 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 166 + 167 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 168 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 169 010000 DING== 010000 ;RING BELL ON ERROR + 170 + 171 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 172 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 173 001000 PALERS==001000 ;PRINT ALL ERRORS + 174 + 175 000400 RELIAB==000400 ;RELIABILITY MODE + 176 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 177 000100 INHPAG==000100 ;INHIBIT PAGING + 178 + 179 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 180 000020 INHCSH==000020 ;INHIBIT CACHE + 181 000010 OPRSEL==000010 ;OPERATOR SELECTION + 182 + 183 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 184 + 185 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 186 + 187 ;SWITCH 17 RESERVED !!! +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017 + + 188 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 189 + 190 S^;*********************************************************************^ + 191 ;*SPECIAL SUBPROGRAM LINKAGES + 192 S^;*********************************************************************^ + 193 + 194 027772 FSELNK= 27772 ;FILE SELECT LINK + 195 027773 FRDLNK= 27773 ;FILE READ LINK + 196 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 197 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 198 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 199 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 200 + 201 S^;*********************************************************************^ + 202 ;*SPECIAL SUBROUTINE FATAL HALTS + 203 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 204 S^;*********************************************************************^ + 205 + 206 ;ADDRESS TAG REASON + 207 ;--------------------- + 208 + 209 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 210 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 211 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 212 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 213 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 214 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 215 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 216 ; 1017 EOPERR ;END OF PROGRAM ERROR + 217 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 218 + 219 S^;*********************************************************************^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018 + + 220 S^;*********************************************************************^ + 221 ;OPERATOR DEFINITIONS (NON-UUO'S) + 222 S^;*********************************************************************^ + 223 + 224 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 225 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 226 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 227 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 228 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 229 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 230 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 231 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 232 + 233 S^;*********************************************************************^ + 234 ;*SUBROUTINE INITIALIZATION CALL + 235 S^;*********************************************************************^ + 236 + 237 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 238 + 239 S^;*********************************************************************^ + 240 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 241 S^;*********************************************************************^ + 242 + 243 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 244 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 245 + 246 S^;*********************************************************************^ + 247 ;*TERMINAL INPUT UUO'S + 248 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 249 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 250 S^;*********************************************************************^ + 251 + 252 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 253 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 254 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 255 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 256 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 257 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 258 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 259 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 260 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 261 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019 + + 262 ;*TERMINAL OUTPUT UUO'S. + 263 + 264 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 265 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 266 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 267 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 268 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 269 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 270 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 271 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 272 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 273 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 274 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 275 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 276 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 277 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 278 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 279 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 280 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 281 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 282 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 283 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 284 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 285 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 286 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 287 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 288 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 289 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 290 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 291 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 292 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 293 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 294 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 295 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 296 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 297 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 298 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 299 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 300 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 301 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 302 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 303 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 304 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 305 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 306 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 307 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 308 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 309 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 310 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 311 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 312 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 313 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 314 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 315 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 316 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020 + + 317 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 318 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 319 + 320 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 321 + 322 DEFINE PMSG (ARG),< + 323 PSIXM [SIXBIT\ARG'_\]> + 324 + 325 DEFINE PMSGF (ARG),< + 326 PSIXMF [SIXBIT\ARG'_\]> + 327 + 328 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 329 ;* CONSERVES CORE OVER ASCIZ + 330 + 331 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 332 + 333 ;*CONSOLE SWITCH INPUT UUO. + 334 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 335 ;* USER MODE. + 336 + 337 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 338 + 339 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 340 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 341 + 342 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 343 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 344 + 345 ;*KL10 ONLY CACHE OPERATION UUO'S + 346 + 347 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 348 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 349 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0021 + + 350 ;*END OF PASS/PROGRAM UUOS + 351 + 352 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 353 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 354 + 355 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 356 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 357 + 358 ;*MEMORY MANAGEMENT UUO'S + 359 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 360 ;*ADDRESS CONVERSION, ETC... + 361 + 362 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 363 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 364 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 365 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 366 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 367 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 368 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 369 + 370 ;*DEVICE CODE MODIFICATION UUO + 371 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 372 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 373 + 374 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 375 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 376 + 377 030000 IFNDEF MODDVL, + 378 030000 IFNDEF MODDVU, + 379 + 380 ;*"DIAMON" FILE SELECTION AND READ UUOS + 381 + 382 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 383 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 384 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 385 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 386 + 387 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 388 + 389 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 390 + 391 XLIST + 392 IFNDEF KLOLD, + 418 + 419 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 420 + 421 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 422 SALL + 423 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 424 CORECT,,ACTUAL + 425 [SIXBIT\D'_\],,ERR] + 426 XALL > + 427 + 428 >;END OF KLOLD CONDITIONAL + 429 + 430 XLIST + 431 LIST +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 432 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 433 + 434 030000 LOC 30000 + 435 + 436 S^;*********************************************************************^ + 437 ;*PROGRAM STARTING ADDRESSES + 438 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 439 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 440 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 441 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 442 S^;*********************************************************************^ + 443 + 444 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 445 030001 254 00 0 00 030616 $START: JRST START ;MODE CHECK STARTING ADDRESS + 446 + 447 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 448 + 449 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 450 + 451 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 452 + 453 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 454 + 455 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 456 + 457 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 458 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 459 + 460 030010 254 00 0 00 030621 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 461 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 462 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 463 + 464 030013 254000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 465 030014 254000 030000 START2: SADR8 ; " + 466 030015 254000 030000 START3: SADR9 ; " + 467 030016 254000 030000 START4: SADR10 ; " + 468 030017 254000 030000 START5: SADR11 ; " +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 + + 469 S^;*********************************************************************^ + 470 ;*PROGRAM FIXED PARAMETER AREA + 471 S^;*********************************************************************^ + 472 + 473 030020 444153 415500 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 474 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 475 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 476 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 477 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 478 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 479 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 480 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 481 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 482 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 483 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 484 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 485 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 486 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 487 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 488 + 489 S^;*********************************************************************^ + 490 ;*PROGRAM VARIABLE PARAMETER AREA + 491 S^;*********************************************************************^ + 492 + 493 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 494 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 495 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 496 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 497 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 498 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 499 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 500 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 501 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 502 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 503 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 504 030052 000000 000000 ERRPC: 0 ;ERROR PC + 505 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 506 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 507 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 508 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025 + + 509 S^;*********************************************************************^ + 510 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 511 S^;*********************************************************************^ + 512 + 513 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 514 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 515 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 516 030062 254000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 517 030063 254000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 518 030064 CPOPJ1: ;SKIP RETURN + 519 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 520 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 521 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 522 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 523 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 524 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 525 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 526 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 527 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 528 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 529 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 530 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 531 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 532 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 533 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 534 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 535 + 536 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 537 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 538 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 539 + 540 S^;*********************************************************************^ + 541 ;*PROCESSOR CONTROL STORAGE + 542 S^;*********************************************************************^ + 543 + 544 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 545 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 546 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 547 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 548 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 549 + 550 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 551 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 552 + 553 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 554 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 555 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 556 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 557 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 558 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 559 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026 + + 560 S^;*********************************************************************^ + 561 ;*UUO DISPATCH TABLE + 562 S^;*********************************************************************^ + 563 XLIST + 564 LIST + 565 030124 040530 030070 UUODIS: LUUO1,,$UUOER + 566 030125 040530 040530 LUUO3,,LUUO2 + 567 030126 040530 040530 LUUO5,,LUUO4 + 568 030127 040530 040530 LUUO7,,LUUO6 + 569 030130 040530 040530 LUUO11,,LUUO10 + 570 030131 040530 040530 LUUO13,,LUUO12 + 571 030132 030070 030070 LUUO15,,LUUO14 + 572 030133 030070 030070 LUUO17,,LUUO16 + 573 030134 030070 030070 LUUO21,,LUUO20 + 574 030135 030070 030070 LUUO23,,LUUO22 + 575 030136 030070 030070 LUUO25,,LUUO24 + 576 030137 030070 030070 LUUO27,,LUUO26 + 577 030140 030070 030070 LUUO31,,LUUO30 + 578 030141 030070 030070 LUUO33,,LUUO32 + 579 + 580 S^;*********************************************************************^ + 581 ;*MEMORY MANAGMENT STORAGE + 582 S^;*********************************************************************^ + 583 + 584 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 585 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 586 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 587 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 588 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 589 + 590 S^;*********************************************************************^ + 591 ;*PRINT CONTROL STORAGE + 592 S^;*********************************************************************^ + 593 + 594 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 595 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 596 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 597 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 598 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 599 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 600 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 601 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 602 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 603 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 604 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 605 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 606 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 607 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 608 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 609 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 610 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 611 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 612 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027 + + 613 S^;*********************************************************************^ + 614 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 615 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 616 ;* MOVEI NAME + 617 ;* PNTA ;OR PNTAF + 618 S^;*********************************************************************^ + 619 + 620 030242 CRLF: ASCII/ + 621 030242 015 012 000 000 000 / + 622 030243 CRLF2: ASCII/ + 623 + 624 030243 015 012 015 012 000 / + 625 030244 054 000 000 000 000 COMMA: ASCII/,/ + 626 030245 056 000 000 000 000 PERIOD: ASCII/./ + 627 030246 040 000 000 000 000 SPACE: ASCII/ / + 628 030247 011 000 000 000 000 TAB: ASCII/ / + 629 030250 MINUS: + 630 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 631 030251 053 000 000 000 000 PLUS: ASCII/+/ + 632 030252 052 000 000 000 000 AST: ASCII/*/ + 633 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 634 030254 050 000 000 000 000 LFP: ASCII/(/ + 635 030255 051 000 000 000 000 RTP: ASCII/)/ + 636 030256 007 0000000000 BELL: BYTE (7) 007 + 637 030257 077 000 000 000 000 QUEST: ASCII/?/ + 638 030260 057 000 000 000 000 SLASH: ASCII!/! + 639 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 640 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 641 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 642 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 643 + 644 S^;*********************************************************************^ + 645 ;*USER MODE OUTPUT FILE INFORMATION + 646 S^;*********************************************************************^ + 647 + 648 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 649 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 650 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 651 030272 BLOCK 2 + 652 + 653 S^;*********************************************************************^ + 654 ;*DISK UPDATE MODE FILE INFORMATION + 655 S^;*********************************************************************^ + 656 + 657 030274 $IBUF: BLOCK 3 + 658 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 659 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 660 030301 BLOCK 2 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0028 + + 661 S^;*********************************************************************^ + 662 ;*PUSHDOWN LIST CONTROL INFORMATION + 663 S^;*********************************************************************^ + 664 + 665 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 666 030304 PLISTS: BLOCK 200 + 667 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 668 + 669 S^;*********************************************************************^ + 670 ;*POWER LINE CLOCK FREQUENCY FLAG + 671 S^;*********************************************************************^ + 672 + 673 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 674 + 675 S^;*********************************************************************^ + 676 ;*KL10 CACHE CONTROL FLAGS + 677 S^;*********************************************************************^ + 678 + 679 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 680 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 681 + 682 S^;*********************************************************************^ + 683 ;*NUMBER INPUT DIGIT FLAG + 684 S^;*********************************************************************^ + 685 + 686 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 687 + 688 S^;*********************************************************************^ + 689 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 690 S^;*********************************************************************^ + 691 + 692 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 693 + 694 S^;*********************************************************************^ + 695 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 696 S^;*********************************************************************^ + 697 + 698 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 699 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 700 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 701 + 702 S^;*********************************************************************^ + 703 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 704 S^;*********************************************************************^ + 705 + 706 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0029 + + 707 S^;*********************************************************************^ + 708 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 709 S^;*********************************************************************^ + 710 + 711 030516 000000 000000 KLTYP: 0 + 712 + 713 S^;*********************************************************************^ + 714 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 715 S^;*********************************************************************^ + 716 + 717 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 718 + 719 S^;*********************************************************************^ + 720 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 721 S^;*********************************************************************^ + 722 + 723 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 724 + 725 S^;*********************************************************************^ + 726 ;*"SWITCH" CALL USAGE CONTROL + 727 S^;*********************************************************************^ + 728 + 729 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 730 + 731 S^;*********************************************************************^ + 732 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 733 S^;*********************************************************************^ + 734 + 735 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 736 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 737 + 738 S^;*********************************************************************^ + 739 ;*SPECIAL FUTURE EXPANSION ROOM + 740 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 741 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 742 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 743 S^;*********************************************************************^ + 744 + 745 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 746 + 747 S^;*********************************************************************^ + 748 ;*END OF FIXED STORAGE + 749 S^;*********************************************************************^ + 750 + 751 030577 $ENDFX=&<777700>-1 + 752 030577 LOC $ENDFX + 753 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1 +DAKAMM MAC 20-JAN-77 11:34 DIAGNOSTIC SECTION SEQ 0030 + + 754 SUBTTL DIAGNOSTIC SECTION + 755 + 756 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + 757 030601 000000 030600 EXIT + 758 + 759 030602 PGMNAM: ASCIZ/ + 760 030602 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) [DAKAM] + 761 030603 055 061 060 040 040 + 762 030604 113 101 061 060 040 + 763 030605 102 101 123 111 103 + 764 030606 040 111 116 123 124 + 765 030607 122 125 103 124 111 + 766 030610 117 116 040 104 111 + 767 030611 101 107 116 117 123 + 768 030612 124 111 103 040 050 + 769 030613 061 063 051 040 133 + 770 030614 104 101 113 101 115 + 771 030615 135 015 012 000 000 / + 772 + 773 ;INITIALIZE SUBROUTINES + 774 + 775 030616 265 00 0 00 030011 START: PGMINT + 776 030617 200 00 0 00 040721 MOVE [ASCIZ/AM/] + 777 030620 202 00 0 00 040643 MOVEM TLET ;INITIALIZE TEST LETTER + 778 + 779 030621 254 00 0 00 030622 STARTA: JRST G00 ;GO PERFORM DIAGNOSTIC + 780 + 781 ; GENERAL DESCRIPTION + 782 ;PART IA -BTYE LOGIC TESTS + 783 ;PART IB -GENERAL BYTE TEST + 784 ;PART II -GENERAL BLOCK TRANSFER TEST + 785 ;PART III -GENERAL JFFO TEST +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 2 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0031 + + 786 SUBTTL PART IA - BYTE MANIPULATION + 787 + 788 + 789 ;PART IA - BYTE LOGIC TESTS + 790 ;INST-IBP + 791 ;TEST ABILITY TO FCE PSE AND DECODE + 792 ;PFIELD=14 + 793 ;SFIELD=6 + 794 ;BYTEWORD=0,-1 + 795 ;DESTAC=0 + 796 ;AN ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 797 ;FOLLOWING IBP + 798 + 799 000005 G00: AC=5 + 800 SAVEAC (1,1)^ + 801 030622 201 07 0 00 030622 MOVEI AC+2,. ;SAVE TEST PC + 802 030623 202 07 0 00 030051 MOVEM AC+2,TESTPC + 803 030624 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 804 030625 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 805 + 806 030626 205 06 0 00 140600 G100: MOVSI AC+1,140600 ;SETUP PNTR WORD + 807 030627 201 00 0 00 777777 MOVEI ,-1 ;SETUP BYTE WORD + 808 030630 400 05 0 00 000000 SETZ AC, ;SETUP DEST AC + 809 030631 133 00 0 00 000006 IBP ,&17 ;INC PNTR WORD + 810 030632 332 00 0 00 000005 SKIPE AC&17 ;TEST AC DIFFERS FROM 0 + 811 030633 003 05 0 00 000101 ER3 AC,101 ;FCE PSE FAILED + 812 030634 321 07 0 00 030626 JUMPL AC+2,G100 ;LOOP ON ERROR SWITCH + 813 + 814 ;INST-IBP + 815 ;TEST ABILITY TO INCREMENT BYTE PNTR + 816 ;WITHOUT AFFECTING BYTE WORD + 817 ;PFIELD=14 + 818 ;SFIELD=6 + 819 ;BYTE ADDRESS=AC0 + 820 ;AN ERROR WILL OCCUR IF C(AC0) DIFFERS + 821 ;FROM ORIGINAL FOLLOWING IBP + 822 + 823 000014 AC=14 + 824 SAVEAC (1,1)^ + 825 030635 201 16 0 00 030635 MOVEI AC+2,. ;SAVE TEST PC + 826 030636 202 16 0 00 030051 MOVEM AC+2,TESTPC + 827 030637 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 828 030640 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 829 + 830 030641 474 12 0 00 000000 G200: SETO AC-2, ;SETUP FOR COMPARISON + 831 030642 205 15 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR WORD + 832 030643 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 833 030644 133 00 0 00 000015 IBP ,&17 ;INC BYTE PNTR + 834 030645 312 00 0 00 000012 CAME ,&17 ;TEST BYTE WORD + 835 030646 012 00 0 00 000201 ER12 ,201 ;BYTE WORD FAILED + 836 030647 321 16 0 00 030641 JUMPL AC+2,G200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 3 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0032 + + 837 ;INST-IBP + 838 ;PFIELD=22 + 839 ;SFIELD=6 + 840 ;AN ERROR WILL OCCUR IF POINTER IS NOT INCREMENTED + 841 + 842 000013 AC=13 + 843 SAVEAC (1,1)^ + 844 030650 201 15 0 00 030650 MOVEI AC+2,. ;SAVE TEST PC + 845 030651 202 15 0 00 030051 MOVEM AC+2,TESTPC + 846 030652 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 847 030653 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 848 + 849 030654 205 11 0 00 060600 G300: MOVSI AC-2,060600 ;SETUP FOR COMPARISON + 850 030655 205 14 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR WORD + 851 030656 133 00 0 00 000014 IBP ,&17 ;INCREMENT PNTR + 852 030657 312 14 0 00 000011 CAME AC+1,&17 ;TEST PNTR INC + 853 030660 005 14 0 00 000301 ER5 AC+1,301 ;POINTER FAILED + 854 030661 321 15 0 00 030654 JUMPL AC+2,G300 ;LOOP ON ERROR SWITCH + 855 + 856 ;INST - IBP + 857 ;PFIELD=16 + 858 ;SFIELD=6 + 859 + 860 000012 AC=12 + 861 SAVEAC (1,1)^ + 862 030662 201 14 0 00 030662 MOVEI AC+2,. ;SAVE TEST PC + 863 030663 202 14 0 00 030051 MOVEM AC+2,TESTPC + 864 030664 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 865 030665 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 866 + 867 030666 205 10 0 00 100600 G400: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + 868 030667 205 13 0 00 160600 MOVSI AC+1,160600 ;SETUP PNTR + 869 030670 133 00 0 00 000013 IBP ,&17 ;INCREMENT PNTR + 870 030671 312 13 0 00 000010 CAME AC+1,&17 ;TEST PFIELD + 871 030672 005 13 0 00 000401 ER5 AC+1,401 ;POINTER FAILED + 872 030673 321 14 0 00 030666 JUMPL AC+2,G400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 4 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0033 + + 873 ;INST-IBP + 874 ;TEST ABILITY TO TRANSFER INCREMENTED + 875 ;PFIELD + 876 ;TEST JAM-ZERO'S + 877 ;PFIELD=77 + 878 ;SFIELD=1,2,4,10,20,40 + 879 ;TEST JAM-ONE'S + 880 ;PFIELD=6,14,30,60,40 + 881 ;SFIELD=3,6,14,30,20 + 882 + 883 000010 AC=10 + 884 SAVEAC (1,1)^ + 885 030674 201 12 0 00 030674 MOVEI AC+2,. ;SAVE TEST PC + 886 030675 202 12 0 00 030051 MOVEM AC+2,TESTPC + 887 030676 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 888 030677 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 889 + 890 000600 SN=600 + 891 000040 ZZ=40 + 892 004000 YY=4000 + 893 + 894 G600: REPEAT ^D6,< + 895 SN=SN+1 + 896 ZZ=ZZ+ZZ + 897 YY=YY+YY + 898 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 899 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 900 IBP ,&17 ;INCREMENT BYTE PNTR + 901 CAME AC+1,&17 ;TEST PFIELD + 902 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 903 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 904 > + 905 + 906 000601 SN=SN+1 + 907 000100 ZZ=ZZ+ZZ + 908 010000 YY=YY+YY + 909 030700 205 06 0 00 760100 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 910 030701 205 11 0 00 770100 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 911 030702 133 00 0 00 000011 IBP ,&17 ;INCREMENT BYTE PNTR + 912 030703 312 11 0 00 000006 CAME AC+1,&17 ;TEST PFIELD + 913 030704 005 11 0 00 000601 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 914 030705 321 12 0 00 030700 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 915 + 916 + 917 000602 SN=SN+1 + 918 000200 ZZ=ZZ+ZZ + 919 020000 YY=YY+YY + 920 030706 205 06 0 00 750200 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 921 030707 205 11 0 00 770200 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 922 030710 133 00 0 00 000011 IBP ,&17 ;INCREMENT BYTE PNTR + 923 030711 312 11 0 00 000006 CAME AC+1,&17 ;TEST PFIELD + 924 030712 005 11 0 00 000602 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 925 030713 321 12 0 00 030706 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 926 + 927 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 4-1 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0034 + + 928 000603 SN=SN+1 + 929 000400 ZZ=ZZ+ZZ + 930 040000 YY=YY+YY + 931 030714 205 06 0 00 730400 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 932 030715 205 11 0 00 770400 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 933 030716 133 00 0 00 000011 IBP ,&17 ;INCREMENT BYTE PNTR + 934 030717 312 11 0 00 000006 CAME AC+1,&17 ;TEST PFIELD + 935 030720 005 11 0 00 000603 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 936 030721 321 12 0 00 030714 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 937 + 938 + 939 000604 SN=SN+1 + 940 001000 ZZ=ZZ+ZZ + 941 100000 YY=YY+YY + 942 030722 205 06 0 00 671000 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 943 030723 205 11 0 00 771000 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 944 030724 133 00 0 00 000011 IBP ,&17 ;INCREMENT BYTE PNTR + 945 030725 312 11 0 00 000006 CAME AC+1,&17 ;TEST PFIELD + 946 030726 005 11 0 00 000604 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 947 030727 321 12 0 00 030722 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 948 + 949 + 950 000605 SN=SN+1 + 951 002000 ZZ=ZZ+ZZ + 952 200000 YY=YY+YY + 953 030730 205 06 0 00 572000 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 954 030731 205 11 0 00 772000 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 955 030732 133 00 0 00 000011 IBP ,&17 ;INCREMENT BYTE PNTR + 956 030733 312 11 0 00 000006 CAME AC+1,&17 ;TEST PFIELD + 957 030734 005 11 0 00 000605 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 958 030735 321 12 0 00 030730 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 959 + 960 + 961 000606 SN=SN+1 + 962 004000 ZZ=ZZ+ZZ + 963 400000 YY=YY+YY + 964 030736 205 06 0 00 374000 MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + 965 030737 205 11 0 00 774000 MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + 966 030740 133 00 0 00 000011 IBP ,&17 ;INCREMENT BYTE PNTR + 967 030741 312 11 0 00 000006 CAME AC+1,&17 ;TEST PFIELD + 968 030742 005 11 0 00 000606 ER5 AC+1,SN ;BIT UNDER TEST FAILED + 969 030743 321 12 0 00 030736 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 970 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 5 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0035 + + 971 000011 AC=11 + 972 SAVEAC (1,1)^ + 973 030744 201 13 0 00 030744 MOVEI AC+2,. ;SAVE TEST PC + 974 030745 202 13 0 00 030051 MOVEM AC+2,TESTPC + 975 030746 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 976 030747 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 977 + 978 ;TEST AR1(1) + 979 030750 205 07 0 00 202000 G700: MOVSI AC-2,202000 ;SETUP FOR COMPARISON + 980 030751 205 12 0 00 402000 MOVSI AC+1,402000 ;SETUP PNTR WORD + 981 030752 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 982 030753 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD + 983 030754 005 12 0 00 000701 ER5 AC+1,701 ;POINTER FAILED TO INCREMENT CORRECTLY + 984 030755 321 13 0 00 030750 JUMPL AC+2,G700 ;LOOP ON ERROR SWITCH + 985 + 986 ;TEST AR2(1) + 987 030756 205 07 0 00 303000 G1000: MOVSI AC-2,303000 ;SETUP FOR COMPARISON + 988 030757 205 12 0 00 603000 MOVSI AC+1,603000 ;SETUP PNTR + 989 030760 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 990 030761 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD + 991 030762 005 12 0 00 001001 ER5 AC+1,1001 ;POINTER FAILED TO INCREMENT CORRECTLY + 992 030763 321 13 0 00 030756 JUMPL AC+2,G1000 ;LOOP ON ERROR SWITCH + 993 + 994 030764 205 07 0 00 141400 G1100: MOVSI AC-2,141400 ;SETUP FOR COMPARISON + 995 030765 205 12 0 00 301400 MOVSI AC+1,301400 ;SETUP PNTR + 996 030766 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 997 030767 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD + 998 030770 005 12 0 00 001101 ER5 AC+1,1101 ;POINTER FAILED TO INCREMENT CORRECTLY + 999 030771 321 13 0 00 030764 JUMPL AC+2,G1100 ;LOOP ON ERROR SWITCH + 1000 + 1001 ;TEST AR4(1) + 1002 030772 205 07 0 00 060600 G1200: MOVSI AC-2,060600 ;SETUP FOR COMPARISON + 1003 030773 205 12 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR + 1004 030774 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1005 030775 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD + 1006 030776 005 12 0 00 001201 ER5 AC+1,1201 ;POINTER FAILED TO INCREMENT CORRECTLY + 1007 030777 321 13 0 00 030772 JUMPL AC+2,G1200 ;LOOP ON ERROR SWITCH + 1008 + 1009 ;TEST AR5(1) + 1010 031000 205 07 0 00 030300 G1300: MOVSI AC-2,030300 ;SETUP FOR COMPARISON + 1011 031001 205 12 0 00 060300 MOVSI AC+1,060300 ;SETUP PNTR + 1012 031002 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1013 031003 312 12 0 00 000007 CAME AC+1,&17 ;TEST P FIELD + 1014 031004 005 12 0 00 001301 ER5 AC+1,1301 ;POINTER FAILED TO INCREMENT CORRECTLY + 1015 031005 321 13 0 00 031000 JUMPL AC+2,G1300 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 6 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0036 + + 1016 ;INST-IBP + 1017 ;PFIELD=5 + 1018 ;SFIELD=10 + 1019 + 1020 000005 AC=5 + 1021 SAVEAC (1,1)^ + 1022 031006 201 07 0 00 031006 MOVEI AC+2,. ;SAVE TEST PC + 1023 031007 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1024 031010 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1025 031011 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1026 + 1027 031012 205 03 0 00 341000 G1400: MOVSI AC-2,341000 ;SETUP FOR COMPARISON + 1028 031013 205 06 0 00 051000 MOVSI AC+1,051000 ;SETUP PNTR WORD + 1029 031014 133 00 0 00 000006 IBP ,&17 ;INCREMENT PNPR + 1030 031015 620 06 0 00 000001 TRZ AC+1,1 ;CREAR ADDRESS FIELD OF POINTER + 1031 031016 312 06 0 00 000003 CAME AC+1,&17 ;TEST P FIELD + 1032 031017 005 06 0 00 001401 ER5 AC+1,1401 ;POINTER FAILED + 1033 031020 321 07 0 00 031012 JUMPL AC+2,G1400 ;LOOP ON ERROR SWITCH + 1034 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 6-1 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0037 + + 1035 ;INST - IBP + 1036 ;TEST ABILITY TO TRANSFER PFIELD + 1037 ;PRELIMINARY - TEST FOR PRESENCE + 1038 ; OF PULSE + 1039 ;PFIELD=16 + 1040 ;SFIELD=6 + 1041 + 1042 000005 AC=5 + 1043 SAVEAC (1,1)^ + 1044 031021 201 07 0 00 031021 MOVEI AC+2,. ;SAVE TEST PC + 1045 031022 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1046 031023 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1047 031024 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1048 + 1049 031025 205 03 0 00 100600 G1500: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + 1050 031026 205 06 0 00 160600 MOVSI AC+1,160600 ;SETUP PNTR WORD + 1051 031027 133 00 0 00 000006 IBP ,&17 ;INCREMENT BYTE PNTR + 1052 031030 620 06 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1053 031031 312 06 0 00 000003 CAME AC+1,&17 ;TEST PFIELD + 1054 031032 005 06 0 00 001501 ER5 AC+1,1501 ;POINTER FAILED + 1055 031033 321 07 0 00 031025 JUMPL AC+2,G1500 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 7 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0038 + + 1056 ;INST-IBP + 1057 ;TEST ABILITY TO TRANSFER PFIELD + 1058 ;TEST ABILITY TO SET INDIVIDUAL + 1059 ;SC BITS 3-8 + 1060 ;PFIELD=1,2,4,10,20,40 + 1061 ;SFIELD=1,2,4,10,20,40 + 1062 + 1063 000014 AC=14 + 1064 SAVEAC (1,1)^ + 1065 031034 201 16 0 00 031034 MOVEI AC+2,. ;SAVE TEST PC + 1066 031035 202 16 0 00 030051 MOVEM AC+2,TESTPC + 1067 031036 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1068 031037 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1069 ;TEST SC BIT 8 SET + 1070 031040 205 12 0 00 000100 G1600: MOVSI AC-2,000100 ;SETUP FOR COMPARISON + 1071 031041 205 15 0 00 010100 MOVSI AC+1,010100 ;SETUP PNTR WORD + 1072 031042 133 00 0 00 000015 IBP ,&17 ;INCREMENT BYTE PNTR + 1073 031043 620 15 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1074 031044 312 15 0 00 000012 CAME AC+1,&17 ;TEST BIT 8 + 1075 031045 005 15 0 00 001601 ER5 AC+1,1601 ;POINTER FAILED + 1076 031046 321 16 0 00 031040 JUMPL AC+2,G1600 ;LOOP ON ERROR SWITCH + 1077 + 1078 ;TEST SC BIT 7 SET + 1079 031047 205 12 0 00 000200 G1700: MOVSI AC-2,000200 ;SETUP FOR COMPARISON + 1080 031050 205 15 0 00 020200 MOVSI AC+1,020200 ;SETUP PNTR WORD + 1081 031051 133 00 0 00 000015 IBP ,&17 ;INCREMENT BYTE PNTR + 1082 031052 620 15 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1083 031053 312 15 0 00 000012 CAME AC+1,&17 ;TEST BIT 7 + 1084 031054 005 15 0 00 001701 ER5 AC+1,1701 ;POINTER FAILED + 1085 031055 321 16 0 00 031047 JUMPL AC+2,G1700 ;LOOP ON ERROR SWITCH + 1086 + 1087 ;TEST SC BIT 6 SET + 1088 031056 205 12 0 00 000400 G2000: MOVSI AC-2,000400 ;SETUP FOR COMPARISON + 1089 031057 205 15 0 00 040400 MOVSI AC+1,040400 ;SETUP PNTR WORD + 1090 031060 133 00 0 00 000015 IBP ,&17 ;INCREMENT BYTE PNTR + 1091 031061 620 15 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1092 031062 312 15 0 00 000012 CAME AC+1,&17 ;TEST BIT 6 + 1093 031063 005 15 0 00 002001 ER5 AC+1,2001 ;POINTER FAILED + 1094 031064 321 16 0 00 031056 JUMPL AC+2,G2000 ;LOOP ON ERROR SWITCH + 1095 + 1096 ;TEST SC BIT 5 SET + 1097 031065 205 12 0 00 001000 G2100: MOVSI AC-2,001000 ;SETUP FOR COMPARISON + 1098 031066 205 15 0 00 101000 MOVSI AC+1,101000 ;SETUP PNTR WORD + 1099 031067 133 00 0 00 000015 IBP ,&17 ;INCREMENT BYTE PNTR + 1100 031070 620 15 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1101 031071 312 15 0 00 000012 CAME AC+1,&17 ;TEST BIT 5 + 1102 031072 005 15 0 00 002101 ER5 AC+1,2101 ;POINTER FAILED + 1103 031073 321 16 0 00 031065 JUMPL AC+2,G2100 ;LOOP ON ERROR SWITCH + 1104 + 1105 ;TEST SC BIT 4 SET + 1106 031074 205 12 0 00 002000 G2200: MOVSI AC-2,002000 ;SETUP FOR COMPARISON + 1107 031075 205 15 0 00 202000 MOVSI AC+1,202000 ;SETUP PNTR WORD + 1108 031076 133 00 0 00 000015 IBP ,&17 ;INCREMENT BYTE PNTR + 1109 031077 620 15 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1110 031100 312 15 0 00 000012 CAME AC+1,&17 ;TEST BIT 4 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 7-1 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0039 + + 1111 031101 005 15 0 00 002201 ER5 AC+1,2201 ;POINTER FAILED + 1112 031102 321 16 0 00 031074 JUMPL AC+2,G2200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 8 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0040 + + 1113 ;TEST SC BIT 3 SET + 1114 031103 205 12 0 00 004000 G2300: MOVSI AC-2,004000 ;SETUP FOR COMPARISON + 1115 031104 205 15 0 00 404000 MOVSI AC+1,404000 ;SETUP PNTR WORD + 1116 031105 133 00 0 00 000015 IBP ,&17 ;INCREMENT BYTE PNTR + 1117 031106 620 15 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1118 031107 312 15 0 00 000012 CAME AC+1,&17 ;TEST BIT 3 + 1119 031110 005 15 0 00 002301 ER5 AC+1,2301 ;POINTER FAILED + 1120 031111 321 16 0 00 031103 JUMPL AC+2,G2300 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 9 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0041 + + 1121 ;INST-IBP + 1122 ;TEST ABILITY TO SET SC BITS 3,6 + 1123 ;PFIELD=6 + 1124 ;SFIELD=10 + 1125 ;FAILURE OF BIT 3 TO SET RESULTS IN A + 1126 ;PFIELD=74 + 1127 ;FAILURE OF BIT 6 TO SET RESULTS IN + 1128 ;A PFEILD=30 + 1129 ;SC BIT2 IS NOT TESTED-FAILURE TO SET + 1130 ;BIT 2 RESULTS IN LOOPING + 1131 + 1132 000013 AC=13 + 1133 SAVEAC (1,1)^ + 1134 031112 201 15 0 00 031112 MOVEI AC+2,. ;SAVE TEST PC + 1135 031113 202 15 0 00 030051 MOVEM AC+2,TESTPC + 1136 031114 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1137 031115 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1138 + 1139 031116 205 11 0 00 341000 G2400: MOVSI AC-2,341000 ;SETUP FOR COMPARISON + 1140 031117 205 14 0 00 061000 MOVSI AC+1,061000 ;SETUP PNTR WORD + 1141 031120 133 00 0 00 000014 IBP ,&17 ;INCREMENT PNTR + 1142 031121 620 14 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1143 031122 312 14 0 00 000011 CAME AC+1,&17 ;TEST SC3 (1) + 1144 031123 005 14 0 00 002401 ER5 AC+1,2401 ;POINTER FAILED + 1145 031124 321 15 0 00 031116 JUMPL AC+2,G2400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 10 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0042 + + 1146 ;INST-IBP + 1147 ;TEST ABILITY TO CLEAR INDIVIDUAL + 1148 ;SC BITS + 1149 ;PFIELD=20,10,2,1 + 1150 ;SFIELD=21,11,3,2 + 1151 ;FAILURE TO CLEAR SC BITS 4,5,7 + 1152 ;OR 8 RESULTS IN A PFIELD=43 + 1153 ;FAILURE TO CLEAR SC BITS 3 OR 6 + 1154 ;WILL NOT BE APPARENT + 1155 + 1156 000011 AC=11 + 1157 SAVEAC (1,1)^ + 1158 031125 201 13 0 00 031125 MOVEI AC+2,. ;SAVE TEST PC + 1159 031126 202 13 0 00 030051 MOVEM AC+2,TESTPC + 1160 031127 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1161 031130 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1162 + 1163 ;TEST SC4 CLEARING + 1164 031131 205 07 0 00 232100 G2600: MOVSI AC-2,232100 ;SETUP FOR COMPARISON + 1165 031132 205 12 0 00 202100 MOVSI AC+1,202100 ;SETUP PNTR WORD + 1166 031133 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1167 031134 620 12 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1168 031135 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD=43 + 1169 031136 005 12 0 00 002601 ER5 AC+1,2601 ;POINTER FAILED + 1170 031137 321 13 0 00 031131 JUMPL AC+2,G2600 ;LOOP ON ERROR SWITCH + 1171 + 1172 ;TEST SC5 CLEARING + 1173 031140 205 07 0 00 331100 G2700: MOVSI AC-2,331100 ;SETUP FOR COMPARISON + 1174 031141 205 12 0 00 101100 MOVSI AC+1,101100 ;SETUP PNTR WORD + 1175 031142 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1176 031143 620 12 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1177 031144 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD=45 + 1178 031145 005 12 0 00 002701 ER5 AC+1,2701 ;POINTER FAILED + 1179 031146 321 13 0 00 031140 JUMPL AC+2,G2700 ;LOOP ON ERROR SWITCH + 1180 + 1181 ;TEST SC 7 CLEARING + 1182 031147 205 07 0 00 410300 G3000: MOVSI AC-2,410300 ;SETUP FOR COMPARISON + 1183 031150 205 12 0 00 020300 MOVSI AC+1,020300 ;SETUP PNTR + 1184 031151 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1185 031152 620 12 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1186 031153 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD=43 + 1187 031154 005 12 0 00 003001 ER5 AC+1,3001 ;POINTER FAILED + 1188 031155 321 13 0 00 031147 JUMPL AC+2,G3000 ;LOOP ON ERROR SWITCH + 1189 + 1190 ;TEST SC8 CLEARING + 1191 031156 205 07 0 00 420200 G3100: MOVSI AC-2,420200 ;SETUP FOR COMPARISON + 1192 031157 205 12 0 00 010200 MOVSI AC+1,010200 ;SETUP PNTR + 1193 031160 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1194 031161 620 12 0 00 000001 TRZ AC+1,1 ;CLEAR BIT 35 + 1195 031162 312 12 0 00 000007 CAME AC+1,&17 ;TEST PFIELD=43 + 1196 031163 005 12 0 00 003101 ER5 AC+1,3101 ;POINTER FAILED + 1197 031164 321 13 0 00 031156 JUMPL AC+2,G3100 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 11 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0043 + + 1198 ;INST-IBP + 1199 ;TEST ABILITY TO INCREMENT ADDRESS + 1200 ;FIELD OF PNTR WORD + 1201 ;PFIELD=6 + 1202 ;SFIELD=10 + 1203 ;LOSS OF THE SFIELD AND AN ADDRESS=1 + 1204 + 1205 000012 AC=12 + 1206 SAVEAC (1,1)^ + 1207 031165 201 14 0 00 031165 MOVEI AC+2,. ;SAVE TEST PC + 1208 031166 202 14 0 00 030051 MOVEM AC+2,TESTPC + 1209 031167 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1210 031170 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1211 + 1212 031171 205 10 0 00 341000 G3200: MOVSI AC-2,341000 ;SETUP AC-2 + 1213 031172 340 10 0 00 031173 AOJ AC-2,.+1 ;FOR COMPARISON + 1214 031173 205 13 0 00 061000 MOVSI AC+1,061000 ;SETUP PNTR WORD + 1215 031174 133 00 0 00 000013 IBP ,&17 ;INC PNTR WORD + 1216 031175 312 13 0 00 000010 CAME AC+1,&17 ;TEST FOR ERROR PNTR + 1217 031176 005 13 0 00 003201 ER5 AC+1,3201 ;POINTER FAILED + 1218 031177 321 14 0 00 031171 JUMPL AC+2,G3200 ;LOOP ON ERROR SWITCH + 1219 + 1220 ;INST-IBP + 1221 ;TEST ABILITY TO INCREMENT + 1222 ;ADDRESS FIELD OF PNTR WORD + 1223 ;PFIELD=6 + 1224 ;SFIELD=10 + 1225 + 1226 000011 AC=11 + 1227 SAVEAC (1,1)^ + 1228 031200 201 13 0 00 031200 MOVEI AC+2,. ;SAVE TEST PC + 1229 031201 202 13 0 00 030051 MOVEM AC+2,TESTPC + 1230 031202 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1231 031203 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1232 + 1233 031204 505 07 0 00 341000 G3300: HRLI AC-2,341000 ;SETUP AC-2 FOR + 1234 031205 541 07 0 00 000012 HRRI AC-2,&17 ;COMPARISON + 1235 031206 505 12 0 00 061000 HRLI AC+1,061000 ;SETUP BYTE + 1236 031207 541 12 0 00 000011 HRRI AC+1,AC&17 ;PNTR WORD + 1237 031210 133 00 0 00 000012 IBP ,&17 ;INCREMENT PNTR + 1238 031211 312 12 0 00 000007 CAME AC+1,&17 ;TEST ADDRESS + 1239 031212 005 12 0 00 003301 ER5 AC+1,3301 ;POINTER FAILED + 1240 031213 321 13 0 00 031204 JUMPL AC+2,G3300 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 12 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0044 + + 1241 ;INST-LDB + 1242 ;TEST ABILITY TO FCE (2ND PART) + 1243 ;FAILURE TO FCE RESULTS IN LOSS + 1244 ;OF DATA WORD + 1245 ;PFIELD=0 + 1246 ;SFIELD=6 + 1247 ;BYTE WORD=0,777777 + 1248 ;DEST AC=0 + 1249 + 1250 000014 AC=14 + 1251 SAVEAC (1,1)^ + 1252 031214 201 16 0 00 031214 MOVEI AC+2,. ;SAVE TEST PC + 1253 031215 202 16 0 00 030051 MOVEM AC+2,TESTPC + 1254 031216 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1255 031217 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1256 + 1257 031220 505 15 0 00 000600 G3400: HRLI AC+1,000600 ;SETUP BYTE + 1258 031221 541 15 0 00 000005 HRRI AC+1,5 ;PNTR WORD + 1259 031222 201 05 0 00 777777 MOVEI 5,-1 ;SETUP BYTE WORD + 1260 031223 400 14 0 00 000000 SETZ AC, ;CLEAR DEST AC + 1261 031224 135 14 0 00 000015 LDB AC,&17 ;LOAD BYTE + 1262 031225 302 14 0 00 000077 CAIE AC,77 ;TEST DEST AC=0,,77 + 1263 031226 003 14 0 00 003401 ER3 AC,3401 ;AC FAILED + 1264 031227 321 16 0 00 031220 JUMPL AC+2,G3400 ;LOOP ON ERROR SWITCH + 1265 + 1266 ;INST-LDB + 1267 ;P FIELD =14 + 1268 ;S FIELD =6 + 1269 ;BYTE WORD =-1 + 1270 + 1271 000011 AC=11 + 1272 SAVEAC (1,1)^ + 1273 031230 201 13 0 00 031230 MOVEI AC+2,. ;SAVE TEST PC + 1274 031231 202 13 0 00 030051 MOVEM AC+2,TESTPC + 1275 031232 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1276 031233 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1277 + 1278 031234 551 07 0 00 000077 G3500: HRRZI AC-2,77 ;SETUP FOR COMPARISON + 1279 031235 205 12 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR + 1280 031236 474 00 0 00 000000 SETO ;SETUP BYTE WORD + 1281 031237 135 11 0 00 000012 LDB AC,&17 ;LOAD BYTE + 1282 031240 312 11 0 00 000007 CAME AC,&17 ;TEST BYTE=0,,77 + 1283 031241 003 11 0 00 003501 ER3 AC,3501 ;AC FAILED + 1284 031242 321 13 0 00 031234 JUMPL AC+2,G3500 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 13 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0045 + + 1285 ;INST-LDB + 1286 ;PFIELD=14 + 1287 ;SFIELD=6 + 1288 ;BYTE WORD = 777777 + 1289 + 1290 000006 AC=6 + 1291 SAVEAC (1,1)^ + 1292 031243 201 10 0 00 031243 MOVEI AC+2,. ;SAVE TEST PC + 1293 031244 202 10 0 00 030051 MOVEM AC+2,TESTPC + 1294 031245 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1295 031246 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1296 + 1297 031247 205 07 0 00 140600 G3600: MOVSI AC+1,140600 ;SETUP PNTR WORD + 1298 031250 201 00 0 00 777777 MOVEI ,-1 ;SETUP BYTE WORD (AC0) + 1299 031251 135 06 0 00 000007 LDB AC,&17 ;LOAD BYTE + 1300 031252 302 06 0 00 000077 CAIE AC,77 ;TEST DEST AC + 1301 031253 003 06 0 00 003601 ER3 AC,3601 ;AC FAILED + 1302 031254 321 10 0 00 031247 JUMPL AC+2,G3600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 14 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0046 + + 1303 ;INST-LDB + 1304 ;TEST ABILITY TO TRANSFER 2'S COMP + 1305 ;SFIELD + 1306 ;TEST ABILITY TO SET INDIVIDUAL + 1307 ;BITS OF SC + 1308 ;PFIELD=0 + 1309 ;SFIELD=40,20,10,4,2,1 + 1310 ;BYTE WORD=-1 + 1311 + 1312 000005 AC=5 + 1313 SAVEAC (1,1)^ + 1314 031255 201 07 0 00 031255 MOVEI AC+2,. ;SAVE TEST PC + 1315 031256 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1316 031257 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1317 031260 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1318 ;TEST SC 1,2,3 SET + 1319 031261 525 03 0 00 037777 G3700: HRLOI AC-2,37777 ;SETUP FOR COMPARISON + 1320 031262 205 06 0 00 004000 MOVSI AC+1,4000 ;SETUP PNTR WORD + 1321 031263 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1322 031264 135 05 0 00 000006 LDB AC,&17 ;LOAD BYTE + 1323 031265 312 05 0 00 000003 CAME AC,&17 ;TEST BYTE=37777,,777777 + 1324 031266 003 05 0 00 003701 ER3 AC,3701 ;AC FAILED + 1325 031267 321 07 0 00 031261 JUMPL AC+2,G3700 ;LOOP ON ERROR SWITCH + 1326 + 1327 ;TEST SC4 SET + 1328 031270 551 03 0 00 177777 G4000: HRRZI AC-2,177777 ;SETUP FOR COMPARISON + 1329 031271 205 06 0 00 002000 MOVSI AC+1,2000 ;SETUP PNTR WORD + 1330 031272 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1331 031273 135 05 0 00 000006 LDB AC,&17 ;LOAD BYTE + 1332 031274 312 05 0 00 000003 CAME AC,&17 ;TEST BYTE=0,,177777 + 1333 031275 003 05 0 00 004001 ER3 AC,4001 ;AC FAILED + 1334 031276 321 07 0 00 031270 JUMPL AC+2,G4000 ;LOOP ON ERROR SWITCH + 1335 + 1336 ;TEST SC5 SET + 1337 031277 201 03 0 00 000377 G4100: MOVEI AC-2,377 ;SETUP FOR COMPARISON + 1338 031300 205 06 0 00 001000 MOVSI AC+1,1000 ;SETUP PNTR WORD + 1339 031301 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1340 031302 135 05 0 00 000006 LDB AC,&17 ;LOAD BYTE + 1341 031303 312 05 0 00 000003 CAME AC,&17 ;TEST BYTE = 0,,377 + 1342 031304 003 05 0 00 004101 ER3 AC,4101 ;AC FAILED + 1343 031305 321 07 0 00 031277 JUMPL AC+2,G4100 ;LOOP ON ERROR SWITCH + 1344 + 1345 ;TEST SC6 SET + 1346 031306 201 03 0 00 000017 G4200: MOVEI AC-2,17 ;SETUP FOR COMPARISON + 1347 031307 205 06 0 00 000400 MOVSI AC+1,400 ;SETUP PNTR WORD + 1348 031310 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1349 031311 135 05 0 00 000006 LDB AC,&17 ;LOAD BYTE + 1350 031312 312 05 0 00 000003 CAME AC,&17 ;TEST BYTE=0,,17 + 1351 031313 003 05 0 00 004201 ER3 AC,4201 ;AC FAILED + 1352 031314 321 07 0 00 031306 JUMPL AC+2,G4200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 15 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0047 + + 1353 ;TEST SC 7 SET + 1354 031315 201 03 0 00 000003 G4300: MOVEI AC-2,3 ;SETUP FOR COMPARISON + 1355 031316 205 06 0 00 000200 MOVSI AC+1,200 ;SETUP PNTR WORD + 1356 031317 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1357 031320 135 05 0 00 000006 LDB AC,&17 ;LOAD BYTE + 1358 031321 312 05 0 00 000003 CAME AC,&17 ;TEST BYTE=0,,3 + 1359 031322 003 05 0 00 004301 ER3 AC,4301 ;AC FAILED + 1360 031323 321 07 0 00 031315 JUMPL AC+2,G4300 ;LOOP ON ERROR SWITCH + 1361 + 1362 ;TEST SC 8 SET + 1363 031324 201 03 0 00 000001 G4400: MOVEI AC-2,1 ;SETUP FOR COMPARISON + 1364 031325 205 06 0 00 000100 MOVSI AC+1,100 ;SETUP PNTR WORD + 1365 031326 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1366 031327 135 05 0 00 000006 LDB AC,&17 ;LOAD BYTE + 1367 031330 312 05 0 00 000003 CAME AC,&17 ;TEST BYTE=0,,1 + 1368 031331 003 05 0 00 004401 ER3 AC,4401 ;AC FAILED + 1369 031332 321 07 0 00 031324 JUMPL AC+2,G4400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 16 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0048 + + 1370 ;INST-LDB + 1371 ;PFIELD=6 + 1372 ;SFIELD=14 + 1373 ;BYTE WORD=000000007700 + 1374 + 1375 000014 AC=14 + 1376 SAVEAC (1,1)^ + 1377 031333 201 16 0 00 031333 MOVEI AC+2,. ;SAVE TEST PC + 1378 031334 202 16 0 00 030051 MOVEM AC+2,TESTPC + 1379 031335 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1380 031336 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1381 + 1382 031337 201 12 0 00 000077 G4600: MOVEI AC-2,77 ;SETUP FOR COMPARISON + 1383 031340 205 15 0 00 061400 MOVSI AC+1,061400 ;SETUP PNTR WORD + 1384 031341 201 00 0 00 007700 MOVEI ,7700 ;SETUP BYTE WORD + 1385 031342 135 14 0 00 000015 LDB AC,&17 ;LOAD BYTE + 1386 031343 312 14 0 00 000012 CAME AC,&17 ;TEST BYTE =77 + 1387 031344 003 14 0 00 004601 ER3 AC,4601 ;AC FAILED + 1388 031345 321 16 0 00 031337 JUMPL AC+2,G4600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 17 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0049 + + 1389 ;INST-LDB + 1390 ;PFIELD=6 + 1391 ;SFIELD=6 + 1392 ;BYTEWORD=-1 + 1393 + 1394 000013 AC=13 + 1395 SAVEAC (1,1)^ + 1396 031346 201 15 0 00 031346 MOVEI AC+2,. ;SAVE TEST PC + 1397 031347 202 15 0 00 030051 MOVEM AC+2,TESTPC + 1398 031350 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1399 031351 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1400 + 1401 031352 201 11 0 00 000077 G4700: MOVEI AC-2,77 ;SETUP FOR COMPARISON + 1402 031353 205 14 0 00 060600 MOVSI AC+1,060600 ;SETUP PNTR + 1403 031354 474 00 0 00 000000 SETO ;SETUP BYTE WORD + 1404 031355 135 13 0 00 000014 LDB AC,&17 ;LOAD BYTE + 1405 031356 312 13 0 00 000011 CAME AC,&17 ;TEST BYTE=0,,77 + 1406 031357 003 13 0 00 004701 ER3 AC,4701 ;AC FAILED + 1407 031360 321 15 0 00 031352 JUMPL AC+2,G4700 ;LOOP ON ERROR SWITCH + 1408 + 1409 ;INST-LDB + 1410 ;TEST IR 134-7 + 1411 ;PFIELD=14 + 1412 ;SFIELD=6 + 1413 ;BYTE WORD=-1 + 1414 ;AN ERROR WILL OCCUR IF PC IS INCREMENTED + 1415 ;TWICE DURING EXECUTION OF LDB + 1416 + 1417 000010 AC=10 + 1418 SAVEAC (1,1)^ + 1419 031361 201 12 0 00 031361 MOVEI AC+2,. ;SAVE TEST PC + 1420 031362 202 12 0 00 030051 MOVEM AC+2,TESTPC + 1421 031363 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1422 031364 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1423 + 1424 031365 205 11 0 00 140600 G5000: MOVSI AC+1,140600 ;SETUP PNTR WORD + 1425 031366 474 00 0 00 000000 SETO ;SETUP BYTE WORD (AC0) + 1426 031367 135 10 0 00 000011 LDB AC,&17 ;LOAD BYTE + 1427 031370 254 00 0 00 031372 JRST ,.+2 ;PC+1 INH ASSERTED + 1428 031371 003 10 0 00 005001 ER3 AC,5001 ;AC FAILED + 1429 031372 321 12 0 00 031365 JUMPL AC+2,G5000 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 18 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0050 + + 1430 ;INST-LDB + 1431 ;TEST ABILITY TO CLEAR BYF6 + 1432 ;PFIELD=14 + 1433 ;SFIELD=6 + 1434 ;BYTE WORD=-1 + 1435 ;AN ERROR WILL OCCUR IF BYF6(1) WHEN STORED + 1436 ;BY JSP + 1437 + 1438 000007 AC=7 + 1439 SAVEAC (1,1)^ + 1440 031373 201 11 0 00 031373 MOVEI AC+2,. ;SAVE TEST PC + 1441 031374 202 11 0 00 030051 MOVEM AC+2,TESTPC + 1442 031375 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1443 031376 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1444 + 1445 031377 205 10 0 00 140600 G5100: MOVSI AC+1,140600 ;SETUP PNTR WORD + 1446 031400 474 00 0 00 000000 SETO ;SETUP BYTE WORD + 1447 031401 135 07 0 00 000010 LDB AC,&17 ;LOAD BYTE + 1448 031402 265 07 0 00 031403 JSP AC,.+1 ;STORE FLAGS + 1449 031403 603 07 0 00 020000 TLNE AC,020000 ;TEST BIT 4 + 1450 031404 003 07 0 00 005101 ER3 AC,5101 ;AC FAILED + 1451 031405 321 11 0 00 031377 JUMPL AC+2,G5100 ;LOOP ON ERROR SWITCH + 1452 + 1453 ;INST-LDB + 1454 ;TEST ABILITY TO DEFER (INDIRECT) BYTE + 1455 ;PNTR ADDRESS + 1456 ;FAILURE TO INDIRECTLY ADDRESS BYTE + 1457 ;PNTR RESULTS IN AN ERROR BYTE + 1458 ;PFIELD=0 + 1459 ;SFIELD=6 + 1460 ;ERROR BYTE=14 + 1461 ;CORRECT BYTE=44 + 1462 ;AN ERROR WILL OCCUR IF DEST AC=14 + 1463 ;FOLLOWING LOAD BYTE INDIRECTLY ADDRESSED + 1464 + 1465 000006 AC=6 + 1466 SAVEAC (1,1)^ + 1467 031406 201 10 0 00 031406 MOVEI AC+2,. ;SAVE TEST PC + 1468 031407 202 10 0 00 030051 MOVEM AC+2,TESTPC + 1469 031410 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1470 031411 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1471 + 1472 031412 205 07 0 00 000600 G5200: MOVSI AC+1,600 ;SETUP PNTR WORD + 1473 031413 505 00 0 00 000600 HRLI ,600 ;SETUP INDIRECT ADDRESS + 1474 031414 541 00 0 00 000014 HRRI ,14 ;PNTR WORD (AC0) + 1475 031415 201 14 0 00 000044 MOVEI AC+6,44 ;SETUP CORR BYTE WORD + 1476 031416 135 06 1 00 000007 LDB AC,@&17 ;LOAD BYTE INDIRECTLY + 1477 031417 302 06 0 00 000044 CAIE AC,44 ;TEST FOR CORR BYTE + 1478 031420 003 06 0 00 005201 ER3 AC,5201 ;INDIRECT ADDRESSING FAILED + 1479 031421 321 10 0 00 031412 JUMPL AC+2,G5200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 19 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0051 + + 1480 ;INST-LDB + 1481 ;TEST IR RT CLR AT6 + 1482 ;FURTHER TEST OF IR 134-7 + 1483 ;TEST ABILITY TO CLEAR IR BITS 13-17 FOLLOWING + 1484 ;DEFERRING OR INDEXING OF BYTE PNTR ADDR + 1485 ;PFIELD=6 + 1486 ;SFIELD=14 + 1487 ;CORR BYTE WORD=222222 + 1488 ;DEST AC=4 + 1489 ;AN ERROR WILL OCCUR IF DEST AC + 1490 ;EQUALS 5555 FOLLOWING LOAD BYTE + 1491 + 1492 000007 AC=7 + 1493 SAVEAC (1,1)^ + 1494 031422 201 11 0 00 031422 MOVEI AC+2,. ;SAVE TEST PC + 1495 031423 202 11 0 00 030051 MOVEM AC+2,TESTPC + 1496 031424 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1497 031425 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1498 + 1499 031426 205 14 0 00 061400 G5300: MOVSI AC+5,061400 ;SETUP INDEXED PNTR WORD + 1500 031427 201 07 0 00 000004 MOVEI AC,4 ;SETUP INDEX AC + 1501 031430 201 00 0 00 222222 MOVEI ,222222 ;SETUP CORR BYTE WORD + 1502 031431 201 04 0 00 555555 MOVEI AC-3,555555 ;SETUP CORR BYTE WORD + 1503 031432 135 07 0 07 000010 LDB AC,&17(AC) ;LOAD BYTE INDEXED + 1504 031433 302 07 0 00 002222 CAIE AC,2222 ;TEST FOR CORR BYTE + 1505 031434 003 07 0 00 005301 ER3 AC,5301 ;AC FAILED + 1506 031435 321 11 0 00 031426 JUMPL AC+2,G5300 ;LOOP ON ERROR SWITCH + 1507 + 1508 ;INST-LDB + 1509 ;FURTHER TEST OF IR 134-7 + 1510 ;TEST ABILITY TO INDEX BYTE WORD ADDRESS + 1511 ;P FIELD=0 + 1512 ;S FIELD=6 + 1513 ;FAILURE RESULTS IN IR14-17=0, + 1514 ;NO INDEX, ERROR BYTE=55 + 1515 + 1516 000010 AC=10 + 1517 SAVEAC (1,1)^ + 1518 031436 201 12 0 00 031436 MOVEI AC+2,. ;SAVE TEST PC + 1519 031437 202 12 0 00 030051 MOVEM AC+2,TESTPC + 1520 031440 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1521 031441 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1522 + 1523 031442 505 11 0 00 000607 G5400: HRLI AC+1,000607 ;SETUP BYTE + 1524 031443 541 11 0 00 000005 HRRI AC+1,5 ;PNTR WORD + 1525 031444 201 07 0 00 000010 MOVEI 7,10 ;SETUP INDEX AC + 1526 031445 201 05 0 00 000055 MOVEI 5,55 ;SETUP NON INDEX BYTE WORD + 1527 031446 201 15 0 00 000077 MOVEI 15,77 ;SETUP INDEXED BYTE WORD + 1528 031447 135 10 0 00 000011 LDB AC,&17 ;LOAD BYTE + 1529 031450 302 10 0 00 000077 CAIE AC,77 ;TEST BYTE=0,,77 + 1530 031451 003 10 0 00 005401 ER3 AC,5401 ;AC FAILED + 1531 031452 321 12 0 00 031442 JUMPL AC+2,G5400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 20 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0052 + + 1532 ;INST-LDB + 1533 ;TEST ABILITY TO INDEX BYTE WORD ADDRESS + 1534 ;P FIELD=0 + 1535 ;S FIELD=6 + 1536 ;FAILURE RESULTS IN A BYTE WORD + 1537 ;ADDRESS EQUAL TO CONTENTS OF + 1538 ;INDEX AC(=AC) + 1539 + 1540 000010 AC=10 + 1541 SAVEAC (1,1)^ + 1542 031453 201 12 0 00 031453 MOVEI AC+2,. ;SAVE TEST PC + 1543 031454 202 12 0 00 030051 MOVEM AC+2,TESTPC + 1544 031455 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1545 031456 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1546 + 1547 031457 505 11 0 00 000607 G5500: HRLI AC+1,000607 ;SETUP BYTE + 1548 031460 541 11 0 00 000005 HRRI AC+1,5 ;PNTR WORD + 1549 031461 403 10 0 00 000005 SETZB AC,5 ;CLEAR DEST AC'S + 1550 031462 201 07 0 00 000010 MOVEI 7,10 ;SETUP INDEX AC + 1551 031463 201 15 0 00 000077 MOVEI 15,77 ;SETUP BYTE WORD + 1552 031464 135 10 0 00 000011 LDB AC,&17 ;LOAD BYTE + 1553 031465 302 10 0 00 000077 CAIE AC,77 ;TEST FOR BYTE + 1554 031466 003 10 0 00 005501 ER3 AC,5501 ;AC FAILED + 1555 031467 321 12 0 00 031457 JUMPL AC+2,G5500 ;LOOP ON ERROR SWITCH + 1556 + 1557 ;INST-LDB + 1558 ;TEST ABILITY TO INDEX BYTE WORD ADDRESS + 1559 ;P FIELD=0 + 1560 ;S FIELD=6 + 1561 ;FAILURE RESULTS IN AN INDEX AC EQUAL + 1562 ;TO INDEX AC+AC(AC7+AC10=AC17) + 1563 + 1564 000010 AC=10 + 1565 SAVEAC (1,1)^ + 1566 031470 201 12 0 00 031470 MOVEI AC+2,. ;SAVE TEST PC + 1567 031471 202 12 0 00 030051 MOVEM AC+2,TESTPC + 1568 031472 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1569 031473 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1570 + 1571 031474 505 11 0 00 000607 G5600: HRLI AC+1,000607 ;SETUP BYTE + 1572 031475 541 11 0 00 000005 HRRI AC+1,5 ;PNTR WORD + 1573 031476 201 06 0 00 000010 MOVEI 6,10 ;SETUP INDEX AC + 1574 031477 201 15 0 00 000015 MOVEI 15,15 ;SETUP BYTE WORD + 1575 031500 201 16 0 00 000005 MOVEI 16,5 ;SETUP ERROR INDEX AC + 1576 031501 201 14 0 00 000014 MOVEI 14,14 ;SETUP ERROR BYTE WORD + 1577 031502 135 10 0 00 000011 LDB AC,&17 ;LOAD BYTE + 1578 031503 302 10 0 00 000015 CAIE AC,15 ;TEST BYTE=15 + 1579 031504 003 10 0 00 005601 ER3 AC,5601 ;AC FAILED + 1580 031505 321 12 0 00 031474 JUMPL AC+2,G5600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 21 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0053 + + 1581 ;INST-LDB + 1582 ;TEST ABILITY TO INDEX BYTE WORD ADDRESS + 1583 ;P FIELD=0 + 1584 ;S FIELD=6 + 1585 ;FAILURE RESULTS IN INDEXING BY C(AC0) + 1586 + 1587 000010 AC=10 + 1588 SAVEAC (1,1)^ + 1589 031506 201 12 0 00 031506 MOVEI AC+2,. ;SAVE TEST PC + 1590 031507 202 12 0 00 030051 MOVEM AC+2,TESTPC + 1591 031510 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1592 031511 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1593 + 1594 031512 505 11 0 00 000607 G5700: HRLI AC+1,000607 ;SETUP BYTE + 1595 031513 541 11 0 00 000005 HRRI AC+1,5 ;PNTR WORD + 1596 031514 201 07 0 00 000010 MOVEI 7,10 ;SETUP INDEX AC + 1597 031515 201 15 0 00 000015 MOVEI 15,15 ;SETUP BYTE WORD + 1598 031516 201 00 0 00 000007 MOVEI ,7 ;SETUP ERROR INDEX AC + 1599 031517 201 14 0 00 000033 MOVEI 14,33 ;SETUP ERROR BYTE WORD + 1600 031520 135 10 0 00 000011 LDB AC,AC+1 ;LOAD BYTE + 1601 031521 302 10 0 00 000015 CAIE AC,15 ;TEST BYTE=0,,15 + 1602 031522 003 10 0 00 005701 ER3 AC,5701 ;AC FAILED + 1603 031523 321 12 0 00 031512 JUMPL AC+2,G5700 ;LOOP ON ERROR SWITCH + 1604 + 1605 ;INST-ILDB + 1606 ;TEST ABILITY TO ASSERT BYTE PTRINC + 1607 ;P FIELD=16 + 1608 ;S FIELD=6 + 1609 ;FAILURE TO ASSERT MAY RESULT IN A HALT + 1610 ;AT ET0 + 1611 ;AN ERROR WILL OCCUR IF PNTR WORD + 1612 ;EQUALS ORIGINAL FOLLOWING ILDB + 1613 + 1614 000005 AC=5 + 1615 SAVEAC (1,1)^ + 1616 031524 201 07 0 00 031524 MOVEI AC+2,. ;SAVE TEST PC + 1617 031525 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1618 031526 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1619 031527 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1620 + 1621 031530 205 03 0 00 100600 G6000: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + 1622 031531 205 06 0 00 160600 MOVSI AC+1,160600 ;SETUP PNTR WORD + 1623 031532 134 05 0 00 000006 ILDB AC,&17 ;INC AND LOAD BYTE + 1624 031533 312 06 0 00 000003 CAME AC+1,&17 ;TEST PNTR=ORIGINAL + 1625 031534 004 06 0 00 006001 ER4 AC+1,6001 ;PNTR FAILED TO INCREMENT + 1626 031535 321 07 0 00 031530 JUMPL AC+2,G6000 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 22 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0054 + + 1627 + 1628 ;INST-ILDB + 1629 ;TEST LB BYTE LOAD + 1630 ;TEST BYF5 SET + 1631 ;P FIELD=22 + 1632 ;S FIELD=22 + 1633 ;BYTE WORD=000000777777 + 1634 ;FAILURE RESULTS IN A BYTE EQUAL + 1635 ;TO BYTE WORD. + 1636 + 1637 000014 AC=14 + 1638 SAVEAC (1,1)^ + 1639 031536 201 16 0 00 031536 MOVEI AC+2,. ;SAVE TEST PC + 1640 031537 202 16 0 00 030051 MOVEM AC+2,TESTPC + 1641 031540 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1642 031541 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1643 + 1644 031542 205 12 0 00 002200 G6100: MOVSI AC-2,002200 ;SETUP FOR COMPARISON + 1645 031543 205 15 0 00 222200 MOVSI AC+1,222200 ;SETUP PNTR WORD + 1646 031544 201 00 0 00 777777 MOVEI ,-1 ;SETUP BYTE WORD + 1647 031545 134 14 0 00 000015 ILDB AC,&17 ;INC AND LOAD BYTE + 1648 031546 312 00 0 00 000014 CAME ,AC ;TEST BYTE=000000777777 + 1649 031547 012 00 0 00 006101 ER12 ,6101 ;BYTE WORD FAILED + 1650 031550 312 15 0 00 000012 CAME AC+1,&17 ;TEST PNTR WORD + 1651 031551 005 15 0 00 006101 ER5 AC+1,6101 ;POINTER FAILED + 1652 031552 321 16 0 00 031542 JUMPL AC+2,G6100 ;LOOP ON ERROR SWITCH + 1653 + 1654 ;INST-ILDB + 1655 ;P FIELD=22 + 1656 ;S FIELD=6 + 1657 ;BYTE WORD=0000007700000 + 1658 ;FAILURE RESULTS IN A BYTE + 1659 ;=0 + 1660 + 1661 000013 AC=13 + 1662 SAVEAC (1,1)^ + 1663 031553 201 15 0 00 031553 MOVEI AC+2,. ;SAVE TEST PC + 1664 031554 202 15 0 00 030051 MOVEM AC+2,TESTPC + 1665 031555 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1666 031556 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1667 + 1668 031557 205 11 0 00 140600 G6200: MOVSI AC-2,140600 ;SETUP FOR COMPARISON + 1669 031560 205 14 0 00 220600 MOVSI AC+1,220600 ;SETUP PNTR WORD + 1670 031561 201 00 0 00 770000 MOVEI ,770000 ;SETUP BYTE WORD (AC0) + 1671 031562 134 13 0 00 000014 ILDB AC,&17 ;INC AND LOAD BYTE + 1672 031563 302 13 0 00 000077 CAIE AC,77 ;TEST BYTE + 1673 031564 003 13 0 00 006201 ER3 AC,6201 ;AC FAILED + 1674 031565 312 14 0 00 000011 CAME AC+1,&17 ;TEST PNTR WORD + 1675 031566 005 14 0 00 006201 ER5 AC+1,6201 ;POINTER FAILED + 1676 031567 321 15 0 00 031557 JUMPL AC+2,G6200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 23 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0055 + + 1677 + 1678 ;INST-DPB + 1679 ;TEST ABILITY TO ASSERT BYF5 SET + 1680 ;P FIELD + 1681 ;P=14 + 1682 ;S=6 + 1683 ;BYTE WORD=000000000077 + 1684 ;DEST WORD=000000000000 + 1685 + 1686 000012 AC=12 + 1687 SAVEAC (1,1)^ + 1688 031570 201 14 0 00 031570 MOVEI AC+2,. ;SAVE TEST PC + 1689 031571 202 14 0 00 030051 MOVEM AC+2,TESTPC + 1690 031572 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1691 031573 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1692 + 1693 031574 201 10 0 00 770000 G6300: MOVEI AC-2,770000 ;SETUP FOR COMPARISON + 1694 031575 205 13 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR WORD + 1695 031576 201 12 0 00 000077 MOVEI AC,77 ;SETUP BYTE + 1696 031577 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 1697 031600 137 12 0 00 000013 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 1698 031601 312 00 0 00 000010 CAME ,&17 ;TEST DEST=0,,770000 + 1699 031602 012 00 0 00 006301 ER12 ,6301 ;BYTE W0RD FAILED + 1700 031603 321 14 0 00 031574 JUMPL AC+2,G6300 ;LOOP ON ERROR SWITCH + 1701 + 1702 ;INST-DPB + 1703 ;TEST ABILITY TO ASSERT DPBYTE DEP + 1704 ;P FIELD=14 + 1705 ;S FIELD=6 + 1706 ;BYTE WORD=55 + 1707 ;DEST WORD=-1 + 1708 ;FAILURE OF MQ TO SHIFT RESULTS IN A + 1709 ;DEPOSIT BYTE=777777777700 + 1710 + 1711 000007 AC=7 + 1712 SAVEAC (1,1)^ + 1713 031604 201 11 0 00 031604 MOVEI AC+2,. ;SAVE TEST PC + 1714 031605 202 11 0 00 030051 MOVEM AC+2,TESTPC + 1715 031606 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1716 031607 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1717 + 1718 031610 561 05 0 00 557777 G6400: HRROI AC-2,557777 ;SETUP AC-2 FOR COMPARISON + 1719 031611 205 10 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR WORD + 1720 031612 201 07 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 1721 031613 474 00 0 00 000000 SETO ;SETUP DEST WORD + 1722 031614 137 07 0 00 000010 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 1723 031615 312 00 0 00 000005 CAME ,&17 ;TEST DEST=-1,,557777 + 1724 031616 012 00 0 00 006401 ER12 ,6401 ;BYTE WORD FAILED + 1725 031617 321 11 0 00 031610 JUMPL AC+2,G6400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 25 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0056 + + 1726 ;INST-DPB + 1727 ;TEST ABILITY TO AND MASK, BYTE + 1728 ;P FIELD=14 + 1729 ;S FIELD=6 + 1730 ;BYTE WORD=5555 + 1731 ;DEST WORD=0 + 1732 ;FAILURE RESULTS IN A DEPOSIT + 1733 ;BYTE=000055550000 + 1734 + 1735 000005 AC=5 + 1736 SAVEAC (1,1)^ + 1737 031620 201 07 0 00 031620 MOVEI AC+2,. ;SAVE TEST PC + 1738 031621 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1739 031622 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1740 031623 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1741 + 1742 031624 551 03 0 00 550000 G7000: HRRZI AC-2,550000 ;SETUP AC-2 FOR COMPARISON + 1743 031625 541 03 0 00 550000 HRRI AC-2,550000 ;FOR COMPARISON + 1744 031626 205 06 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR WORD + 1745 031627 201 05 0 00 005555 MOVEI AC,5555 ;SETUP BYTE WORD + 1746 031630 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 1747 031631 137 05 0 00 000006 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 1748 031632 312 00 0 00 000003 CAME ,&17 ;TEST DEST WORD=0,,550000 + 1749 031633 012 00 0 00 007001 ER12 ,7001 ;BYTE WORD FAILED + 1750 031634 321 07 0 00 031624 JUMPL AC+2,G7000 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 26 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0057 + + 1751 + 1752 ;INST-DPB + 1753 ;P FIELD = 6 + 1754 ;S FIELD = 14 + 1755 ;BYTE WORD=55 + 1756 ;DEST WORD = -1 + 1757 ;FAILURE OF ANY ONE RESULTS IN A + 1758 ;BYTE = 777777 000077 + 1759 + 1760 000014 AC=14 + 1761 SAVEAC (1,1)^ + 1762 031635 201 16 0 00 031635 MOVEI AC+2,. ;SAVE TEST PC + 1763 031636 202 16 0 00 030051 MOVEM AC+2,TESTPC + 1764 031637 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1765 031640 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1766 + 1767 031641 561 12 0 00 005577 G7100: HRROI AC-2,5577 ;SETUP FOR COMPARISON + 1768 031642 205 15 0 00 061400 MOVSI AC+1,061400 ;SETUP PNTR WORD + 1769 031643 201 14 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 1770 031644 474 00 0 00 000000 SETO ;SETUP DEST WORD + 1771 031645 137 14 0 00 000015 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 1772 031646 312 00 0 00 000012 CAME ,&17 ;TEST BYTE=777777 005577 + 1773 031647 012 00 0 00 007101 ER12 ,7101 ;BYTE WORD FAILED + 1774 031650 321 16 0 00 031641 JUMPL AC+2,G7100 ;LOOP ON ERROR SWITCH + 1775 + 1776 ;INST-DPB + 1777 ;P FIELD=14 + 1778 ;S FIELD=6 + 1779 ;BYTE WORD=55 + 1780 ;DEST WORD=0 + 1781 ;FAILURE RESULTS IN A DEPOSIT + 1782 ;BYTE=777777557777 + 1783 + 1784 000013 AC=13 + 1785 SAVEAC (1,1)^ + 1786 031651 201 15 0 00 031651 MOVEI AC+2,. ;SAVE TEST PC + 1787 031652 202 15 0 00 030051 MOVEM AC+2,TESTPC + 1788 031653 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1789 031654 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1790 + 1791 031655 551 11 0 00 550000 G7200: HRRZI AC-2,550000 ;SETUP FOR COMPARISON + 1792 031656 205 14 0 00 140600 MOVSI AC+1,140600 ;SETUP PNTR WORD + 1793 031657 201 13 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 1794 031660 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 1795 031661 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 1796 031662 312 00 0 00 000011 CAME ,&17 ;TEST DEST WORD=0,,550000 + 1797 031663 012 00 0 00 007201 ER12 ,7201 ;BYTE WORD FAILED + 1798 031664 321 15 0 00 031655 JUMPL AC+2,G7200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 27 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0058 + + 1799 ;INST-DBP + 1800 ;P FIELD=22 + 1801 ;S FIELD=6 + 1802 ;BYTE WORD=5555 + 1803 ;DEST WORD=-1 + 1804 ;FAILURE RESULTS IN A DEPOSIT + 1805 ;BYTE=005455777777 + 1806 + 1807 000011 AC=11 + 1808 SAVEAC (1,1)^ + 1809 031665 201 13 0 00 031665 MOVEI AC+2,. ;SAVE TEST PC + 1810 031666 202 13 0 00 030051 MOVEM AC+2,TESTPC + 1811 031667 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1812 031670 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1813 + 1814 031671 525 07 0 00 777755 G7400: HRLOI AC-2,777755 ;SETUP FOR COMPARISON + 1815 031672 205 12 0 00 220600 MOVSI AC+1,220600 ;SETUP PNTR WORD + 1816 031673 201 11 0 00 005555 MOVEI AC,5555 ;SETUP BYTE WORD + 1817 031674 474 00 0 00 000000 SETO ;SETUP DEST WORD + 1818 031675 137 11 0 00 000012 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 1819 031676 312 00 0 00 000007 CAME ,&17 ;TEST DEST WORD=777755,,-1 + 1820 031677 012 00 0 00 007401 ER12 ,7401 ;BYTE WORD FAILED + 1821 031700 321 13 0 00 031671 JUMPL AC+2,G7400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 28 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0059 + + 1822 ;INST-DPB + 1823 ;TEST ABILITY TO CLEAR BYF6 + 1824 ;P FIELD=14 + 1825 ;S FIELD=6 + 1826 ;BYTE WORD=55 + 1827 ;DEST WORD=0 + 1828 ;AN ERROR WILL OCCUR IF BYF6(1) WHEN + 1829 ;STORED BY JSP + 1830 + 1831 000007 AC=7 + 1832 SAVEAC (1,1)^ + 1833 031701 201 11 0 00 031701 MOVEI AC+2,. ;SAVE TEST PC + 1834 031702 202 11 0 00 030051 MOVEM AC+2,TESTPC + 1835 031703 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1836 031704 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1837 + 1838 031705 205 10 0 00 140600 G7600: MOVSI AC+1,140600 ;SETUP PNTR WORD + 1839 031706 201 07 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 1840 031707 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 1841 031710 137 07 0 00 000010 DPB AC,&17 ;DEPOSIT BYTE + 1842 031711 265 07 0 00 031712 JSP AC,.+1 ;STORE FLAGS + 1843 031712 603 07 0 00 020000 TLNE AC,020000 ;TEST BIT 4 + 1844 031713 013 07 0 00 007601 ER13 AC,7601 ;BYF6 FAILED TO CLEAR + 1845 031714 321 11 0 00 031705 JUMPL AC+2,G7600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 29 +DAKAMM MAC 20-JAN-77 11:34 PART IA - BYTE MANIPULATION SEQ 0060 + + 1846 + 1847 ;INST-IDPB + 1848 ;TEST ABILITY TO ASSERT BYTE PTRINC + 1849 ;TEST ABILITY TO ASSERT DB BYTE DEP + 1850 ;FAILURE TO ASSERT BYTE PTR INC + 1851 ;MAY CAUSE A HALT AT ET0 + 1852 ;FAILURE TO ASSERT DB BYTE DEP PREVENTS + 1853 ;ARMQSHLT SCT3 (2ND PART) + 1854 ;P FIELD=22 + 1855 ;S FIELD=6 + 1856 ;DEST WORD=0 + 1857 ;BYTE WORD=77 + 1858 ;AN ERROR WILL OCCUR IF BYTE PNTR + 1859 ;WORD EQUALS ORIGINAL + 1860 ;AN ERROR WILL OCCUR IF DEST WORD + 1861 ;EQUALS BYTE WORD + 1862 + 1863 000005 AC=5 + 1864 SAVEAC (1,1)^ + 1865 031715 201 07 0 00 031715 MOVEI AC+2,. ;SAVE TEST PC + 1866 031716 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1867 031717 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1868 031720 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1869 + 1870 031721 205 03 0 00 140600 G7700: MOVSI AC-2,140600 ;SETUP FOR COMPARISON + 1871 031722 205 06 0 00 220600 MOVSI AC+1,220600 ;SETUP PNTR WORD + 1872 031723 201 05 0 00 000077 MOVEI AC,77 ;SETUP BYTE WORD + 1873 031724 400 00 0 00 000000 SETZ ;SETUP DEST WORD (AC0) + 1874 031725 136 05 0 00 000006 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 1875 031726 312 06 0 00 000003 CAME AC+1,&17 ;TEST FOR INCREMENTED PNTR + 1876 031727 005 06 0 00 007701 ER5 AC+1,7701 ;BYTE PTR INC FAILED + 1877 031730 302 00 0 00 770000 CAIE ,770000 ;TEST DEST WORD + 1878 031731 012 00 0 00 007701 ER12 ,7701 ;DB BYTE DEP FAILED + 1879 031732 321 07 0 00 031721 JUMPL AC+2,G7700 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 30 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0061 + + 1880 SUBTTL PART IB-GENERAL BYTE TEST + 1881 + 1882 ;PART IA- GENERAL BYTE TEST + 1883 + 1884 ;INST-IBP + 1885 ;DECREASING P FIELD + 1886 ;P FIELD=22,20,16,14,12 + 1887 ;S FIELD=6 + 1888 ;RESULTANT P FIELDS=14,12,10,6,4 + 1889 ;AN ERROR WILL OCCUR ON AN + 1890 ;INCORRECT INCREMENTED PNTR WORD + 1891 + 1892 000005 AC=5 + 1893 SAVEAC (1,1)^ + 1894 031733 201 07 0 00 031733 MOVEI AC+2,. ;SAVE TEST PC + 1895 031734 202 07 0 00 030051 MOVEM AC+2,TESTPC + 1896 031735 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1897 031736 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1898 + 1899 010000 SN=10000 + 1900 160600 XX=160600 + 1901 240600 ZZ=240600 + 1902 + 1903 ;TEST IBP + 1904 G10000: REPEAT ^D5,< + 1905 SN=SN+1 + 1906 XX=XX-020000 + 1907 ZZ=ZZ-020000 + 1908 MOVSI AC-2,XX ;SETUP FOR COMPARISON + 1909 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1910 IBP ,&17 ;INC BYTE PNTR + 1911 CAME AC+1,&17 ;TEST INC PNTR + 1912 ER5 AC+1,SN ;IBP FAILED + 1913 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1914 > + 1915 + 1916 010001 SN=SN+1 + 1917 140600 XX=XX-020000 + 1918 220600 ZZ=ZZ-020000 + 1919 031737 205 03 0 00 140600 MOVSI AC-2,XX ;SETUP FOR COMPARISON + 1920 031740 205 06 0 00 220600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1921 031741 133 00 0 00 000006 IBP ,&17 ;INC BYTE PNTR + 1922 031742 312 06 0 00 000003 CAME AC+1,&17 ;TEST INC PNTR + 1923 031743 005 06 0 00 010001 ER5 AC+1,SN ;IBP FAILED + 1924 031744 321 07 0 00 031737 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1925 + 1926 + 1927 010002 SN=SN+1 + 1928 120600 XX=XX-020000 + 1929 200600 ZZ=ZZ-020000 + 1930 031745 205 03 0 00 120600 MOVSI AC-2,XX ;SETUP FOR COMPARISON + 1931 031746 205 06 0 00 200600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1932 031747 133 00 0 00 000006 IBP ,&17 ;INC BYTE PNTR + 1933 031750 312 06 0 00 000003 CAME AC+1,&17 ;TEST INC PNTR + 1934 031751 005 06 0 00 010002 ER5 AC+1,SN ;IBP FAILED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 30-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0062 + + 1935 031752 321 07 0 00 031745 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1936 + 1937 + 1938 010003 SN=SN+1 + 1939 100600 XX=XX-020000 + 1940 160600 ZZ=ZZ-020000 + 1941 031753 205 03 0 00 100600 MOVSI AC-2,XX ;SETUP FOR COMPARISON + 1942 031754 205 06 0 00 160600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1943 031755 133 00 0 00 000006 IBP ,&17 ;INC BYTE PNTR + 1944 031756 312 06 0 00 000003 CAME AC+1,&17 ;TEST INC PNTR + 1945 031757 005 06 0 00 010003 ER5 AC+1,SN ;IBP FAILED + 1946 031760 321 07 0 00 031753 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1947 + 1948 + 1949 010004 SN=SN+1 + 1950 060600 XX=XX-020000 + 1951 140600 ZZ=ZZ-020000 + 1952 031761 205 03 0 00 060600 MOVSI AC-2,XX ;SETUP FOR COMPARISON + 1953 031762 205 06 0 00 140600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1954 031763 133 00 0 00 000006 IBP ,&17 ;INC BYTE PNTR + 1955 031764 312 06 0 00 000003 CAME AC+1,&17 ;TEST INC PNTR + 1956 031765 005 06 0 00 010004 ER5 AC+1,SN ;IBP FAILED + 1957 031766 321 07 0 00 031761 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1958 + 1959 + 1960 010005 SN=SN+1 + 1961 040600 XX=XX-020000 + 1962 120600 ZZ=ZZ-020000 + 1963 031767 205 03 0 00 040600 MOVSI AC-2,XX ;SETUP FOR COMPARISON + 1964 031770 205 06 0 00 120600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1965 031771 133 00 0 00 000006 IBP ,&17 ;INC BYTE PNTR + 1966 031772 312 06 0 00 000003 CAME AC+1,&17 ;TEST INC PNTR + 1967 031773 005 06 0 00 010005 ER5 AC+1,SN ;IBP FAILED + 1968 031774 321 07 0 00 031767 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1969 + 1970 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 30-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0063 + + 1971 ;INST-IBP + 1972 ;DECREASING S FIELD + 1973 ;P FIELD=22 + 1974 ;S FIELD=14,12,10,6,4 + 1975 ;RESULTANT P FIELDS=6,10,12,14,16 + 1976 ;AN ERROR WILL OCCUR ON AN + 1977 ;INCORRECT INCREMENTED PNTR WORD + 1978 + 1979 000014 AC=14 + 1980 SAVEAC (1,1)^ + 1981 031775 201 16 0 00 031775 MOVEI AC+2,. ;SAVE TEST PC + 1982 031776 202 16 0 00 030051 MOVEM AC+2,TESTPC + 1983 031777 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1984 032000 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1985 + 1986 010100 SN=10100 + 1987 040000 XX=040000 + 1988 001600 WW=001600 + 1989 221600 ZZ=221600 + 1990 + 1991 ;TEST IBP + 1992 G10100: REPEAT ^D5,< + 1993 SN=SN+1 + 1994 XX=XX+020000 + 1995 WW=WW-000200 + 1996 ZZ=ZZ-000200 + 1997 MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + 1998 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 1999 IBP ,&17 ;INC BYTE PNTR + 2000 CAME AC+1,&17 ;TEST INC PNTR + 2001 ER5 AC+1,SN ;IBP FAILED + 2002 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2003 > + 2004 + 2005 010101 SN=SN+1 + 2006 060000 XX=XX+020000 + 2007 001400 WW=WW-000200 + 2008 221400 ZZ=ZZ-000200 + 2009 032001 205 12 0 00 061400 MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + 2010 032002 205 15 0 00 221400 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2011 032003 133 00 0 00 000015 IBP ,&17 ;INC BYTE PNTR + 2012 032004 312 15 0 00 000012 CAME AC+1,&17 ;TEST INC PNTR + 2013 032005 005 15 0 00 010101 ER5 AC+1,SN ;IBP FAILED + 2014 032006 321 16 0 00 032001 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2015 + 2016 + 2017 010102 SN=SN+1 + 2018 100000 XX=XX+020000 + 2019 001200 WW=WW-000200 + 2020 221200 ZZ=ZZ-000200 + 2021 032007 205 12 0 00 101200 MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + 2022 032010 205 15 0 00 221200 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2023 032011 133 00 0 00 000015 IBP ,&17 ;INC BYTE PNTR + 2024 032012 312 15 0 00 000012 CAME AC+1,&17 ;TEST INC PNTR + 2025 032013 005 15 0 00 010102 ER5 AC+1,SN ;IBP FAILED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 30-3 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0064 + + 2026 032014 321 16 0 00 032007 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2027 + 2028 + 2029 010103 SN=SN+1 + 2030 120000 XX=XX+020000 + 2031 001000 WW=WW-000200 + 2032 221000 ZZ=ZZ-000200 + 2033 032015 205 12 0 00 121000 MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + 2034 032016 205 15 0 00 221000 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2035 032017 133 00 0 00 000015 IBP ,&17 ;INC BYTE PNTR + 2036 032020 312 15 0 00 000012 CAME AC+1,&17 ;TEST INC PNTR + 2037 032021 005 15 0 00 010103 ER5 AC+1,SN ;IBP FAILED + 2038 032022 321 16 0 00 032015 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2039 + 2040 + 2041 010104 SN=SN+1 + 2042 140000 XX=XX+020000 + 2043 000600 WW=WW-000200 + 2044 220600 ZZ=ZZ-000200 + 2045 032023 205 12 0 00 140600 MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + 2046 032024 205 15 0 00 220600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2047 032025 133 00 0 00 000015 IBP ,&17 ;INC BYTE PNTR + 2048 032026 312 15 0 00 000012 CAME AC+1,&17 ;TEST INC PNTR + 2049 032027 005 15 0 00 010104 ER5 AC+1,SN ;IBP FAILED + 2050 032030 321 16 0 00 032023 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2051 + 2052 + 2053 010105 SN=SN+1 + 2054 160000 XX=XX+020000 + 2055 000400 WW=WW-000200 + 2056 220400 ZZ=ZZ-000200 + 2057 032031 205 12 0 00 160400 MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + 2058 032032 205 15 0 00 220400 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2059 032033 133 00 0 00 000015 IBP ,&17 ;INC BYTE PNTR + 2060 032034 312 15 0 00 000012 CAME AC+1,&17 ;TEST INC PNTR + 2061 032035 005 15 0 00 010105 ER5 AC+1,SN ;IBP FAILED + 2062 032036 321 16 0 00 032031 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2063 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 31 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0065 + + 2064 + 2065 ;INST-IBP + 2066 ;OVERFLOW AND INC ADDRESS + 2067 ;P FIELD=0 + 2068 ;S FIELD=14,12,10,6,4 + 2069 ;RESULTANT P FIELDS=30,32,34,36,40 + 2070 ;ADDRESS FIELD INCREMENTED BY ONE + 2071 ;AN ERROR WILL OCCUR ON AN INCORRECT + 2072 ;INCREMENTED PNTR WORD + 2073 + 2074 000013 AC=13 + 2075 SAVEAC (1,1)^ + 2076 032037 201 15 0 00 032037 MOVEI AC+2,. ;SAVE TEST PC + 2077 032040 202 15 0 00 030051 MOVEM AC+2,TESTPC + 2078 032041 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2079 032042 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2080 + 2081 010200 SN=10200 + 2082 260000 XX=260000 + 2083 001600 ZZ=001600 + 2084 + 2085 ;TEST IBP + 2086 G10200: REPEAT ^D5,< + 2087 SN=SN+1 + 2088 XX=XX+020000 + 2089 ZZ=ZZ-000200 + 2090 MOVSI AC-2,XX+ZZ ;SETUP AC-2 + 2091 AOJ AC-2, ;FOR COMPARISON + 2092 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2093 IBP ,&17 ;INC BYTE PNTR + 2094 CAME AC+1,&17 ;TEST INC PNTR + 2095 ER5 AC+1,SN ;IBP FAILED + 2096 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2097 > + 2098 + 2099 010201 SN=SN+1 + 2100 300000 XX=XX+020000 + 2101 001400 ZZ=ZZ-000200 + 2102 032043 205 11 0 00 301400 MOVSI AC-2,XX+ZZ ;SETUP AC-2 + 2103 032044 340 11 0 00 000000 AOJ AC-2, ;FOR COMPARISON + 2104 032045 205 14 0 00 001400 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2105 032046 133 00 0 00 000014 IBP ,&17 ;INC BYTE PNTR + 2106 032047 312 14 0 00 000011 CAME AC+1,&17 ;TEST INC PNTR + 2107 032050 005 14 0 00 010201 ER5 AC+1,SN ;IBP FAILED + 2108 032051 321 15 0 00 032043 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2109 + 2110 + 2111 010202 SN=SN+1 + 2112 320000 XX=XX+020000 + 2113 001200 ZZ=ZZ-000200 + 2114 032052 205 11 0 00 321200 MOVSI AC-2,XX+ZZ ;SETUP AC-2 + 2115 032053 340 11 0 00 000000 AOJ AC-2, ;FOR COMPARISON + 2116 032054 205 14 0 00 001200 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2117 032055 133 00 0 00 000014 IBP ,&17 ;INC BYTE PNTR + 2118 032056 312 14 0 00 000011 CAME AC+1,&17 ;TEST INC PNTR +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 31-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0066 + + 2119 032057 005 14 0 00 010202 ER5 AC+1,SN ;IBP FAILED + 2120 032060 321 15 0 00 032052 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2121 + 2122 + 2123 010203 SN=SN+1 + 2124 340000 XX=XX+020000 + 2125 001000 ZZ=ZZ-000200 + 2126 032061 205 11 0 00 341000 MOVSI AC-2,XX+ZZ ;SETUP AC-2 + 2127 032062 340 11 0 00 000000 AOJ AC-2, ;FOR COMPARISON + 2128 032063 205 14 0 00 001000 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2129 032064 133 00 0 00 000014 IBP ,&17 ;INC BYTE PNTR + 2130 032065 312 14 0 00 000011 CAME AC+1,&17 ;TEST INC PNTR + 2131 032066 005 14 0 00 010203 ER5 AC+1,SN ;IBP FAILED + 2132 032067 321 15 0 00 032061 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2133 + 2134 + 2135 010204 SN=SN+1 + 2136 360000 XX=XX+020000 + 2137 000600 ZZ=ZZ-000200 + 2138 032070 205 11 0 00 360600 MOVSI AC-2,XX+ZZ ;SETUP AC-2 + 2139 032071 340 11 0 00 000000 AOJ AC-2, ;FOR COMPARISON + 2140 032072 205 14 0 00 000600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2141 032073 133 00 0 00 000014 IBP ,&17 ;INC BYTE PNTR + 2142 032074 312 14 0 00 000011 CAME AC+1,&17 ;TEST INC PNTR + 2143 032075 005 14 0 00 010204 ER5 AC+1,SN ;IBP FAILED + 2144 032076 321 15 0 00 032070 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2145 + 2146 + 2147 010205 SN=SN+1 + 2148 400000 XX=XX+020000 + 2149 000400 ZZ=ZZ-000200 + 2150 032077 205 11 0 00 400400 MOVSI AC-2,XX+ZZ ;SETUP AC-2 + 2151 032100 340 11 0 00 000000 AOJ AC-2, ;FOR COMPARISON + 2152 032101 205 14 0 00 000400 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2153 032102 133 00 0 00 000014 IBP ,&17 ;INC BYTE PNTR + 2154 032103 312 14 0 00 000011 CAME AC+1,&17 ;TEST INC PNTR + 2155 032104 005 14 0 00 010205 ER5 AC+1,SN ;IBP FAILED + 2156 032105 321 15 0 00 032077 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2157 + 2158 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 31-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0067 + + 2159 ;INST-LDB + 2160 ;INCREASING S FIELD + 2161 ;P FIELD=22 + 2162 ;S FIELD=1,2,3,4,5 + 2163 ;BYTE WORD=777777000000 + 2164 ;AN ERROR WILL OCCUR IF AN + 2165 ;IN CORRECT BYTE IS LOADED + 2166 ;INTO AC + 2167 + 2168 000012 AC=12 + 2169 SAVEAC (1,1)^ + 2170 032106 201 14 0 00 032106 MOVEI AC+2,. ;SAVE TEST PC + 2171 032107 202 14 0 00 030051 MOVEM AC+2,TESTPC + 2172 032110 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2173 032111 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2174 + 2175 010300 SN=10300 + 2176 220000 XX=220000 + 2177 000000 ZZ=0 + 2178 + 2179 ;TEST LDB + 2180 G10300: REPEAT ^D5,< + 2181 SN=SN+1 + 2182 XX=XX+000100 + 2183 ZZ=ZZ*2+1 + 2184 MOVSI AC+1,XX ;SETUP PNTR WORD + 2185 HRLZI ,-1 ;SETUP BYTE WORD (AC0) + 2186 LDB AC,&17 ;LOAD BYTE + 2187 CAIE AC,ZZ ;TEST DEST AC + 2188 ER3 AC,SN ;LDB FAILED + 2189 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2190 > + 2191 + 2192 010301 SN=SN+1 + 2193 220100 XX=XX+000100 + 2194 000001 ZZ=ZZ*2+1 + 2195 032112 205 13 0 00 220100 MOVSI AC+1,XX ;SETUP PNTR WORD + 2196 032113 515 00 0 00 777777 HRLZI ,-1 ;SETUP BYTE WORD (AC0) + 2197 032114 135 12 0 00 000013 LDB AC,&17 ;LOAD BYTE + 2198 032115 302 12 0 00 000001 CAIE AC,ZZ ;TEST DEST AC + 2199 032116 003 12 0 00 010301 ER3 AC,SN ;LDB FAILED + 2200 032117 321 14 0 00 032112 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2201 + 2202 + 2203 010302 SN=SN+1 + 2204 220200 XX=XX+000100 + 2205 000003 ZZ=ZZ*2+1 + 2206 032120 205 13 0 00 220200 MOVSI AC+1,XX ;SETUP PNTR WORD + 2207 032121 515 00 0 00 777777 HRLZI ,-1 ;SETUP BYTE WORD (AC0) + 2208 032122 135 12 0 00 000013 LDB AC,&17 ;LOAD BYTE + 2209 032123 302 12 0 00 000003 CAIE AC,ZZ ;TEST DEST AC + 2210 032124 003 12 0 00 010302 ER3 AC,SN ;LDB FAILED + 2211 032125 321 14 0 00 032120 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2212 + 2213 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 31-3 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0068 + + 2214 010303 SN=SN+1 + 2215 220300 XX=XX+000100 + 2216 000007 ZZ=ZZ*2+1 + 2217 032126 205 13 0 00 220300 MOVSI AC+1,XX ;SETUP PNTR WORD + 2218 032127 515 00 0 00 777777 HRLZI ,-1 ;SETUP BYTE WORD (AC0) + 2219 032130 135 12 0 00 000013 LDB AC,&17 ;LOAD BYTE + 2220 032131 302 12 0 00 000007 CAIE AC,ZZ ;TEST DEST AC + 2221 032132 003 12 0 00 010303 ER3 AC,SN ;LDB FAILED + 2222 032133 321 14 0 00 032126 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2223 + 2224 + 2225 010304 SN=SN+1 + 2226 220400 XX=XX+000100 + 2227 000017 ZZ=ZZ*2+1 + 2228 032134 205 13 0 00 220400 MOVSI AC+1,XX ;SETUP PNTR WORD + 2229 032135 515 00 0 00 777777 HRLZI ,-1 ;SETUP BYTE WORD (AC0) + 2230 032136 135 12 0 00 000013 LDB AC,&17 ;LOAD BYTE + 2231 032137 302 12 0 00 000017 CAIE AC,ZZ ;TEST DEST AC + 2232 032140 003 12 0 00 010304 ER3 AC,SN ;LDB FAILED + 2233 032141 321 14 0 00 032134 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2234 + 2235 + 2236 010305 SN=SN+1 + 2237 220500 XX=XX+000100 + 2238 000037 ZZ=ZZ*2+1 + 2239 032142 205 13 0 00 220500 MOVSI AC+1,XX ;SETUP PNTR WORD + 2240 032143 515 00 0 00 777777 HRLZI ,-1 ;SETUP BYTE WORD (AC0) + 2241 032144 135 12 0 00 000013 LDB AC,&17 ;LOAD BYTE + 2242 032145 302 12 0 00 000037 CAIE AC,ZZ ;TEST DEST AC + 2243 032146 003 12 0 00 010305 ER3 AC,SN ;LDB FAILED + 2244 032147 321 14 0 00 032142 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2245 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 32 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0069 + + 2246 + 2247 ;INST-LDB + 2248 ;INCREASING BYTE WORD + 2249 ;INCREASING P FIELD + 2250 ;P FIELD=14,17,22,25,33 + 2251 ;S FIELD=3 + 2252 ;BYTE WORD=000000070000 SHIFTING + 2253 ;LEFT BY 3 + 2254 ;AN ERROR WILL OCCUR IF DEST AC + 2255 ;DIFFERS FROM 7 + 2256 + 2257 000011 AC=11 + 2258 SAVEAC (1,1)^ + 2259 032150 201 13 0 00 032150 MOVEI AC+2,. ;SAVE TEST PC + 2260 032151 202 13 0 00 030051 MOVEM AC+2,TESTPC + 2261 032152 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2262 032153 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2263 + 2264 010400 SN=10400 + 2265 000000 XX=0 + 2266 110300 ZZ=110300 + 2267 + 2268 ;TEST LDB + 2269 G10400: REPEAT ^D5,< + 2270 SN=SN+1 + 2271 XX=XX+3 + 2272 ZZ=ZZ+030000 + 2273 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2274 MOVEI ,7000 ;SETUP BYTE WORD + 2275 ROT ,XX ;ROTATE LEFT BY 3 + 2276 LDB AC,&17 ;LOAD BYTE + 2277 CAIE AC,7 ;TEST DEST AC=7 + 2278 ER3 AC,SN ;LDB FAILED + 2279 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2280 > + 2281 + 2282 010401 SN=SN+1 + 2283 000003 XX=XX+3 + 2284 140300 ZZ=ZZ+030000 + 2285 032154 205 12 0 00 140300 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2286 032155 201 00 0 00 007000 MOVEI ,7000 ;SETUP BYTE WORD + 2287 032156 241 00 0 00 000003 ROT ,XX ;ROTATE LEFT BY 3 + 2288 032157 135 11 0 00 000012 LDB AC,&17 ;LOAD BYTE + 2289 032160 302 11 0 00 000007 CAIE AC,7 ;TEST DEST AC=7 + 2290 032161 003 11 0 00 010401 ER3 AC,SN ;LDB FAILED + 2291 032162 321 13 0 00 032154 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2292 + 2293 + 2294 010402 SN=SN+1 + 2295 000006 XX=XX+3 + 2296 170300 ZZ=ZZ+030000 + 2297 032163 205 12 0 00 170300 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2298 032164 201 00 0 00 007000 MOVEI ,7000 ;SETUP BYTE WORD + 2299 032165 241 00 0 00 000006 ROT ,XX ;ROTATE LEFT BY 3 + 2300 032166 135 11 0 00 000012 LDB AC,&17 ;LOAD BYTE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 32-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0070 + + 2301 032167 302 11 0 00 000007 CAIE AC,7 ;TEST DEST AC=7 + 2302 032170 003 11 0 00 010402 ER3 AC,SN ;LDB FAILED + 2303 032171 321 13 0 00 032163 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2304 + 2305 + 2306 010403 SN=SN+1 + 2307 000011 XX=XX+3 + 2308 220300 ZZ=ZZ+030000 + 2309 032172 205 12 0 00 220300 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2310 032173 201 00 0 00 007000 MOVEI ,7000 ;SETUP BYTE WORD + 2311 032174 241 00 0 00 000011 ROT ,XX ;ROTATE LEFT BY 3 + 2312 032175 135 11 0 00 000012 LDB AC,&17 ;LOAD BYTE + 2313 032176 302 11 0 00 000007 CAIE AC,7 ;TEST DEST AC=7 + 2314 032177 003 11 0 00 010403 ER3 AC,SN ;LDB FAILED + 2315 032200 321 13 0 00 032172 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2316 + 2317 + 2318 010404 SN=SN+1 + 2319 000014 XX=XX+3 + 2320 250300 ZZ=ZZ+030000 + 2321 032201 205 12 0 00 250300 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2322 032202 201 00 0 00 007000 MOVEI ,7000 ;SETUP BYTE WORD + 2323 032203 241 00 0 00 000014 ROT ,XX ;ROTATE LEFT BY 3 + 2324 032204 135 11 0 00 000012 LDB AC,&17 ;LOAD BYTE + 2325 032205 302 11 0 00 000007 CAIE AC,7 ;TEST DEST AC=7 + 2326 032206 003 11 0 00 010404 ER3 AC,SN ;LDB FAILED + 2327 032207 321 13 0 00 032201 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2328 + 2329 + 2330 010405 SN=SN+1 + 2331 000017 XX=XX+3 + 2332 300300 ZZ=ZZ+030000 + 2333 032210 205 12 0 00 300300 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 2334 032211 201 00 0 00 007000 MOVEI ,7000 ;SETUP BYTE WORD + 2335 032212 241 00 0 00 000017 ROT ,XX ;ROTATE LEFT BY 3 + 2336 032213 135 11 0 00 000012 LDB AC,&17 ;LOAD BYTE + 2337 032214 302 11 0 00 000007 CAIE AC,7 ;TEST DEST AC=7 + 2338 032215 003 11 0 00 010405 ER3 AC,SN ;LDB FAILED + 2339 032216 321 13 0 00 032210 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2340 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 33 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0071 + + 2341 + 2342 ;INST-LDB + 2343 ;VARY BYTE ADDRESS + 2344 ;P FIELD=22 + 2345 ;S FIELD=3 + 2346 ;BYTE WORD=AC NUMBER + 2347 ;BYTE PNTR ADDR=AC 6,5,4,3,2 + 2348 ;AN ERROR WILL OCCUR IF C(DEST AC) + 2349 ;DIFFERS FROM AC UNDER TEST + 2350 + 2351 000007 AC=7 + 2352 SAVEAC (1,1)^ + 2353 032217 201 11 0 00 032217 MOVEI AC+2,. ;SAVE TEST PC + 2354 032220 202 11 0 00 030051 MOVEM AC+2,TESTPC + 2355 032221 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2356 032222 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2357 + 2358 010500 SN=10500 + 2359 000007 ZZ=7 + 2360 + 2361 ;TEST LOAD BYTE + 2362 G10500: REPEAT ^D5,< + 2363 SN=SN+1 + 2364 ZZ=ZZ-1 + 2365 HRLI AC+1,220300 ;SETUP BYTE + 2366 HRRI AC+1,ZZ ;PNTR WORD + 2367 MOVSI ZZ,ZZ ;SETUP BYTE WORD + 2368 LDB AC,&17 ;LOAD BYTE + 2369 CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + 2370 ER3 AC,SN ;LDB FAILED + 2371 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2372 > + 2373 + 2374 010501 SN=SN+1 + 2375 000006 ZZ=ZZ-1 + 2376 032223 505 10 0 00 220300 HRLI AC+1,220300 ;SETUP BYTE + 2377 032224 541 10 0 00 000006 HRRI AC+1,ZZ ;PNTR WORD + 2378 032225 205 06 0 00 000006 MOVSI ZZ,ZZ ;SETUP BYTE WORD + 2379 032226 135 07 0 00 000010 LDB AC,&17 ;LOAD BYTE + 2380 032227 302 07 0 00 000006 CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + 2381 032230 003 07 0 00 010501 ER3 AC,SN ;LDB FAILED + 2382 032231 321 11 0 00 032223 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2383 + 2384 + 2385 010502 SN=SN+1 + 2386 000005 ZZ=ZZ-1 + 2387 032232 505 10 0 00 220300 HRLI AC+1,220300 ;SETUP BYTE + 2388 032233 541 10 0 00 000005 HRRI AC+1,ZZ ;PNTR WORD + 2389 032234 205 05 0 00 000005 MOVSI ZZ,ZZ ;SETUP BYTE WORD + 2390 032235 135 07 0 00 000010 LDB AC,&17 ;LOAD BYTE + 2391 032236 302 07 0 00 000005 CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + 2392 032237 003 07 0 00 010502 ER3 AC,SN ;LDB FAILED + 2393 032240 321 11 0 00 032232 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2394 + 2395 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 33-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0072 + + 2396 010503 SN=SN+1 + 2397 000004 ZZ=ZZ-1 + 2398 032241 505 10 0 00 220300 HRLI AC+1,220300 ;SETUP BYTE + 2399 032242 541 10 0 00 000004 HRRI AC+1,ZZ ;PNTR WORD + 2400 032243 205 04 0 00 000004 MOVSI ZZ,ZZ ;SETUP BYTE WORD + 2401 032244 135 07 0 00 000010 LDB AC,&17 ;LOAD BYTE + 2402 032245 302 07 0 00 000004 CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + 2403 032246 003 07 0 00 010503 ER3 AC,SN ;LDB FAILED + 2404 032247 321 11 0 00 032241 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2405 + 2406 + 2407 010504 SN=SN+1 + 2408 000003 ZZ=ZZ-1 + 2409 032250 505 10 0 00 220300 HRLI AC+1,220300 ;SETUP BYTE + 2410 032251 541 10 0 00 000003 HRRI AC+1,ZZ ;PNTR WORD + 2411 032252 205 03 0 00 000003 MOVSI ZZ,ZZ ;SETUP BYTE WORD + 2412 032253 135 07 0 00 000010 LDB AC,&17 ;LOAD BYTE + 2413 032254 302 07 0 00 000003 CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + 2414 032255 003 07 0 00 010504 ER3 AC,SN ;LDB FAILED + 2415 032256 321 11 0 00 032250 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2416 + 2417 + 2418 010505 SN=SN+1 + 2419 000002 ZZ=ZZ-1 + 2420 032257 505 10 0 00 220300 HRLI AC+1,220300 ;SETUP BYTE + 2421 032260 541 10 0 00 000002 HRRI AC+1,ZZ ;PNTR WORD + 2422 032261 205 02 0 00 000002 MOVSI ZZ,ZZ ;SETUP BYTE WORD + 2423 032262 135 07 0 00 000010 LDB AC,&17 ;LOAD BYTE + 2424 032263 302 07 0 00 000002 CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + 2425 032264 003 07 0 00 010505 ER3 AC,SN ;LDB FAILED + 2426 032265 321 11 0 00 032257 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2427 + 2428 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 33-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0073 + + 2429 ;INST-LDB + 2430 ;BYTE PNTR INDEXED + 2431 ;P FIELD=0 + 2432 ;S FIELD=3 + 2433 ;BYTE WORD=PNTR WORD + 2434 ;AN ERROR WILL OCCUR IF LOADED + 2435 ;BYTE DIFFERS FROM CURRENT + 2436 ;AC NUMBER + 2437 + 2438 000010 AC=10 + 2439 SAVEAC (1,1)^ + 2440 032266 201 12 0 00 032266 MOVEI AC+2,. ;SAVE TEST PC + 2441 032267 202 12 0 00 030051 MOVEM AC+2,TESTPC + 2442 032270 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2443 032271 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2444 + 2445 010600 SN=10600 + 2446 000000 ZZ=0 + 2447 + 2448 ;TEST LDB INDEXED + 2449 G10600: REPEAT ^D5,< + 2450 SN=SN+1 + 2451 ZZ=ZZ+1 + 2452 MOVSI ,000300 ;SETUP NON IND PNTR WORD + 2453 HRLI ZZ,000300 ;SETUP INDEXED + 2454 HRRI ZZ,ZZ ;PNTR WORD + 2455 LDB AC,(ZZ) ;LOAD BYTE INDEXED + 2456 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2457 ER3 AC,SN ;LDB FAILED + 2458 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2459 > + 2460 + 2461 010601 SN=SN+1 + 2462 000001 ZZ=ZZ+1 + 2463 032272 205 00 0 00 000300 MOVSI ,000300 ;SETUP NON IND PNTR WORD + 2464 032273 505 01 0 00 000300 HRLI ZZ,000300 ;SETUP INDEXED + 2465 032274 541 01 0 00 000001 HRRI ZZ,ZZ ;PNTR WORD + 2466 032275 135 10 0 01 000000 LDB AC,(ZZ) ;LOAD BYTE INDEXED + 2467 032276 302 10 0 00 000001 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2468 032277 003 10 0 00 010601 ER3 AC,SN ;LDB FAILED + 2469 032300 321 12 0 00 032272 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2470 + 2471 + 2472 010602 SN=SN+1 + 2473 000002 ZZ=ZZ+1 + 2474 032301 205 00 0 00 000300 MOVSI ,000300 ;SETUP NON IND PNTR WORD + 2475 032302 505 02 0 00 000300 HRLI ZZ,000300 ;SETUP INDEXED + 2476 032303 541 02 0 00 000002 HRRI ZZ,ZZ ;PNTR WORD + 2477 032304 135 10 0 02 000000 LDB AC,(ZZ) ;LOAD BYTE INDEXED + 2478 032305 302 10 0 00 000002 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2479 032306 003 10 0 00 010602 ER3 AC,SN ;LDB FAILED + 2480 032307 321 12 0 00 032301 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2481 + 2482 + 2483 010603 SN=SN+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 33-3 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0074 + + 2484 000003 ZZ=ZZ+1 + 2485 032310 205 00 0 00 000300 MOVSI ,000300 ;SETUP NON IND PNTR WORD + 2486 032311 505 03 0 00 000300 HRLI ZZ,000300 ;SETUP INDEXED + 2487 032312 541 03 0 00 000003 HRRI ZZ,ZZ ;PNTR WORD + 2488 032313 135 10 0 03 000000 LDB AC,(ZZ) ;LOAD BYTE INDEXED + 2489 032314 302 10 0 00 000003 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2490 032315 003 10 0 00 010603 ER3 AC,SN ;LDB FAILED + 2491 032316 321 12 0 00 032310 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2492 + 2493 + 2494 010604 SN=SN+1 + 2495 000004 ZZ=ZZ+1 + 2496 032317 205 00 0 00 000300 MOVSI ,000300 ;SETUP NON IND PNTR WORD + 2497 032320 505 04 0 00 000300 HRLI ZZ,000300 ;SETUP INDEXED + 2498 032321 541 04 0 00 000004 HRRI ZZ,ZZ ;PNTR WORD + 2499 032322 135 10 0 04 000000 LDB AC,(ZZ) ;LOAD BYTE INDEXED + 2500 032323 302 10 0 00 000004 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2501 032324 003 10 0 00 010604 ER3 AC,SN ;LDB FAILED + 2502 032325 321 12 0 00 032317 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2503 + 2504 + 2505 010605 SN=SN+1 + 2506 000005 ZZ=ZZ+1 + 2507 032326 205 00 0 00 000300 MOVSI ,000300 ;SETUP NON IND PNTR WORD + 2508 032327 505 05 0 00 000300 HRLI ZZ,000300 ;SETUP INDEXED + 2509 032330 541 05 0 00 000005 HRRI ZZ,ZZ ;PNTR WORD + 2510 032331 135 10 0 05 000000 LDB AC,(ZZ) ;LOAD BYTE INDEXED + 2511 032332 302 10 0 00 000005 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2512 032333 003 10 0 00 010605 ER3 AC,SN ;LDB FAILED + 2513 032334 321 12 0 00 032326 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2514 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 34 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0075 + + 2515 + 2516 ;INST-LDB + 2517 ;BYTE PNTR INDIRECTLY ADDRESSED + 2518 ;P FIELD=0 + 2519 ;S FIELD=3 + 2520 ;BYTE WORD=PNTR WORD + 2521 ;AN ERROR WILL OCCUR IF LOADED + 2522 ;BYTE DIFFERS FROM CURRENT + 2523 ;AC NUMBER + 2524 + 2525 000007 AC=7 + 2526 SAVEAC (1,1)^ + 2527 032335 201 11 0 00 032335 MOVEI AC+2,. ;SAVE TEST PC + 2528 032336 202 11 0 00 030051 MOVEM AC+2,TESTPC + 2529 032337 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2530 032340 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2531 + 2532 010700 SN=10700 + 2533 000000 ZZ=0 + 2534 + 2535 ;TEST LDB INDIRECTLY ADDRESSED + 2536 G10700: REPEAT ^D5,< + 2537 SN=SN+1 + 2538 ZZ=ZZ+1 + 2539 MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + 2540 HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + 2541 HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + 2542 HRRI ZZ,ZZ ;PNTR WORD + 2543 SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + 2544 LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + 2545 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2546 ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + 2547 JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH + 2548 > + 2549 + 2550 010701 SN=SN+1 + 2551 000001 ZZ=ZZ+1 + 2552 032341 205 10 0 00 440300 MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + 2553 032342 541 10 0 00 000001 HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + 2554 032343 505 01 0 00 000300 HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + 2555 032344 541 01 0 00 000001 HRRI ZZ,ZZ ;PNTR WORD + 2556 032345 400 00 0 00 000000 SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + 2557 032346 135 07 1 00 000010 LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + 2558 032347 302 07 0 00 000001 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2559 032350 003 07 0 00 010701 ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + 2560 032351 321 11 0 00 032341 JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH + 2561 + 2562 + 2563 010702 SN=SN+1 + 2564 000002 ZZ=ZZ+1 + 2565 032352 205 10 0 00 440300 MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + 2566 032353 541 10 0 00 000002 HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + 2567 032354 505 02 0 00 000300 HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + 2568 032355 541 02 0 00 000002 HRRI ZZ,ZZ ;PNTR WORD + 2569 032356 400 00 0 00 000000 SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 34-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0076 + + 2570 032357 135 07 1 00 000010 LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + 2571 032360 302 07 0 00 000002 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2572 032361 003 07 0 00 010702 ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + 2573 032362 321 11 0 00 032352 JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH + 2574 + 2575 + 2576 010703 SN=SN+1 + 2577 000003 ZZ=ZZ+1 + 2578 032363 205 10 0 00 440300 MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + 2579 032364 541 10 0 00 000003 HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + 2580 032365 505 03 0 00 000300 HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + 2581 032366 541 03 0 00 000003 HRRI ZZ,ZZ ;PNTR WORD + 2582 032367 400 00 0 00 000000 SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + 2583 032370 135 07 1 00 000010 LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + 2584 032371 302 07 0 00 000003 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2585 032372 003 07 0 00 010703 ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + 2586 032373 321 11 0 00 032363 JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH + 2587 + 2588 + 2589 010704 SN=SN+1 + 2590 000004 ZZ=ZZ+1 + 2591 032374 205 10 0 00 440300 MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + 2592 032375 541 10 0 00 000004 HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + 2593 032376 505 04 0 00 000300 HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + 2594 032377 541 04 0 00 000004 HRRI ZZ,ZZ ;PNTR WORD + 2595 032400 400 00 0 00 000000 SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + 2596 032401 135 07 1 00 000010 LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + 2597 032402 302 07 0 00 000004 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2598 032403 003 07 0 00 010704 ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + 2599 032404 321 11 0 00 032374 JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH + 2600 + 2601 + 2602 010705 SN=SN+1 + 2603 000005 ZZ=ZZ+1 + 2604 032405 205 10 0 00 440300 MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + 2605 032406 541 10 0 00 000005 HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + 2606 032407 505 05 0 00 000300 HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + 2607 032410 541 05 0 00 000005 HRRI ZZ,ZZ ;PNTR WORD + 2608 032411 400 00 0 00 000000 SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + 2609 032412 135 07 1 00 000010 LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + 2610 032413 302 07 0 00 000005 CAIE AC,ZZ ;TEST FOR AC NUMBER + 2611 032414 003 07 0 00 010705 ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + 2612 032415 321 11 0 00 032405 JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH + 2613 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 35 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0077 + + 2614 ;INST-LDB + 2615 ;PNTR INDEXED AND INDIRECTLY ADDRESSED + 2616 ;P FIELD=0 + 2617 ;S FIELD=6 + 2618 ;PNTR WORD IS IN AC 12,13,14 + 2619 ;BYTE WORD=PNTR WORD + 2620 ;LOADED BYTE SHOULD EQUAL + 2621 ;12,13,14 + 2622 + 2623 000010 AC=10 + 2624 SAVEAC (1,1)^ + 2625 032416 201 12 0 00 032416 MOVEI AC+2,. ;SAVE TEST PC + 2626 032417 202 12 0 00 030051 MOVEM AC+2,TESTPC + 2627 032420 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2628 032421 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2629 + 2630 011000 SN=11000 + 2631 000003 VV=3 + 2632 000006 WW=6 + 2633 000011 XX=11 + 2634 000003 ZZ=3 + 2635 + 2636 ;TEST LDB INDEXED, INDIRECTLY ADDRESSED + 2637 G11000: REPEAT ^D3,< + 2638 SN=SN+1 + 2639 VV=VV+1 + 2640 WW=WW+1 + 2641 XX=XX+1 + 2642 ZZ=ZZ+1 + 2643 MOVEI VV,WW ;SETUP INDEX AC + 2644 MOVEI WW,XX ;SETUP INDIRECT AC + 2645 HRLI XX,000600 ;SETUP INDEXED AND + 2646 HRRI XX,XX ;INDIRECT PNTR WORD + 2647 LDB AC,@(ZZ) ;LOAD BYTE INDEXED, INDIRECTLY ADDRESSED + 2648 CAIE AC,XX ;TEST LOAD BYTE=12,13,14 + 2649 ER3 AC,SN ;LDB INDEXED, INDIRECTLY ADDRESSEDD FAILED + 2650 JUMPL AC+2,^D8 ;LOOP ON ERROR SWITCH + 2651 > + 2652 + 2653 011001 SN=SN+1 + 2654 000004 VV=VV+1 + 2655 000007 WW=WW+1 + 2656 000012 XX=XX+1 + 2657 000004 ZZ=ZZ+1 + 2658 032422 201 04 0 00 000007 MOVEI VV,WW ;SETUP INDEX AC + 2659 032423 201 07 0 00 000012 MOVEI WW,XX ;SETUP INDIRECT AC + 2660 032424 505 12 0 00 000600 HRLI XX,000600 ;SETUP INDEXED AND + 2661 032425 541 12 0 00 000012 HRRI XX,XX ;INDIRECT PNTR WORD + 2662 032426 135 10 1 04 000000 LDB AC,@(ZZ) ;LOAD BYTE INDEXED, INDIRECTLY ADDRESSED + 2663 032427 302 10 0 00 000012 CAIE AC,XX ;TEST LOAD BYTE=12,13,14 + 2664 032430 003 10 0 00 011001 ER3 AC,SN ;LDB INDEXED, INDIRECTLY ADDRESSEDD FAILED + 2665 032431 321 12 0 00 000010 JUMPL AC+2,^D8 ;LOOP ON ERROR SWITCH + 2666 + 2667 + 2668 011002 SN=SN+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 35-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0078 + + 2669 000005 VV=VV+1 + 2670 000010 WW=WW+1 + 2671 000013 XX=XX+1 + 2672 000005 ZZ=ZZ+1 + 2673 032432 201 05 0 00 000010 MOVEI VV,WW ;SETUP INDEX AC + 2674 032433 201 10 0 00 000013 MOVEI WW,XX ;SETUP INDIRECT AC + 2675 032434 505 13 0 00 000600 HRLI XX,000600 ;SETUP INDEXED AND + 2676 032435 541 13 0 00 000013 HRRI XX,XX ;INDIRECT PNTR WORD + 2677 032436 135 10 1 05 000000 LDB AC,@(ZZ) ;LOAD BYTE INDEXED, INDIRECTLY ADDRESSED + 2678 032437 302 10 0 00 000013 CAIE AC,XX ;TEST LOAD BYTE=12,13,14 + 2679 032440 003 10 0 00 011002 ER3 AC,SN ;LDB INDEXED, INDIRECTLY ADDRESSEDD FAILED + 2680 032441 321 12 0 00 000010 JUMPL AC+2,^D8 ;LOOP ON ERROR SWITCH + 2681 + 2682 + 2683 011003 SN=SN+1 + 2684 000006 VV=VV+1 + 2685 000011 WW=WW+1 + 2686 000014 XX=XX+1 + 2687 000006 ZZ=ZZ+1 + 2688 032442 201 06 0 00 000011 MOVEI VV,WW ;SETUP INDEX AC + 2689 032443 201 11 0 00 000014 MOVEI WW,XX ;SETUP INDIRECT AC + 2690 032444 505 14 0 00 000600 HRLI XX,000600 ;SETUP INDEXED AND + 2691 032445 541 14 0 00 000014 HRRI XX,XX ;INDIRECT PNTR WORD + 2692 032446 135 10 1 06 000000 LDB AC,@(ZZ) ;LOAD BYTE INDEXED, INDIRECTLY ADDRESSED + 2693 032447 302 10 0 00 000014 CAIE AC,XX ;TEST LOAD BYTE=12,13,14 + 2694 032450 003 10 0 00 011003 ER3 AC,SN ;LDB INDEXED, INDIRECTLY ADDRESSEDD FAILED + 2695 032451 321 12 0 00 000010 JUMPL AC+2,^D8 ;LOOP ON ERROR SWITCH + 2696 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 36 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0079 + + 2697 + 2698 ;INST-LDB + 2699 ;INDEX BYTE ADDRESS + 2700 ;P FIELD=0 + 2701 ;S FIELD=6 + 2702 ;INDEX AC=AC7 + 2703 ;BYTE WORD ADDRESS=AC 7,10,11,12,13 + 2704 ;AN ERROR WILL OCCUR IF LOADED BYTE + 2705 ;DIFFERS CURRENT AC + 2706 + 2707 000004 AC=4 + 2708 SAVEAC (1,1)^ + 2709 032452 201 06 0 00 032452 MOVEI AC+2,. ;SAVE TEST PC + 2710 032453 202 06 0 00 030051 MOVEM AC+2,TESTPC + 2711 032454 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2712 032455 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2713 + 2714 011100 SN=11100 + 2715 000006 ZZ=6 + 2716 + 2717 ;TEST LDB BYTE ADDR INDEXED + 2718 G11100: REPEAT ^D5,< + 2719 SN=SN+1 + 2720 ZZ=ZZ+1 + 2721 MOVSI AC+1,000607 ;SETUP PNTR WORD + 2722 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2723 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2724 LDB AC,&17 ;LOAD BYTE + 2725 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2726 ER3 AC,SN ;LDB FAILED + 2727 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2728 > + 2729 + 2730 011101 SN=SN+1 + 2731 000007 ZZ=ZZ+1 + 2732 032456 205 05 0 00 000607 MOVSI AC+1,000607 ;SETUP PNTR WORD + 2733 032457 201 07 0 00 000007 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2734 032460 201 07 0 00 000007 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2735 032461 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2736 032462 302 04 0 00 000007 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2737 032463 003 04 0 00 011101 ER3 AC,SN ;LDB FAILED + 2738 032464 321 06 0 00 032456 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2739 + 2740 + 2741 011102 SN=SN+1 + 2742 000010 ZZ=ZZ+1 + 2743 032465 205 05 0 00 000607 MOVSI AC+1,000607 ;SETUP PNTR WORD + 2744 032466 201 07 0 00 000010 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2745 032467 201 10 0 00 000010 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2746 032470 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2747 032471 302 04 0 00 000010 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2748 032472 003 04 0 00 011102 ER3 AC,SN ;LDB FAILED + 2749 032473 321 06 0 00 032465 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2750 + 2751 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 36-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0080 + + 2752 011103 SN=SN+1 + 2753 000011 ZZ=ZZ+1 + 2754 032474 205 05 0 00 000607 MOVSI AC+1,000607 ;SETUP PNTR WORD + 2755 032475 201 07 0 00 000011 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2756 032476 201 11 0 00 000011 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2757 032477 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2758 032500 302 04 0 00 000011 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2759 032501 003 04 0 00 011103 ER3 AC,SN ;LDB FAILED + 2760 032502 321 06 0 00 032474 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2761 + 2762 + 2763 011104 SN=SN+1 + 2764 000012 ZZ=ZZ+1 + 2765 032503 205 05 0 00 000607 MOVSI AC+1,000607 ;SETUP PNTR WORD + 2766 032504 201 07 0 00 000012 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2767 032505 201 12 0 00 000012 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2768 032506 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2769 032507 302 04 0 00 000012 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2770 032510 003 04 0 00 011104 ER3 AC,SN ;LDB FAILED + 2771 032511 321 06 0 00 032503 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2772 + 2773 + 2774 011105 SN=SN+1 + 2775 000013 ZZ=ZZ+1 + 2776 032512 205 05 0 00 000607 MOVSI AC+1,000607 ;SETUP PNTR WORD + 2777 032513 201 07 0 00 000013 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2778 032514 201 13 0 00 000013 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2779 032515 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2780 032516 302 04 0 00 000013 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2781 032517 003 04 0 00 011105 ER3 AC,SN ;LDB FAILED + 2782 032520 321 06 0 00 032512 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2783 + 2784 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 36-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0081 + + 2785 ;INST-LDB + 2786 ;BYTE INDIRECTLY ADDRESSED + 2787 ;P FIELD=0 + 2788 ;S FIELD=6 + 2789 ;BYTE WORD ADDRESS=AC7,10,11,12,13 + 2790 ;AN ERROR WILL OCCUR IF LOADED + 2791 ;BYTE DIFFERS FROM CURRENT AC + 2792 + 2793 000004 AC=4 + 2794 SAVEAC (1,1)^ + 2795 032521 201 06 0 00 032521 MOVEI AC+2,. ;SAVE TEST PC + 2796 032522 202 06 0 00 030051 MOVEM AC+2,TESTPC + 2797 032523 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2798 032524 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2799 + 2800 011200 SN=11200 + 2801 000006 ZZ=6 + 2802 + 2803 ;TEST LDB, BYTE INDIRECTLY ADDRESSED + 2804 G11200: REPEAT ^D5,< + 2805 SN=SN+1 + 2806 ZZ=ZZ+1 + 2807 MOVSI AC+1,000620 ;SETUP PNTR WORD + 2808 MOVEI ,ZZ ;SETUP DEFER ADDRESS + 2809 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2810 LDB AC,&17 ;LOAD BYTE + 2811 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2812 ER3 AC,SN ;LDB FAILED + 2813 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2814 > + 2815 + 2816 011201 SN=SN+1 + 2817 000007 ZZ=ZZ+1 + 2818 032525 205 05 0 00 000620 MOVSI AC+1,000620 ;SETUP PNTR WORD + 2819 032526 201 00 0 00 000007 MOVEI ,ZZ ;SETUP DEFER ADDRESS + 2820 032527 201 07 0 00 000007 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2821 032530 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2822 032531 302 04 0 00 000007 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2823 032532 003 04 0 00 011201 ER3 AC,SN ;LDB FAILED + 2824 032533 321 06 0 00 032525 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2825 + 2826 + 2827 011202 SN=SN+1 + 2828 000010 ZZ=ZZ+1 + 2829 032534 205 05 0 00 000620 MOVSI AC+1,000620 ;SETUP PNTR WORD + 2830 032535 201 00 0 00 000010 MOVEI ,ZZ ;SETUP DEFER ADDRESS + 2831 032536 201 10 0 00 000010 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2832 032537 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2833 032540 302 04 0 00 000010 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2834 032541 003 04 0 00 011202 ER3 AC,SN ;LDB FAILED + 2835 032542 321 06 0 00 032534 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2836 + 2837 + 2838 011203 SN=SN+1 + 2839 000011 ZZ=ZZ+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 36-3 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0082 + + 2840 032543 205 05 0 00 000620 MOVSI AC+1,000620 ;SETUP PNTR WORD + 2841 032544 201 00 0 00 000011 MOVEI ,ZZ ;SETUP DEFER ADDRESS + 2842 032545 201 11 0 00 000011 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2843 032546 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2844 032547 302 04 0 00 000011 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2845 032550 003 04 0 00 011203 ER3 AC,SN ;LDB FAILED + 2846 032551 321 06 0 00 032543 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2847 + 2848 + 2849 011204 SN=SN+1 + 2850 000012 ZZ=ZZ+1 + 2851 032552 205 05 0 00 000620 MOVSI AC+1,000620 ;SETUP PNTR WORD + 2852 032553 201 00 0 00 000012 MOVEI ,ZZ ;SETUP DEFER ADDRESS + 2853 032554 201 12 0 00 000012 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2854 032555 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2855 032556 302 04 0 00 000012 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2856 032557 003 04 0 00 011204 ER3 AC,SN ;LDB FAILED + 2857 032560 321 06 0 00 032552 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2858 + 2859 + 2860 011205 SN=SN+1 + 2861 000013 ZZ=ZZ+1 + 2862 032561 205 05 0 00 000620 MOVSI AC+1,000620 ;SETUP PNTR WORD + 2863 032562 201 00 0 00 000013 MOVEI ,ZZ ;SETUP DEFER ADDRESS + 2864 032563 201 13 0 00 000013 MOVEI ZZ,ZZ ;SETUP BYTE WORD + 2865 032564 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2866 032565 302 04 0 00 000013 CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + 2867 032566 003 04 0 00 011205 ER3 AC,SN ;LDB FAILED + 2868 032567 321 06 0 00 032561 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2869 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 37 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0083 + + 2870 + 2871 ;INST-LDB + 2872 ;BYTE ADDRESS INDEXED AND INDIRECT + 2873 ;P FIELD=0 + 2874 ;S FIELD=6 + 2875 ;BYTE ADDRESS=AC13,14,15 + 2876 ;BYTE WORD=13,14,15 + 2877 ;AN ERROR WILL OCCUR IF LOADED + 2878 ;BYTE DIFFERS FROM CURRENT AC + 2879 + 2880 000004 AC=4 + 2881 SAVEAC (1,1)^ + 2882 032570 201 06 0 00 032570 MOVEI AC+2,. ;SAVE TEST PC + 2883 032571 202 06 0 00 030051 MOVEM AC+2,TESTPC + 2884 032572 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2885 032573 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2886 + 2887 011300 SN=11300 + 2888 000012 XX=12 + 2889 000007 ZZ=7 + 2890 + 2891 ;TEST LDB, BYTE ADDR INDEXED AND INDIRECT + 2892 G11300: REPEAT ^D3,< + 2893 SN=SN+1 + 2894 XX=XX+1 + 2895 ZZ=ZZ+1 + 2896 MOVSI AC+1,000627 ;SETUP PNTR WORD + 2897 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2898 MOVEI ZZ,XX ;SETUP INDIRECT ADDR + 2899 MOVEI XX,XX ;SETUP BYTE WORD + 2900 LDB AC,&17 ;LOAD BYTE + 2901 CAIE AC,XX ;TEST BYTE=13,14,15 + 2902 ER3 AC,SN ;LDB FAILED + 2903 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH + 2904 > + 2905 + 2906 011301 SN=SN+1 + 2907 000013 XX=XX+1 + 2908 000010 ZZ=ZZ+1 + 2909 032574 205 05 0 00 000627 MOVSI AC+1,000627 ;SETUP PNTR WORD + 2910 032575 201 07 0 00 000010 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2911 032576 201 10 0 00 000013 MOVEI ZZ,XX ;SETUP INDIRECT ADDR + 2912 032577 201 13 0 00 000013 MOVEI XX,XX ;SETUP BYTE WORD + 2913 032600 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2914 032601 302 04 0 00 000013 CAIE AC,XX ;TEST BYTE=13,14,15 + 2915 032602 003 04 0 00 011301 ER3 AC,SN ;LDB FAILED + 2916 032603 321 06 0 00 032574 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH + 2917 + 2918 + 2919 011302 SN=SN+1 + 2920 000014 XX=XX+1 + 2921 000011 ZZ=ZZ+1 + 2922 032604 205 05 0 00 000627 MOVSI AC+1,000627 ;SETUP PNTR WORD + 2923 032605 201 07 0 00 000011 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2924 032606 201 11 0 00 000014 MOVEI ZZ,XX ;SETUP INDIRECT ADDR +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 37-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0084 + + 2925 032607 201 14 0 00 000014 MOVEI XX,XX ;SETUP BYTE WORD + 2926 032610 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2927 032611 302 04 0 00 000014 CAIE AC,XX ;TEST BYTE=13,14,15 + 2928 032612 003 04 0 00 011302 ER3 AC,SN ;LDB FAILED + 2929 032613 321 06 0 00 032604 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH + 2930 + 2931 + 2932 011303 SN=SN+1 + 2933 000015 XX=XX+1 + 2934 000012 ZZ=ZZ+1 + 2935 032614 205 05 0 00 000627 MOVSI AC+1,000627 ;SETUP PNTR WORD + 2936 032615 201 07 0 00 000012 MOVEI AC+3,ZZ ;SETUP INDEX AC + 2937 032616 201 12 0 00 000015 MOVEI ZZ,XX ;SETUP INDIRECT ADDR + 2938 032617 201 15 0 00 000015 MOVEI XX,XX ;SETUP BYTE WORD + 2939 032620 135 04 0 00 000005 LDB AC,&17 ;LOAD BYTE + 2940 032621 302 04 0 00 000015 CAIE AC,XX ;TEST BYTE=13,14,15 + 2941 032622 003 04 0 00 011303 ER3 AC,SN ;LDB FAILED + 2942 032623 321 06 0 00 032614 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH + 2943 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 38 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0085 + + 2944 + 2945 ;INST-ILDB + 2946 ;DECREASING P FIELD + 2947 ;P FIELD=44,36,30,22,14 + 2948 ;S FIELD=6 + 2949 ;BYTE ADDRESS=AC0 + 2950 ;AN ERROR WILL OCCUR IF AC DIFFERS + 2951 ;FROM 77 + 2952 + 2953 000005 AC=5 + 2954 SAVEAC (1,1)^ + 2955 032624 201 07 0 00 032624 MOVEI AC+2,. ;SAVE TEST PC + 2956 032625 202 07 0 00 030051 MOVEM AC+2,TESTPC + 2957 032626 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2958 032627 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2959 + 2960 011400 SN=11400 + 2961 520600 XX=520600 + 2962 000000 ZZ=0 + 2963 + 2964 ;TEST ILDB + 2965 G11400: REPEAT ^D5,< + 2966 SN=SN+1 + 2967 XX=XX-060000 + 2968 ZZ=ZZ-6 + 2969 MOVSI AC+1,XX ;SETUP PNTR WORD + 2970 MOVEI ,77 ;SETUP BYTE WORD + 2971 ROT ,ZZ ;ROTATE RIGHT + 2972 ILDB AC,&17 ;INC AND LOAD BYTE + 2973 CAIE AC,77 ;TEST AC=77 + 2974 ER3 AC,SN ;ILDB FAILED + 2975 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2976 > + 2977 + 2978 011401 SN=SN+1 + 2979 440600 XX=XX-060000 + 2980 777777 777772 ZZ=ZZ-6 + 2981 032630 205 06 0 00 440600 MOVSI AC+1,XX ;SETUP PNTR WORD + 2982 032631 201 00 0 00 000077 MOVEI ,77 ;SETUP BYTE WORD + 2983 032632 241 00 0 00 777772 ROT ,ZZ ;ROTATE RIGHT + 2984 032633 134 05 0 00 000006 ILDB AC,&17 ;INC AND LOAD BYTE + 2985 032634 302 05 0 00 000077 CAIE AC,77 ;TEST AC=77 + 2986 032635 003 05 0 00 011401 ER3 AC,SN ;ILDB FAILED + 2987 032636 321 07 0 00 032630 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2988 + 2989 + 2990 011402 SN=SN+1 + 2991 360600 XX=XX-060000 + 2992 777777 777764 ZZ=ZZ-6 + 2993 032637 205 06 0 00 360600 MOVSI AC+1,XX ;SETUP PNTR WORD + 2994 032640 201 00 0 00 000077 MOVEI ,77 ;SETUP BYTE WORD + 2995 032641 241 00 0 00 777764 ROT ,ZZ ;ROTATE RIGHT + 2996 032642 134 05 0 00 000006 ILDB AC,&17 ;INC AND LOAD BYTE + 2997 032643 302 05 0 00 000077 CAIE AC,77 ;TEST AC=77 + 2998 032644 003 05 0 00 011402 ER3 AC,SN ;ILDB FAILED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 38-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0086 + + 2999 032645 321 07 0 00 032637 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3000 + 3001 + 3002 011403 SN=SN+1 + 3003 300600 XX=XX-060000 + 3004 777777 777756 ZZ=ZZ-6 + 3005 032646 205 06 0 00 300600 MOVSI AC+1,XX ;SETUP PNTR WORD + 3006 032647 201 00 0 00 000077 MOVEI ,77 ;SETUP BYTE WORD + 3007 032650 241 00 0 00 777756 ROT ,ZZ ;ROTATE RIGHT + 3008 032651 134 05 0 00 000006 ILDB AC,&17 ;INC AND LOAD BYTE + 3009 032652 302 05 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3010 032653 003 05 0 00 011403 ER3 AC,SN ;ILDB FAILED + 3011 032654 321 07 0 00 032646 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3012 + 3013 + 3014 011404 SN=SN+1 + 3015 220600 XX=XX-060000 + 3016 777777 777750 ZZ=ZZ-6 + 3017 032655 205 06 0 00 220600 MOVSI AC+1,XX ;SETUP PNTR WORD + 3018 032656 201 00 0 00 000077 MOVEI ,77 ;SETUP BYTE WORD + 3019 032657 241 00 0 00 777750 ROT ,ZZ ;ROTATE RIGHT + 3020 032660 134 05 0 00 000006 ILDB AC,&17 ;INC AND LOAD BYTE + 3021 032661 302 05 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3022 032662 003 05 0 00 011404 ER3 AC,SN ;ILDB FAILED + 3023 032663 321 07 0 00 032655 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3024 + 3025 + 3026 011405 SN=SN+1 + 3027 140600 XX=XX-060000 + 3028 777777 777742 ZZ=ZZ-6 + 3029 032664 205 06 0 00 140600 MOVSI AC+1,XX ;SETUP PNTR WORD + 3030 032665 201 00 0 00 000077 MOVEI ,77 ;SETUP BYTE WORD + 3031 032666 241 00 0 00 777742 ROT ,ZZ ;ROTATE RIGHT + 3032 032667 134 05 0 00 000006 ILDB AC,&17 ;INC AND LOAD BYTE + 3033 032670 302 05 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3034 032671 003 05 0 00 011405 ER3 AC,SN ;ILDB FAILED + 3035 032672 321 07 0 00 032664 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3036 + 3037 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 38-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0087 + + 3038 ;INST-ILDB + 3039 ;INCREASING S FIELD + 3040 ;CALCULATE NEW P FIELD, INCREMENT + 3041 ;BYTE WORD ADDRESS + 3042 ;P FIELD=0 + 3043 ;S FIELD=6,14,22,30,36 + 3044 ;AN ERROR WILL OCCUR IF AC + 3045 ;DIFFERS FROM 77 + 3046 + 3047 000014 AC=14 + 3048 SAVEAC (1,1)^ + 3049 032673 201 16 0 00 032673 MOVEI AC+2,. ;SAVE TEST PC + 3050 032674 202 16 0 00 030051 MOVEM AC+2,TESTPC + 3051 032675 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3052 032676 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3053 + 3054 011500 SN=11500 + 3055 000000 XX=0 + 3056 000000 ZZ=0 + 3057 + 3058 ;TEST ILDB + 3059 G11500: REPEAT ^D5,< + 3060 SN=SN+1 + 3061 XX=XX+600 + 3062 ZZ=ZZ-6 + 3063 MOVSI AC+1,XX ;SETUP PNTR WORD + 3064 MOVEI 1,77 ;SETUP BYTE WORD + 3065 ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + 3066 ILDB AC,&17 ;INC AND LOAD BYTE + 3067 CAIE AC,77 ;TEST AC=77 + 3068 ER3 AC,SN ;ILDB FAILED + 3069 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3070 > + 3071 + 3072 011501 SN=SN+1 + 3073 000600 XX=XX+600 + 3074 777777 777772 ZZ=ZZ-6 + 3075 032677 205 15 0 00 000600 MOVSI AC+1,XX ;SETUP PNTR WORD + 3076 032700 201 01 0 00 000077 MOVEI 1,77 ;SETUP BYTE WORD + 3077 032701 241 01 0 00 777772 ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + 3078 032702 134 14 0 00 000015 ILDB AC,&17 ;INC AND LOAD BYTE + 3079 032703 302 14 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3080 032704 003 14 0 00 011501 ER3 AC,SN ;ILDB FAILED + 3081 032705 321 16 0 00 032677 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3082 + 3083 + 3084 011502 SN=SN+1 + 3085 001400 XX=XX+600 + 3086 777777 777764 ZZ=ZZ-6 + 3087 032706 205 15 0 00 001400 MOVSI AC+1,XX ;SETUP PNTR WORD + 3088 032707 201 01 0 00 000077 MOVEI 1,77 ;SETUP BYTE WORD + 3089 032710 241 01 0 00 777764 ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + 3090 032711 134 14 0 00 000015 ILDB AC,&17 ;INC AND LOAD BYTE + 3091 032712 302 14 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3092 032713 003 14 0 00 011502 ER3 AC,SN ;ILDB FAILED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 38-3 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0088 + + 3093 032714 321 16 0 00 032706 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3094 + 3095 + 3096 011503 SN=SN+1 + 3097 002200 XX=XX+600 + 3098 777777 777756 ZZ=ZZ-6 + 3099 032715 205 15 0 00 002200 MOVSI AC+1,XX ;SETUP PNTR WORD + 3100 032716 201 01 0 00 000077 MOVEI 1,77 ;SETUP BYTE WORD + 3101 032717 241 01 0 00 777756 ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + 3102 032720 134 14 0 00 000015 ILDB AC,&17 ;INC AND LOAD BYTE + 3103 032721 302 14 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3104 032722 003 14 0 00 011503 ER3 AC,SN ;ILDB FAILED + 3105 032723 321 16 0 00 032715 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3106 + 3107 + 3108 011504 SN=SN+1 + 3109 003000 XX=XX+600 + 3110 777777 777750 ZZ=ZZ-6 + 3111 032724 205 15 0 00 003000 MOVSI AC+1,XX ;SETUP PNTR WORD + 3112 032725 201 01 0 00 000077 MOVEI 1,77 ;SETUP BYTE WORD + 3113 032726 241 01 0 00 777750 ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + 3114 032727 134 14 0 00 000015 ILDB AC,&17 ;INC AND LOAD BYTE + 3115 032730 302 14 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3116 032731 003 14 0 00 011504 ER3 AC,SN ;ILDB FAILED + 3117 032732 321 16 0 00 032724 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3118 + 3119 + 3120 011505 SN=SN+1 + 3121 003600 XX=XX+600 + 3122 777777 777742 ZZ=ZZ-6 + 3123 032733 205 15 0 00 003600 MOVSI AC+1,XX ;SETUP PNTR WORD + 3124 032734 201 01 0 00 000077 MOVEI 1,77 ;SETUP BYTE WORD + 3125 032735 241 01 0 00 777742 ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + 3126 032736 134 14 0 00 000015 ILDB AC,&17 ;INC AND LOAD BYTE + 3127 032737 302 14 0 00 000077 CAIE AC,77 ;TEST AC=77 + 3128 032740 003 14 0 00 011505 ER3 AC,SN ;ILDB FAILED + 3129 032741 321 16 0 00 032733 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 3130 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 39 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0089 + + 3131 + 3132 ;INST-ILDB + 3133 ;TESTING SPECIAL POINTER + 3134 ;WHICH SETS AC TO ZERO + 3135 ;PFIELD=20 ORIG,64 AFTER + 3136 ;SFIELD=60 ORIG,60 AFTER + 3137 ;AN ERROR WILL OCCUR IF AC IS NOT ZEROED + 3138 + 3139 206000 XX=206000 + 3140 + 3141 032742 205 15 0 00 206000 G11600: MOVSI AC+1,XX ;SETUP PNTR WORD + 3142 032743 477 00 0 00 000001 SETOB 0,1 ;SETUP BYTE WORD + 3143 032744 476 00 0 00 000014 SETOM AC ;SETUP AC FOR TEST + 3144 032745 134 14 0 00 000015 ILDB AC,&17 ;THIS SHOULD ZERO AC + 3145 032746 332 00 0 00 000014 SKIPE AC ;TEST AC=0 + 3146 032747 003 14 0 00 011601 ER3 AC,11601 ;ILDB FAILED + 3147 032750 321 16 0 00 032742 JUMPL AC+2,G11600 ;LOOP ON ERROR SWITCH + 3148 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 39-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0090 + + 3149 ;INST-DPB + 3150 ;INCREASING P FIELD + 3151 ;P FIELD=6,14,22,30,36 + 3152 ;S FIELD=6 + 3153 ;BYTE WORD=55 + 3154 ;AN ERROR WILL OCCUR IF DPB + 3155 ;FAILS TO DEPOSIT CORRECTLY + 3156 + 3157 000013 AC=13 + 3158 SAVEAC (1,1)^ + 3159 032751 201 15 0 00 032751 MOVEI AC+2,. ;SAVE TEST PC + 3160 032752 202 15 0 00 030051 MOVEM AC+2,TESTPC + 3161 032753 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3162 032754 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3163 + 3164 011700 SN=11700 + 3165 000000 XX=0 + 3166 000600 ZZ=000600 + 3167 + 3168 ;TEST DPB + 3169 G11700: REPEAT ^D5,< + 3170 SN=SN+1 + 3171 XX=XX+6 + 3172 ZZ=ZZ+60000 + 3173 MOVEI AC-2,55 ;SETUP AC-2 + 3174 ROT AC-2,XX ;FOR COMPARISON + 3175 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3176 SETZ ;SETUP DEST WORD + 3177 MOVEI AC,55 ;SETUP BYTE WORD + 3178 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3179 CAME ,&17 ;TEST DEST WORD + 3180 ER12 ,SN ;DPB FAILED + 3181 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3182 > + 3183 + 3184 011701 SN=SN+1 + 3185 000006 XX=XX+6 + 3186 060600 ZZ=ZZ+60000 + 3187 032755 201 11 0 00 000055 MOVEI AC-2,55 ;SETUP AC-2 + 3188 032756 241 11 0 00 000006 ROT AC-2,XX ;FOR COMPARISON + 3189 032757 205 14 0 00 060600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3190 032760 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3191 032761 201 13 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3192 032762 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3193 032763 312 00 0 00 000011 CAME ,&17 ;TEST DEST WORD + 3194 032764 012 00 0 00 011701 ER12 ,SN ;DPB FAILED + 3195 032765 321 15 0 00 032755 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3196 + 3197 + 3198 011702 SN=SN+1 + 3199 000014 XX=XX+6 + 3200 140600 ZZ=ZZ+60000 + 3201 032766 201 11 0 00 000055 MOVEI AC-2,55 ;SETUP AC-2 + 3202 032767 241 11 0 00 000014 ROT AC-2,XX ;FOR COMPARISON + 3203 032770 205 14 0 00 140600 MOVSI AC+1,ZZ ;SETUP PNTR WORD +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 39-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0091 + + 3204 032771 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3205 032772 201 13 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3206 032773 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3207 032774 312 00 0 00 000011 CAME ,&17 ;TEST DEST WORD + 3208 032775 012 00 0 00 011702 ER12 ,SN ;DPB FAILED + 3209 032776 321 15 0 00 032766 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3210 + 3211 + 3212 011703 SN=SN+1 + 3213 000022 XX=XX+6 + 3214 220600 ZZ=ZZ+60000 + 3215 032777 201 11 0 00 000055 MOVEI AC-2,55 ;SETUP AC-2 + 3216 033000 241 11 0 00 000022 ROT AC-2,XX ;FOR COMPARISON + 3217 033001 205 14 0 00 220600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3218 033002 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3219 033003 201 13 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3220 033004 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3221 033005 312 00 0 00 000011 CAME ,&17 ;TEST DEST WORD + 3222 033006 012 00 0 00 011703 ER12 ,SN ;DPB FAILED + 3223 033007 321 15 0 00 032777 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3224 + 3225 + 3226 011704 SN=SN+1 + 3227 000030 XX=XX+6 + 3228 300600 ZZ=ZZ+60000 + 3229 033010 201 11 0 00 000055 MOVEI AC-2,55 ;SETUP AC-2 + 3230 033011 241 11 0 00 000030 ROT AC-2,XX ;FOR COMPARISON + 3231 033012 205 14 0 00 300600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3232 033013 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3233 033014 201 13 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3234 033015 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3235 033016 312 00 0 00 000011 CAME ,&17 ;TEST DEST WORD + 3236 033017 012 00 0 00 011704 ER12 ,SN ;DPB FAILED + 3237 033020 321 15 0 00 033010 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3238 + 3239 + 3240 011705 SN=SN+1 + 3241 000036 XX=XX+6 + 3242 360600 ZZ=ZZ+60000 + 3243 033021 201 11 0 00 000055 MOVEI AC-2,55 ;SETUP AC-2 + 3244 033022 241 11 0 00 000036 ROT AC-2,XX ;FOR COMPARISON + 3245 033023 205 14 0 00 360600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3246 033024 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3247 033025 201 13 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3248 033026 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3249 033027 312 00 0 00 000011 CAME ,&17 ;TEST DEST WORD + 3250 033030 012 00 0 00 011705 ER12 ,SN ;DPB FAILED + 3251 033031 321 15 0 00 033021 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3252 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 40 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0092 + + 3253 + 3254 ;INST-DPB + 3255 ;INCREASING P FIELD + 3256 ;P FIELD = 0,6,14,22,30 + 3257 ;S FIELD = 6 + 3258 ;BYTE WORD=55 (SHIFTING LEFT 6 PLACES) + 3259 ;AN ERROR WILL OCCUR IF DPB FAILS + 3260 ;TO DEPOSIT CORRECTLY + 3261 + 3262 000012 AC=12 + 3263 SAVEAC (1,1)^ + 3264 033032 201 14 0 00 033032 MOVEI AC+2,. ;SAVE TEST PC + 3265 033033 202 14 0 00 030051 MOVEM AC+2,TESTPC + 3266 033034 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3267 033035 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3268 + 3269 012000 SN=12000 + 3270 000000 XX=0 + 3271 777777 720000 ZZ=-60000 + 3272 + 3273 ;TEST DPB + 3274 G12000: REPEAT ^D5,< + 3275 SN=SN+1 + 3276 XX=XX+6 + 3277 ZZ=ZZ+060000 + 3278 IFE ZZ, + 3279 MOVSI AC-2,550000 ;SETUP AC=2 + 3280 ROT AC-2,XX ;FRO COMPARISON + 3281 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3282 MOVEI AC,55 ;SETUP BYTE WORD + 3283 SETZ ;SETUP DEST WORD + 3284 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3285 CAME ,&17 ;TEST DEST WORD + 3286 ER12 ,SN ;DPB FAILED + 3287 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3288 > + 3289 + 3290 012001 SN=SN+1 + 3291 000006 XX=XX+6 + 3292 000000 ZZ=ZZ+060000 + 3293 000600 IFE ZZ, + 3294 033036 205 10 0 00 550000 MOVSI AC-2,550000 ;SETUP AC=2 + 3295 033037 241 10 0 00 000006 ROT AC-2,XX ;FRO COMPARISON + 3296 033040 205 13 0 00 000600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3297 033041 201 12 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3298 033042 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3299 033043 137 12 0 00 000013 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3300 033044 312 00 0 00 000010 CAME ,&17 ;TEST DEST WORD + 3301 033045 012 00 0 00 012001 ER12 ,SN ;DPB FAILED + 3302 033046 321 14 0 00 033036 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3303 + 3304 + 3305 012002 SN=SN+1 + 3306 000014 XX=XX+6 + 3307 060600 ZZ=ZZ+060000 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 40-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0093 + + 3308 IFE ZZ, + 3309 033047 205 10 0 00 550000 MOVSI AC-2,550000 ;SETUP AC=2 + 3310 033050 241 10 0 00 000014 ROT AC-2,XX ;FRO COMPARISON + 3311 033051 205 13 0 00 060600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3312 033052 201 12 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3313 033053 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3314 033054 137 12 0 00 000013 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3315 033055 312 00 0 00 000010 CAME ,&17 ;TEST DEST WORD + 3316 033056 012 00 0 00 012002 ER12 ,SN ;DPB FAILED + 3317 033057 321 14 0 00 033047 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3318 + 3319 + 3320 012003 SN=SN+1 + 3321 000022 XX=XX+6 + 3322 140600 ZZ=ZZ+060000 + 3323 IFE ZZ, + 3324 033060 205 10 0 00 550000 MOVSI AC-2,550000 ;SETUP AC=2 + 3325 033061 241 10 0 00 000022 ROT AC-2,XX ;FRO COMPARISON + 3326 033062 205 13 0 00 140600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3327 033063 201 12 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3328 033064 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3329 033065 137 12 0 00 000013 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3330 033066 312 00 0 00 000010 CAME ,&17 ;TEST DEST WORD + 3331 033067 012 00 0 00 012003 ER12 ,SN ;DPB FAILED + 3332 033070 321 14 0 00 033060 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3333 + 3334 + 3335 012004 SN=SN+1 + 3336 000030 XX=XX+6 + 3337 220600 ZZ=ZZ+060000 + 3338 IFE ZZ, + 3339 033071 205 10 0 00 550000 MOVSI AC-2,550000 ;SETUP AC=2 + 3340 033072 241 10 0 00 000030 ROT AC-2,XX ;FRO COMPARISON + 3341 033073 205 13 0 00 220600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3342 033074 201 12 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3343 033075 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3344 033076 137 12 0 00 000013 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3345 033077 312 00 0 00 000010 CAME ,&17 ;TEST DEST WORD + 3346 033100 012 00 0 00 012004 ER12 ,SN ;DPB FAILED + 3347 033101 321 14 0 00 033071 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3348 + 3349 + 3350 012005 SN=SN+1 + 3351 000036 XX=XX+6 + 3352 300600 ZZ=ZZ+060000 + 3353 IFE ZZ, + 3354 033102 205 10 0 00 550000 MOVSI AC-2,550000 ;SETUP AC=2 + 3355 033103 241 10 0 00 000036 ROT AC-2,XX ;FRO COMPARISON + 3356 033104 205 13 0 00 300600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3357 033105 201 12 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3358 033106 400 00 0 00 000000 SETZ ;SETUP DEST WORD + 3359 033107 137 12 0 00 000013 DPB AC,&17 ;DEPOSIT BYTE (AC0) + 3360 033110 312 00 0 00 000010 CAME ,&17 ;TEST DEST WORD + 3361 033111 012 00 0 00 012005 ER12 ,SN ;DPB FAILED + 3362 033112 321 14 0 00 033102 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 40-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0094 + + 3363 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 41 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0095 + + 3364 ;INST-IDPB + 3365 ;INCREASING S FIELD + 3366 ;CALCULATE NEW P FIELD, INCREMENT + 3367 ;BYTE WORD ADDRESS + 3368 ;P FIELD=0 + 3369 ;S FIELD=6,14,22,30,36 + 3370 ;BYTE WORD=77 + 3371 ;AN ERROR WILL OCCUR IF IDPB FAILS + 3372 ;TO DEPOSIT CORRECTLY + 3373 + 3374 000011 AC=11 + 3375 SAVEAC (1,1)^ + 3376 033113 201 13 0 00 033113 MOVEI AC+2,. ;SAVE TEST PC + 3377 033114 202 13 0 00 030051 MOVEM AC+2,TESTPC + 3378 033115 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3379 033116 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3380 + 3381 012100 SN=12100 + 3382 000000 XX=0 + 3383 000000 ZZ=000000 + 3384 + 3385 ;TEST IDPB + 3386 G12100: REPEAT ^D5,< + 3387 SN=SN+1 + 3388 XX=XX-6 + 3389 ZZ=ZZ+600 + 3390 MOVEI AC-2,77 ;SETUP AC-2 + 3391 ROT AC-2,XX ;FOR COMPARISON + 3392 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3393 MOVEI AC,77 ;SETUP BYTE WORD + 3394 SETZ 1, ;SETUP DEST WORD + 3395 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3396 CAME 1,&17 ;TEST DEST WORD + 3397 ER12 1,SN ;IDPB FAILED + 3398 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3399 > + 3400 + 3401 012101 SN=SN+1 + 3402 777777 777772 XX=XX-6 + 3403 000600 ZZ=ZZ+600 + 3404 033117 201 07 0 00 000077 MOVEI AC-2,77 ;SETUP AC-2 + 3405 033120 241 07 0 00 777772 ROT AC-2,XX ;FOR COMPARISON + 3406 033121 205 12 0 00 000600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3407 033122 201 11 0 00 000077 MOVEI AC,77 ;SETUP BYTE WORD + 3408 033123 400 01 0 00 000000 SETZ 1, ;SETUP DEST WORD + 3409 033124 136 11 0 00 000012 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3410 033125 312 01 0 00 000007 CAME 1,&17 ;TEST DEST WORD + 3411 033126 012 01 0 00 012101 ER12 1,SN ;IDPB FAILED + 3412 033127 321 13 0 00 033117 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3413 + 3414 + 3415 012102 SN=SN+1 + 3416 777777 777764 XX=XX-6 + 3417 001400 ZZ=ZZ+600 + 3418 033130 201 07 0 00 000077 MOVEI AC-2,77 ;SETUP AC-2 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 41-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0096 + + 3419 033131 241 07 0 00 777764 ROT AC-2,XX ;FOR COMPARISON + 3420 033132 205 12 0 00 001400 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3421 033133 201 11 0 00 000077 MOVEI AC,77 ;SETUP BYTE WORD + 3422 033134 400 01 0 00 000000 SETZ 1, ;SETUP DEST WORD + 3423 033135 136 11 0 00 000012 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3424 033136 312 01 0 00 000007 CAME 1,&17 ;TEST DEST WORD + 3425 033137 012 01 0 00 012102 ER12 1,SN ;IDPB FAILED + 3426 033140 321 13 0 00 033130 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3427 + 3428 + 3429 012103 SN=SN+1 + 3430 777777 777756 XX=XX-6 + 3431 002200 ZZ=ZZ+600 + 3432 033141 201 07 0 00 000077 MOVEI AC-2,77 ;SETUP AC-2 + 3433 033142 241 07 0 00 777756 ROT AC-2,XX ;FOR COMPARISON + 3434 033143 205 12 0 00 002200 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3435 033144 201 11 0 00 000077 MOVEI AC,77 ;SETUP BYTE WORD + 3436 033145 400 01 0 00 000000 SETZ 1, ;SETUP DEST WORD + 3437 033146 136 11 0 00 000012 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3438 033147 312 01 0 00 000007 CAME 1,&17 ;TEST DEST WORD + 3439 033150 012 01 0 00 012103 ER12 1,SN ;IDPB FAILED + 3440 033151 321 13 0 00 033141 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3441 + 3442 + 3443 012104 SN=SN+1 + 3444 777777 777750 XX=XX-6 + 3445 003000 ZZ=ZZ+600 + 3446 033152 201 07 0 00 000077 MOVEI AC-2,77 ;SETUP AC-2 + 3447 033153 241 07 0 00 777750 ROT AC-2,XX ;FOR COMPARISON + 3448 033154 205 12 0 00 003000 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3449 033155 201 11 0 00 000077 MOVEI AC,77 ;SETUP BYTE WORD + 3450 033156 400 01 0 00 000000 SETZ 1, ;SETUP DEST WORD + 3451 033157 136 11 0 00 000012 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3452 033160 312 01 0 00 000007 CAME 1,&17 ;TEST DEST WORD + 3453 033161 012 01 0 00 012104 ER12 1,SN ;IDPB FAILED + 3454 033162 321 13 0 00 033152 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3455 + 3456 + 3457 012105 SN=SN+1 + 3458 777777 777742 XX=XX-6 + 3459 003600 ZZ=ZZ+600 + 3460 033163 201 07 0 00 000077 MOVEI AC-2,77 ;SETUP AC-2 + 3461 033164 241 07 0 00 777742 ROT AC-2,XX ;FOR COMPARISON + 3462 033165 205 12 0 00 003600 MOVSI AC+1,ZZ ;SETUP PNTR WORD + 3463 033166 201 11 0 00 000077 MOVEI AC,77 ;SETUP BYTE WORD + 3464 033167 400 01 0 00 000000 SETZ 1, ;SETUP DEST WORD + 3465 033170 136 11 0 00 000012 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3466 033171 312 01 0 00 000007 CAME 1,&17 ;TEST DEST WORD + 3467 033172 012 01 0 00 012105 ER12 1,SN ;IDPB FAILED + 3468 033173 321 13 0 00 033163 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3469 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 42 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0097 + + 3470 ;INST-IDPB + 3471 ;P FIELD=44 + 3472 ;S FIELD=6 + 3473 ;BYTE WORD=55 + 3474 ;DEST WORD=-1 + 3475 ;AN ERROR WILL OCCUR IF IDPB + 3476 ;FAILS TO DEPOSIT CORRECTLY + 3477 + 3478 000010 AC=10 + 3479 SAVEAC (1,1)^ + 3480 033174 201 12 0 00 033174 MOVEI AC+2,. ;SAVE TEST PC + 3481 033175 202 12 0 00 030051 MOVEM AC+2,TESTPC + 3482 033176 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3483 033177 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3484 + 3485 012200 SN=12200 + 3486 000000 ZZ=0 + 3487 + 3488 033200 205 11 0 00 440600 G12200: MOVSI AC+1,440600 ;SETUP PNPR WORD + 3489 ;TEST IDPB + 3490 REPEAT ^D5,< + 3491 SN=SN+1 + 3492 ZZ=ZZ-6 + 3493 HRLI AC-2,-1 ;SETUP AC-2 + 3494 HRRI AC-2,-23 ;FOR COMPARISON + 3495 ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + 3496 MOVEI AC,55 ;SETUP BYTE WORD + 3497 SETO ;SETUP DEST WORD (AC0) + 3498 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3499 CAME ,&17 ;TEST DEST WORD + 3500 ER12 ,SN ;IDPB FAILED + 3501 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3502 > + 3503 + 3504 012201 SN=SN+1 + 3505 777777 777772 ZZ=ZZ-6 + 3506 033201 505 06 0 00 777777 HRLI AC-2,-1 ;SETUP AC-2 + 3507 033202 541 06 0 00 777755 HRRI AC-2,-23 ;FOR COMPARISON + 3508 033203 241 06 0 00 777772 ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + 3509 033204 201 10 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3510 033205 474 00 0 00 000000 SETO ;SETUP DEST WORD (AC0) + 3511 033206 136 10 0 00 000011 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3512 033207 312 00 0 00 000006 CAME ,&17 ;TEST DEST WORD + 3513 033210 012 00 0 00 012201 ER12 ,SN ;IDPB FAILED + 3514 033211 321 12 0 00 033201 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3515 + 3516 + 3517 012202 SN=SN+1 + 3518 777777 777764 ZZ=ZZ-6 + 3519 033212 505 06 0 00 777777 HRLI AC-2,-1 ;SETUP AC-2 + 3520 033213 541 06 0 00 777755 HRRI AC-2,-23 ;FOR COMPARISON + 3521 033214 241 06 0 00 777764 ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + 3522 033215 201 10 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3523 033216 474 00 0 00 000000 SETO ;SETUP DEST WORD (AC0) + 3524 033217 136 10 0 00 000011 IDPB AC,&17 ;INC AND DEPOSIT BYTE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 42-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0098 + + 3525 033220 312 00 0 00 000006 CAME ,&17 ;TEST DEST WORD + 3526 033221 012 00 0 00 012202 ER12 ,SN ;IDPB FAILED + 3527 033222 321 12 0 00 033212 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3528 + 3529 + 3530 012203 SN=SN+1 + 3531 777777 777756 ZZ=ZZ-6 + 3532 033223 505 06 0 00 777777 HRLI AC-2,-1 ;SETUP AC-2 + 3533 033224 541 06 0 00 777755 HRRI AC-2,-23 ;FOR COMPARISON + 3534 033225 241 06 0 00 777756 ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + 3535 033226 201 10 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3536 033227 474 00 0 00 000000 SETO ;SETUP DEST WORD (AC0) + 3537 033230 136 10 0 00 000011 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3538 033231 312 00 0 00 000006 CAME ,&17 ;TEST DEST WORD + 3539 033232 012 00 0 00 012203 ER12 ,SN ;IDPB FAILED + 3540 033233 321 12 0 00 033223 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3541 + 3542 + 3543 012204 SN=SN+1 + 3544 777777 777750 ZZ=ZZ-6 + 3545 033234 505 06 0 00 777777 HRLI AC-2,-1 ;SETUP AC-2 + 3546 033235 541 06 0 00 777755 HRRI AC-2,-23 ;FOR COMPARISON + 3547 033236 241 06 0 00 777750 ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + 3548 033237 201 10 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3549 033240 474 00 0 00 000000 SETO ;SETUP DEST WORD (AC0) + 3550 033241 136 10 0 00 000011 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3551 033242 312 00 0 00 000006 CAME ,&17 ;TEST DEST WORD + 3552 033243 012 00 0 00 012204 ER12 ,SN ;IDPB FAILED + 3553 033244 321 12 0 00 033234 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3554 + 3555 + 3556 012205 SN=SN+1 + 3557 777777 777742 ZZ=ZZ-6 + 3558 033245 505 06 0 00 777777 HRLI AC-2,-1 ;SETUP AC-2 + 3559 033246 541 06 0 00 777755 HRRI AC-2,-23 ;FOR COMPARISON + 3560 033247 241 06 0 00 777742 ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + 3561 033250 201 10 0 00 000055 MOVEI AC,55 ;SETUP BYTE WORD + 3562 033251 474 00 0 00 000000 SETO ;SETUP DEST WORD (AC0) + 3563 033252 136 10 0 00 000011 IDPB AC,&17 ;INC AND DEPOSIT BYTE + 3564 033253 312 00 0 00 000006 CAME ,&17 ;TEST DEST WORD + 3565 033254 012 00 0 00 012205 ER12 ,SN ;IDPB FAILED + 3566 033255 321 12 0 00 033245 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH + 3567 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 43 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0099 + + 3568 ;INST-LDB-SPECIAL CASE-S GREATER THAN 44 + 3569 ;P FIELD=7 + 3570 ;S FIELD=60,40 + 3571 ;VERIFY THAT THE BYTE PROCESSED IS, AT MOST, 44 BITS IF S GREATER THAN 44 + 3572 + 3573 000013 AC=13 + 3574 SAVEAC (1,1)^ + 3575 033256 201 15 0 00 033256 MOVEI AC+2,. ;SAVE TEST PC + 3576 033257 202 15 0 00 030051 MOVEM AC+2,TESTPC + 3577 033260 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3578 033261 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3579 + 3580 012210 SN=12210 + 3581 100000 XX=100000 + 3582 + 3583 ;TEST LDB + 3584 G12210: REPEAT 2,< + 3585 SN=SN+1 + 3586 XX=XX-2000 + 3587 SETOB 0,2 + 3588 MOVE 1,[525252,,525377] ;SETUP BYTE WORD + 3589 SETZM AC ;CLEAR DEST WORD + 3590 MOVE AC+1,[XX,,1] ;SETUP POINTER + 3591 LDB AC,&17 ;LOAD BYTE + 3592 CAME AC,[002525,,252525] ;TEST DEST WORD + 3593 ER3 AC,SN ;LDB FAILED + 3594 CAME AC+1,[XX,,1] ;CHECK POINTER + 3595 ER4 AC+1,SN ;POINTER WAS MODIFIED + 3596 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 3597 > + 3598 + 3599 012211 SN=SN+1 + 3600 076000 XX=XX-2000 + 3601 033262 477 00 0 00 000002 SETOB 0,2 + 3602 033263 200 01 0 00 040722 MOVE 1,[525252,,525377] ;SETUP BYTE WORD + 3603 033264 402 00 0 00 000013 SETZM AC ;CLEAR DEST WORD + 3604 033265 200 14 0 00 040723 MOVE AC+1,[XX,,1] ;SETUP POINTER + 3605 033266 135 13 0 00 000014 LDB AC,&17 ;LOAD BYTE + 3606 033267 312 13 0 00 040724 CAME AC,[002525,,252525] ;TEST DEST WORD + 3607 033270 003 13 0 00 012211 ER3 AC,SN ;LDB FAILED + 3608 033271 312 14 0 00 040723 CAME AC+1,[XX,,1] ;CHECK POINTER + 3609 033272 004 14 0 00 012211 ER4 AC+1,SN ;POINTER WAS MODIFIED + 3610 033273 321 15 0 00 033262 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 3611 + 3612 + 3613 012212 SN=SN+1 + 3614 074000 XX=XX-2000 + 3615 033274 477 00 0 00 000002 SETOB 0,2 + 3616 033275 200 01 0 00 040722 MOVE 1,[525252,,525377] ;SETUP BYTE WORD + 3617 033276 402 00 0 00 000013 SETZM AC ;CLEAR DEST WORD + 3618 033277 200 14 0 00 040725 MOVE AC+1,[XX,,1] ;SETUP POINTER + 3619 033300 135 13 0 00 000014 LDB AC,&17 ;LOAD BYTE + 3620 033301 312 13 0 00 040724 CAME AC,[002525,,252525] ;TEST DEST WORD + 3621 033302 003 13 0 00 012212 ER3 AC,SN ;LDB FAILED + 3622 033303 312 14 0 00 040725 CAME AC+1,[XX,,1] ;CHECK POINTER +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 43-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0100 + + 3623 033304 004 14 0 00 012212 ER4 AC+1,SN ;POINTER WAS MODIFIED + 3624 033305 321 15 0 00 033274 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 3625 + 3626 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 43-2 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0101 + + 3627 ;INST-DPB-SPECIAL CASE-S GREATER THAN 44 + 3628 ;P FIELD=7 + 3629 ;S FIELD=60,40 + 3630 ;VERIFY THAT THE BYTE PROCESSED IS, AT MOST, 44 BITS IF S GREATER THAN 44 + 3631 + 3632 012220 SN=12220 + 3633 100000 XX=100000 + 3634 + 3635 ;TEST DPB + 3636 G12220: REPEAT 2,< + 3637 SN=SN+1 + 3638 XX=XX-2000 + 3639 SETOB 0,2 + 3640 MOVE 1,[707070,,707070] ;SETUP DEST WORD + 3641 MOVE AC,[323232,,232323] ;SETUP BYTE WORD + 3642 MOVE AC+1,[XX,,1] ;SETUP POINTER + 3643 DPB AC,&17 ;DEPOSIT BYTE + 3644 MOVEI AC-2,[ASCIZ/C(C(E)-1) FAILED/] + 3645 MOVE AC-2,SPDES ;FAILURE DESCRIPTOR + 3646 CAME 0,[-1,,-1] ;CHECK DEST WORD -1 + 3647 ER2 0,SN ;DPB FAILED + 3648 CAME 1,[646446,,464670] ;CHECK DEST WORD + 3649 ER12 1,SN ;DPB FAILED + 3650 MOVEI AC-2,[ASCIZ/C(C(E)+1) FAILED/] + 3651 MOVEM AC-2,SPDES ;FAILURE DSCRIPTOR + 3652 CAME 2,[-1,,-1] ;CHECK DEST WORD +1 + 3653 ER2 2,SN ;DPB FAILED + 3654 JUMPL AC+2,.-^D15 ;LOOP ON ERROR SWITCH + 3655 > + 3656 + 3657 012221 SN=SN+1 + 3658 076000 XX=XX-2000 + 3659 033306 477 00 0 00 000002 SETOB 0,2 + 3660 033307 200 01 0 00 040726 MOVE 1,[707070,,707070] ;SETUP DEST WORD + 3661 033310 200 13 0 00 040727 MOVE AC,[323232,,232323] ;SETUP BYTE WORD + 3662 033311 200 14 0 00 040723 MOVE AC+1,[XX,,1] ;SETUP POINTER + 3663 033312 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE + 3664 033313 201 11 0 00 040730 MOVEI AC-2,[ASCIZ/C(C(E)-1) FAILED/] + 3665 033314 200 11 0 00 040646 MOVE AC-2,SPDES ;FAILURE DESCRIPTOR + 3666 033315 312 00 0 00 040734 CAME 0,[-1,,-1] ;CHECK DEST WORD -1 + 3667 033316 002 00 0 00 012221 ER2 0,SN ;DPB FAILED + 3668 033317 312 01 0 00 040735 CAME 1,[646446,,464670] ;CHECK DEST WORD + 3669 033320 012 01 0 00 012221 ER12 1,SN ;DPB FAILED + 3670 033321 201 11 0 00 040736 MOVEI AC-2,[ASCIZ/C(C(E)+1) FAILED/] + 3671 033322 202 11 0 00 040646 MOVEM AC-2,SPDES ;FAILURE DSCRIPTOR + 3672 033323 312 02 0 00 040734 CAME 2,[-1,,-1] ;CHECK DEST WORD +1 + 3673 033324 002 02 0 00 012221 ER2 2,SN ;DPB FAILED + 3674 033325 321 15 0 00 033306 JUMPL AC+2,.-^D15 ;LOOP ON ERROR SWITCH + 3675 + 3676 + 3677 012222 SN=SN+1 + 3678 074000 XX=XX-2000 + 3679 033326 477 00 0 00 000002 SETOB 0,2 + 3680 033327 200 01 0 00 040726 MOVE 1,[707070,,707070] ;SETUP DEST WORD + 3681 033330 200 13 0 00 040727 MOVE AC,[323232,,232323] ;SETUP BYTE WORD +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 43-3 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0102 + + 3682 033331 200 14 0 00 040725 MOVE AC+1,[XX,,1] ;SETUP POINTER + 3683 033332 137 13 0 00 000014 DPB AC,&17 ;DEPOSIT BYTE + 3684 033333 201 11 0 00 040730 MOVEI AC-2,[ASCIZ/C(C(E)-1) FAILED/] + 3685 033334 200 11 0 00 040646 MOVE AC-2,SPDES ;FAILURE DESCRIPTOR + 3686 033335 312 00 0 00 040734 CAME 0,[-1,,-1] ;CHECK DEST WORD -1 + 3687 033336 002 00 0 00 012222 ER2 0,SN ;DPB FAILED + 3688 033337 312 01 0 00 040735 CAME 1,[646446,,464670] ;CHECK DEST WORD + 3689 033340 012 01 0 00 012222 ER12 1,SN ;DPB FAILED + 3690 033341 201 11 0 00 040736 MOVEI AC-2,[ASCIZ/C(C(E)+1) FAILED/] + 3691 033342 202 11 0 00 040646 MOVEM AC-2,SPDES ;FAILURE DSCRIPTOR + 3692 033343 312 02 0 00 040734 CAME 2,[-1,,-1] ;CHECK DEST WORD +1 + 3693 033344 002 02 0 00 012222 ER2 2,SN ;DPB FAILED + 3694 033345 321 15 0 00 033326 JUMPL AC+2,.-^D15 ;LOOP ON ERROR SWITCH + 3695 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 44 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0103 + + 3696 ;VERIFY THAT THE POINTER IS NOT INCREMENTED BY "ILDB" OR "IDPB" IF 'BIS' + 3697 ;IS SET; AND THAT THE SECOND PART OF THE BYTE INSTRUCTION CLEARS 'BIS' + 3698 + 3699 000013 AC=13 + 3700 SAVEAC (1,1)^ + 3701 033346 201 15 0 00 033346 MOVEI AC+2,. ;SAVE TEST PC + 3702 033347 202 15 0 00 030051 MOVEM AC+2,TESTPC + 3703 033350 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3704 033351 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3705 + 3706 033352 200 14 0 00 040742 G12300: MOVE AC+1,[220600,,AC-1] ;SETUP BYTE POINTER + 3707 033353 200 13 0 00 040726 MOVE AC,[707070,,707070] ;SETUP AC + 3708 033354 200 12 0 00 040743 MOVE AC-1,[112233,,445566] ;SETUP BYTE WORD + 3709 033355 254 02 1 00 040744 JRSTF @[BIS,,.+1] ;SET 'BIS' FLAG + 3710 033356 134 13 0 00 000014 ILDB AC,AC+1 + 3711 033357 265 11 0 00 033360 JSP AC-2,.+1 ;SAVE FLAGS + 3712 033360 302 13 0 00 000033 CAIE AC,33 ;TEST DEST WORD + 3713 033361 003 13 0 00 012301 ER3 AC,12301 ;INCORRECT BYTE WAS LOADED + 3714 033362 312 14 0 00 040742 CAME AC+1,[220600,,AC-1] ;TEST POINTER + 3715 033363 004 14 0 00 012301 ER4 AC+1,12301 ;POINTER WAS INCREMENTED + 3716 033364 603 11 0 00 020000 TLNE AC-2,BIS ;EXAMINE 'BIS' + 3717 033365 013 11 0 00 012301 ER13 AC-2,12301 ;'BIS' WAS NOT CLEARED + 3718 033366 322 15 0 00 033352 JUMPE AC+2,G12300 ;LOOP ON ERROR SWITCH + 3719 + 3720 033367 200 14 0 00 040742 G12400: MOVE AC+1,[220600,,AC-1] ;SET-UP BYTE POINTER + 3721 033370 200 13 0 00 040726 MOVE AC,[707070,,707070] ;SET-UP AC + 3722 033371 200 12 0 00 040743 MOVE AC-1,[112233,,445566] ;SETUP BYTE WORD + 3723 033372 254 02 1 00 040745 JRSTF @[BIS,,.+1] ;SET 'BIS' FLAG + 3724 033373 136 13 0 00 000014 IDPB AC,AC+1 + 3725 033374 265 11 0 00 033375 JSP AC-2,.+1 ;SAVE FLAGS + 3726 033375 312 14 0 00 040742 CAME AC+1,[220600,,AC-1] ;TEST POINTER + 3727 033376 004 14 0 00 012401 ER4 AC+1,12401 ;POINTER WAS INCREMENTED + 3728 033377 312 12 0 00 040746 CAME AC-1,[112270,,445566] ;TEST BYTE WORD + 3729 033400 012 12 0 00 012401 ER12 AC-1,12401 ;INCORRECT BYTE WAS DEPOSITED + 3730 033401 603 11 0 00 020000 TLNE AC-2,BIS ;EXAMINE 'BIS' + 3731 033402 013 11 0 00 012401 ER13 AC-2,12401 ;'BIS' WAS NOT CLEARED + 3732 033403 321 15 0 00 033367 JUMPL AC+2,G12400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 47 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0104 + + 3733 ;MSCL BYTE TESTS - IBP + 3734 ;VERIFY THAT IBP WORKS WHEN THE POINTER IS IN AN AC + 3735 + 3736 000007 AC=7 + 3737 SAVEAC (1,1)^ + 3738 033404 201 11 0 00 033404 MOVEI AC+2,. ;SAVE TEST PC + 3739 033405 202 11 0 00 030051 MOVEM AC+2,TESTPC + 3740 033406 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3741 033407 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3742 033410 254 02 1 00 040747 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3743 + 3744 033411 205 05 0 00 170600 G12500: MOVSI AC-2,170600 ;SETUP POINTER + 3745 033412 205 06 0 00 110600 MOVSI AC-1,110600 ;RESULT FOR COMPARISON + 3746 033413 133 00 0 00 000005 IBP &17 ;*IBP SHOULD PLACE 110600,,0 INTO PTR + 3747 033414 312 05 0 00 000006 CAME AC-2,&17 ;IS PTR = 110600,,0 ? + 3748 033415 005 05 0 00 012501 ER5 AC-2,12501 ;POINTER FAILURE + 3749 033416 321 11 0 00 033411 JUMPL AC+2,G12500 ;LOOP ON ERROR SWITCH + 3750 + 3751 ;MSCL BYTE TESTS - IBP + 3752 ;VERIFY THAT IBP WORKS WHEN THE POINTER IS IN CORE MEMORY + 3753 + 3754 000006 AC=6 + 3755 SAVEAC (1,1)^ + 3756 033417 201 10 0 00 033417 MOVEI AC+2,. ;SAVE TEST PC + 3757 033420 202 10 0 00 030051 MOVEM AC+2,TESTPC + 3758 033421 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3759 033422 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3760 033423 254 02 1 00 040750 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3761 + 3762 033424 205 04 0 00 170600 G12510: MOVSI AC-2,170600 + 3763 033425 202 04 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 3764 033426 205 04 0 00 110600 MOVSI AC-2,110600 ;RESULT FOR COMPARISON + 3765 033427 400 05 0 00 000000 SETZ AC-1, ;INITIALIZE FOR RESULT + 3766 033430 133 00 0 00 040136 IBP BYTBLK ;*IBP SHOULD PLACE 110600,,0 INTO PTR + 3767 033431 200 05 0 00 040136 MOVE AC-1,BYTBLK + 3768 033432 312 05 0 00 000004 CAME AC-1,&17 ;IS PTR = 110600,,0 ? + 3769 033433 005 05 0 00 012511 ER5 AC-1,12511 ;POINTER FAILURE + 3770 033434 321 10 0 00 033424 JUMPL AC+2,G12510 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 48 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0105 + + 3771 ;MSCL BYTE TESTS - DPB + 3772 ;VERIFY THAT DPB WORKS WHEN BOTH POINTER AND BYTE + 3773 ;ARE IN AC'S + 3774 + 3775 000005 AC=5 + 3776 SAVEAC (1,1)^ + 3777 033435 201 07 0 00 033435 MOVEI AC+2,. ;SAVE TEST PC + 3778 033436 202 07 0 00 030051 MOVEM AC+2,TESTPC + 3779 033437 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3780 033440 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3781 033441 254 02 1 00 040751 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3782 + 3783 033442 205 03 0 00 170600 G12600: MOVSI AC-2,170600 ;SETUP POINTER + 3784 033443 541 03 0 00 000001 HRRI AC-2,&17 + 3785 033444 200 02 0 00 000003 MOVE AC-3,&17 ;POINTER FOR COMPARISON + 3786 033445 200 01 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 3787 033446 201 05 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3788 033447 200 04 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3789 033450 137 05 0 00 000003 DPB AC,&17 ;DPB SHOULD PLACE 230702.103700 INTO BYTE WORD + 3790 033451 312 03 0 00 000002 CAME AC-2,&17 ;WAS POINTER MODIFIED ? + 3791 033452 005 03 0 00 012601 ER5 AC-2,12601 ;FAILURE - POINTER WAS MODIFIED + 3792 033453 302 05 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED? + 3793 033454 003 05 0 00 012602 ER3 AC,12602 ;FAILURE - AC WAS MODIFIED + 3794 033455 312 01 0 00 000004 CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + 3795 033456 012 01 0 00 012603 ER12 AC-4,12603 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3796 033457 321 07 0 00 033442 JUMPL AC+2,G12600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 49 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0106 + + 3797 ;MSCL BYTE TESTS - DPB + 3798 ;VERIFY THAT DPB WORKS WHEN POINTER IS IN AN AC AND + 3799 ;BYTE IS IN CORE MEMORY + 3800 + 3801 000014 AC=14 + 3802 SAVEAC (1,1)^ + 3803 033460 201 16 0 00 033460 MOVEI AC+2,. ;SAVE TEST PC + 3804 033461 202 16 0 00 030051 MOVEM AC+2,TESTPC + 3805 033462 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3806 033463 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3807 033464 254 02 1 00 040754 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3808 + 3809 033465 205 12 0 00 170600 G12610: MOVSI AC-2,170600 ;SETUP POINTER + 3810 033466 541 12 0 00 040136 HRRI AC-2,BYTBLK + 3811 033467 200 11 0 00 000012 MOVE AC-3,&17 ;POINTER FOR COMPARISON + 3812 033470 200 14 0 00 040752 MOVE AC,[230703,,603700] ;SETUP BYTE WORD + 3813 033471 202 14 0 00 040136 MOVEM AC,BYTBLK + 3814 033472 200 13 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3815 033473 201 14 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3816 033474 137 14 0 00 000012 DPB AC,&17 ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + 3817 033475 312 12 0 00 000011 CAME AC-2,&17 ;WAS POINTER MODIFIED? + 3818 033476 005 12 0 00 012611 ER5 AC-2,12611 ;FAILURE - POINTER WAS MODIFIED + 3819 033477 302 14 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED? + 3820 033500 003 14 0 00 012612 ER3 AC,12612 ;FAILURE - AC WAS MODIFIED + 3821 033501 200 07 0 00 040136 MOVE AC-5,BYTBLK + 3822 033502 312 13 0 00 040136 CAME AC-1,BYTBLK ;WAS BYTE DEPOSITED CORRECTLY? + 3823 033503 012 07 0 00 012613 ER12 AC-5,12613 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3824 033504 321 16 0 00 033465 JUMPL AC+2,G12610 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 50 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0107 + + 3825 ;MSCL BYTE TESTS - DPB + 3826 ;VERIFY THAT DPB WORKS WHEN BYTE IS IN AN AC AND + 3827 ;POINTER IS IN CORE MEMORY + 3828 + 3829 000013 AC=13 + 3830 SAVEAC (1,1)^ + 3831 033505 201 15 0 00 033505 MOVEI AC+2,. ;SAVE TEST PC + 3832 033506 202 15 0 00 030051 MOVEM AC+2,TESTPC + 3833 033507 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3834 033510 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3835 033511 254 02 1 00 040755 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3836 + 3837 033512 205 11 0 00 170600 G12620: MOVSI AC-2,170600 + 3838 033513 541 11 0 00 000007 HRRI AC-2,&17 ;POINTER FOR COMPARISON + 3839 033514 202 11 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 3840 033515 200 07 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 3841 033516 200 12 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3842 033517 201 13 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3843 033520 137 13 0 00 040136 DPB AC,BYTBLK ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + 3844 033521 200 10 0 00 040136 MOVE AC-3,BYTBLK + 3845 033522 312 11 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + 3846 033523 005 10 0 00 012621 ER5 AC-3,12621 ;FAILURE - POINTER WAS MODIFIED + 3847 033524 302 13 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED? + 3848 033525 003 13 0 00 012622 ER3 AC,12622 ;FAILURE - AC WAS MODIFIED + 3849 033526 312 07 0 00 000012 CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + 3850 033527 012 07 0 00 012523 ER12 AC-4,12523 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3851 033530 321 05 0 00 033512 JUMPL AC+12,G12620 ;LOOP ON ERROR SWITCH + 3852 + 3853 ;MSCL BYTE TESTS - DPB + 3854 ;VERIFY THAT DPB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + 3855 + 3856 000012 AC=12 + 3857 SAVEAC (1,1)^ + 3858 033531 201 14 0 00 033531 MOVEI AC+2,. ;SAVE TEST PC + 3859 033532 202 14 0 00 030051 MOVEM AC+2,TESTPC + 3860 033533 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3861 033534 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3862 033535 254 02 1 00 040756 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3863 + 3864 033536 205 10 0 00 170600 G12630: MOVSI AC-2,170600 + 3865 033537 541 10 0 00 040141 HRRI AC-2,BYTBLK+3 ;POINTER FOR COMPARISON + 3866 033540 202 10 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 3867 033541 200 06 0 00 040752 MOVE AC-4,[230703,,603700] + 3868 033542 202 06 0 00 040141 MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + 3869 033543 200 11 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3870 033544 201 12 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3871 033545 137 12 0 00 040136 DPB AC,BYTBLK ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + 3872 033546 200 06 0 00 040136 MOVE AC-4,BYTBLK + 3873 033547 312 10 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + 3874 033550 005 06 0 00 012631 ER5 AC-4,12631 ;FAILURE - POINTER WAS MODIFIED + 3875 033551 200 07 0 00 040141 MOVE AC-3,BYTBLK+3 + 3876 033552 312 11 0 00 040141 CAME AC-1,BYTBLK+3 ;WAS BYTE DEPOSITED CORRECTLY? + 3877 033553 012 07 0 00 012632 ER12 AC-3,12632 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3878 033554 302 12 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED? + 3879 033555 003 12 0 00 012633 ER3 AC,12633 ;FAILURE - AC WAS MODIFIED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 50-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0108 + + 3880 033556 321 14 0 00 033536 JUMPL AC+2,G12630 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 51 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0109 + + 3881 ;MSCL BYTE TESTS - IDPB + 3882 ;VERIFY THAT IDPB WORKS WHEN BOTH POINTER AND BYTE + 3883 ;ARE IN AC'S + 3884 + 3885 000011 AC=11 + 3886 SAVEAC (1,1)^ + 3887 033557 201 13 0 00 033557 MOVEI AC+2,. ;SAVE TEST PC + 3888 033560 202 13 0 00 030051 MOVEM AC+2,TESTPC + 3889 033561 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3890 033562 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3891 033563 254 02 1 00 040757 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3892 + 3893 033564 205 07 0 00 250600 G12700: MOVSI AC-2,250600 ;SETUP POINTER + 3894 033565 541 07 0 00 000005 HRRI AC-2,&17 + 3895 033566 200 06 0 00 000007 MOVE AC-3,&17 + 3896 033567 505 06 0 00 170600 HRLI AC-3,170600 ;POINTER FOR COMPARISON + 3897 033570 200 05 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 3898 033571 201 11 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3899 033572 200 10 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3900 033573 136 11 0 00 000007 IDPB AC,&17 ;IDPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + 3901 033574 312 07 0 00 000006 CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY + 3902 033575 005 07 0 00 012701 ER5 AC-2,12701 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + 3903 033576 302 11 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED + 3904 033577 003 11 0 00 012700 ER3 AC,12700 ;FAILURE - AC WAS MODIFIED + 3905 033600 312 05 0 00 000010 CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + 3906 033601 012 05 0 00 012703 ER12 AC-4,12703 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3907 033602 321 13 0 00 033564 JUMPL AC+2,G12700 ;LOOP ON ERROR SWITCH + 3908 + 3909 ;MSCL BYTE TESTS - IDPB + 3910 ;VERIFY THAT DPB WORKS WHEN POINTER IS IN AN AC AND + 3911 ;BYTE IS IN CORE MEMORY + 3912 + 3913 000010 AC=10 + 3914 SAVEAC (1,1)^ + 3915 033603 201 12 0 00 033603 MOVEI AC+2,. ;SAVE TEST PC + 3916 033604 202 12 0 00 030051 MOVEM AC+2,TESTPC + 3917 033605 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3918 033606 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3919 033607 254 02 1 00 040760 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3920 + 3921 033610 205 06 0 00 250600 G12710: MOVSI AC-2,250600 ;SETUP POINTER + 3922 033611 541 06 0 00 040136 HRRI AC-2,BYTBLK + 3923 033612 200 05 0 00 000006 MOVE AC-3,&17 + 3924 033613 505 05 0 00 170600 HRLI AC-3,170600 ;POINTER FOR COMPARISON + 3925 033614 200 10 0 00 040752 MOVE AC,[230703,,603700] ;SETUP BYTE WORD + 3926 033615 202 10 0 00 040136 MOVEM AC,BYTBLK + 3927 033616 200 07 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3928 033617 201 10 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3929 033620 136 10 0 00 000006 IDPB AC,&17 ;IDPB SHOULD PLACE 230702,,103700 INTO + 3930 ;BYTE WORD AND INCREMENT POINTER + 3931 033621 312 06 0 00 000005 CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTED + 3932 033622 012 06 0 00 012713 ER12 AC-2,12713 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3933 033623 321 12 0 00 033610 JUMPL AC+2,G12710 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 52 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0110 + + 3934 ;MSCL BYTE TESTS - IDPB + 3935 ;VERIFY THAT IDPB WORKS WHEN BYTE IS IN AN AC AND + 3936 ;POINTER IS IN CORE MEMORY + 3937 + 3938 000007 AC=7 + 3939 SAVEAC (1,1)^ + 3940 033624 201 11 0 00 033624 MOVEI AC+2,. ;SAVE TEST PC + 3941 033625 202 11 0 00 030051 MOVEM AC+2,TESTPC + 3942 033626 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3943 033627 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3944 + 3945 033630 254 02 1 00 040761 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3946 + 3947 033631 205 05 0 00 250600 G12720: MOVSI AC-2,250600 + 3948 033632 541 05 0 00 000003 HRRI AC-2,&17 + 3949 033633 202 05 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 3950 033634 505 05 0 00 170600 HRLI AC-2,170600 ;POINTER FOR COMPARISON + 3951 033635 200 03 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 3952 033636 200 06 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3953 033637 201 07 0 00 654321 MOVEI AC,654321 ;;SETUP AC + 3954 033640 136 07 0 00 040136 IDPB AC,BYTBLK ;IDPB SHOULD PLACE 230702,,103700 INTO + 3955 ;BYTE WORD AND INCREMENT POINTER + 3956 033641 200 04 0 00 040136 MOVE AC-3,BYTBLK + 3957 033642 312 05 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY + 3958 033643 005 04 0 00 012721 ER5 AC-3,12721 ;FAILURE - POINTER WAS NOT INCREMENTED CORRECTLY + 3959 033644 302 07 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED? + 3960 033645 003 07 0 00 012722 ER3 AC,12722 ;FAILURE - AC WAS MODIFIED + 3961 033646 312 03 0 00 000006 CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + 3962 033647 012 03 0 00 012723 ER12 AC-4,12723 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3963 033650 321 11 0 00 033631 JUMPL AC+2,G12720 ;LOOP ON ERROR SWITCH + 3964 + 3965 ;MSCL BYTE TESTS - IDPB + 3966 ;VERIFY THAT IDPB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + 3967 + 3968 000006 AC=6 + 3969 SAVEAC (1,1)^ + 3970 033651 201 10 0 00 033651 MOVEI AC+2,. ;SAVE TEST PC + 3971 033652 202 10 0 00 030051 MOVEM AC+2,TESTPC + 3972 033653 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3973 033654 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3974 033655 254 02 1 00 040762 JRSTF @[.+1] ;CLEAR ALL FLAGS + 3975 + 3976 033656 205 04 0 00 250600 G12730: MOVSI AC-2,250600 + 3977 033657 541 04 0 00 040141 HRRI AC-2,BYTBLK+3 + 3978 033660 202 04 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 3979 033661 505 04 0 00 170600 HRLI AC-2,170600 ;POINTER FOR COMPARISON + 3980 033662 200 02 0 00 040752 MOVE AC-4,[230703,,603700] + 3981 033663 202 02 0 00 040141 MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + 3982 033664 200 05 0 00 040753 MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + 3983 033665 201 06 0 00 654321 MOVEI AC,654321 ;SETUP AC + 3984 033666 136 06 0 00 040136 IDPB AC,BYTBLK ;IDPB SHOULD PLACE 230702,,103700 INTO + 3985 ;BYTE WORD AND INCREMENT POINTER + 3986 033667 200 02 0 00 040136 MOVE AC-4,BYTBLK + 3987 033670 312 04 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + 3988 033671 005 02 0 00 012731 ER5 AC-4,12731 ;FAILURE - POINTER WAS MODIFIED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 52-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0111 + + 3989 033672 200 03 0 00 040141 MOVE AC-3,BYTBLK+3 + 3990 033673 312 05 0 00 040141 CAME AC-1,BYTBLK+3 ;WAS BYTE DEPOSITED CORRECTLY + 3991 033674 012 03 0 00 012732 ER12 AC-3,12732 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 3992 033675 302 06 0 00 654321 CAIE AC,654321 ;WAS AC MODIFIED + 3993 033676 003 06 0 00 012733 ER3 AC,12733 ;FAILURE - AC WAS MODIFIED + 3994 033677 321 10 0 00 033656 JUMPL AC+2,G12730 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 53 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0112 + + 3995 ;MSCL BYTE TESTS - LDB + 3996 ;VERIFY THAT LDB WORKS WHEN BOTH POINTER AND BYTE + 3997 ;ARE IN AC'S + 3998 + 3999 000005 AC=5 + 4000 SAVEAC (1,1)^ + 4001 033700 201 07 0 00 033700 MOVEI AC+2,. ;SAVE TEST PC + 4002 033701 202 07 0 00 030051 MOVEM AC+2,TESTPC + 4003 033702 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4004 033703 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4005 033704 254 02 1 00 040763 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4006 + 4007 033705 205 03 0 00 170600 G13000: MOVSI AC-2,170600 ;SETUP POINTER + 4008 033706 541 03 0 00 000001 HRRI AC-2,&17 + 4009 033707 200 02 0 00 000003 MOVE AC-3,&17 ;POINTER FOR COMPARISON + 4010 033710 200 01 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 4011 033711 400 05 0 00 000000 SETZ AC, ;SETUP AC + 4012 033712 200 04 0 00 000001 MOVE AC-1,&17 ;BYTE WORD FOR COMPARISON + 4013 033713 135 05 0 00 000003 LDB AC,&17 ;LDB SHOULD PLACE 0,,36 INTO THE AC + 4014 033714 312 03 0 00 000002 CAME AC-2,&17 ;WAS POINTER MODIFIED? + 4015 033715 005 03 0 00 013001 ER5 AC-2,13001 ;FAILURE - POINTER WAS MODIFIED + 4016 033716 302 05 0 00 000036 CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + 4017 033717 003 05 0 00 013002 ER3 AC,13002 ;FAILURE - BYTE NOT LOADED CORRECTLY. + 4018 033720 312 01 0 00 000004 CAME AC-4,&17 ;WAS BYTE WORD MODIFIED + 4019 033721 012 01 0 00 013003 ER12 AC-4,13003 ;FAILURE - BYTE WORD WAS MODIFIED + 4020 033722 321 07 0 00 033705 JUMPL AC+2,G13000 ;LOOP ON ERROR SWITCH + 4021 + 4022 ;MSCL BYTE TESTS - LDB + 4023 ;VERIFY THAT LDB WORKS WHEN POINTER IS IN AN AC AND + 4024 ;BYTE IS IN CORE MEMORY + 4025 + 4026 000014 AC=14 + 4027 SAVEAC (1,1)^ + 4028 033723 201 16 0 00 033723 MOVEI AC+2,. ;SAVE TEST PC + 4029 033724 202 16 0 00 030051 MOVEM AC+2,TESTPC + 4030 033725 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4031 033726 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4032 033727 254 02 1 00 040764 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4033 + 4034 033730 205 12 0 00 170600 G13010: MOVSI AC-2,170600 ;SETUP POINTER + 4035 033731 541 12 0 00 040136 HRRI AC-2,BYTBLK + 4036 033732 200 11 0 00 000012 MOVE AC-3,&17 ;POINTER FOR COMPARISON + 4037 033733 200 13 0 00 040752 MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + 4038 033734 202 13 0 00 040136 MOVEM AC-1,BYTBLK ;SETUP BYTE WORD + 4039 033735 400 14 0 00 000000 SETZ AC, ;SETUP AC + 4040 033736 135 14 0 00 000012 LDB AC,&17 ;LDB SHOULD PLACE 0,,36 INTO THE AC + 4041 033737 312 12 0 00 000011 CAME AC-2,&17 ;WAS POINTER MODIFIED? + 4042 033740 005 12 0 00 013011 ER5 AC-2,13011 ;FAILURE - POINTER WAS MODIFIED + 4043 033741 302 14 0 00 000036 CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + 4044 033742 003 14 0 00 013012 ER3 AC,13012 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4045 033743 200 07 0 00 040136 MOVE AC-5,BYTBLK + 4046 033744 312 13 0 00 040136 CAME AC-1,BYTBLK ;WAS BYTE WORD MODIFIED? + 4047 033745 012 07 0 00 013013 ER12 AC-5,13013 ;FAILURE - BYTE WORD WAS MODIFIED + 4048 033746 321 16 0 00 033730 JUMPL AC+2,G13010 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 54 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0113 + + 4049 ;MSCL BYTE TESTS - LDB + 4050 ;VERIFY THAT LDB WORKS WHEN BYTE IS IN AN AC AND + 4051 ;POINTER IS IN CORE MEMORY. + 4052 + 4053 000013 AC=13 + 4054 SAVEAC (1,1)^ + 4055 033747 201 15 0 00 033747 MOVEI AC+2,. ;SAVE TEST PC + 4056 033750 202 15 0 00 030051 MOVEM AC+2,TESTPC + 4057 033751 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4058 033752 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4059 033753 254 02 1 00 040765 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4060 + 4061 033754 205 11 0 00 170600 G13020: MOVSI AC-2,170600 + 4062 033755 541 11 0 00 000007 HRRI AC-2,&17 ;POINTER FOR COMPARISON + 4063 033756 202 11 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 4064 033757 200 07 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 4065 033760 200 12 0 00 040752 MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + 4066 033761 400 13 0 00 000000 SETZ AC, ;SETUP AC + 4067 033762 135 13 0 00 040136 LDB AC,BYTBLK ;LDB SHOULD PLACE 20,,36 INTO THE AC + 4068 033763 200 10 0 00 040136 MOVE AC-3,BYTBLK + 4069 033764 312 11 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + 4070 033765 005 10 0 00 013021 ER5 AC-3,13021 ;FAILURE - POINTER WAS MODIFIED + 4071 033766 302 13 0 00 000036 CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + 4072 033767 003 13 0 00 013022 ER3 AC,13022 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4073 033770 312 07 0 00 000012 CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + 4074 033771 012 07 0 00 013023 ER12 AC-4,13023 ;FAILURE - BYTE WORD WAS MODIFIED + 4075 033772 321 15 0 00 033754 JUMPL AC+2,G13020 ;LOOP ON ERROR SWITCH + 4076 + 4077 ;MSCL BYTE TESTS - LDB + 4078 ;VERIFY THAT LDB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY. + 4079 + 4080 000012 AC=12 + 4081 SAVEAC (1,1)^ + 4082 033773 201 14 0 00 033773 MOVEI AC+2,. ;SAVE TEST PC + 4083 033774 202 14 0 00 030051 MOVEM AC+2,TESTPC + 4084 033775 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4085 033776 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4086 033777 254 02 1 00 040766 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4087 + 4088 034000 205 10 0 00 170600 G13030: MOVSI AC-2,170600 + 4089 034001 541 10 0 00 040141 HRRI AC-2,BYTBLK+3 ;POINTER FOR COMPARISON + 4090 034002 202 10 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 4091 034003 200 06 0 00 040752 MOVE AC-4,[230703,,603700] + 4092 034004 202 06 0 00 040141 MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + 4093 034005 200 11 0 00 040752 MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + 4094 034006 400 12 0 00 000000 SETZ AC, ;SETUP AC + 4095 034007 135 12 0 00 040136 LDB AC,BYTBLK ;LDB SHOULD PLACE 20,,36 INTO THE AC + 4096 034010 200 06 0 00 040136 MOVE AC-4,BYTBLK + 4097 034011 312 10 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + 4098 034012 005 06 0 00 013031 ER5 AC-4,13031 ;FAILURE - POINTER WAS MODIFIED + 4099 034013 200 07 0 00 040141 MOVE AC-3,BYTBLK+3 + 4100 034014 312 11 0 00 040141 CAME AC-1,BYTBLK+3 ;WAS BYTE WORD MODIFIED? + 4101 034015 012 07 0 00 013032 ER12 AC-3,13032 ;FAILURE - BYTE WORD WAS MODIFIED + 4102 034016 302 12 0 00 000036 CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + 4103 034017 003 12 0 00 013033 ER3 AC,13033 ;FAILURE - BYTE NOT LOADED CORRECTLY +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 54-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0114 + + 4104 034020 321 14 0 00 034000 JUMPL AC+2,G13030 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 55 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0115 + + 4105 ;MSCL BYTE TESTS - ILDB + 4106 ;VERIFY THAT ILDB WORKS WHEN BOTH POINTER AND BYTE + 4107 ;ARE IN AC'S. + 4108 + 4109 000011 AC=11 + 4110 SAVEAC (1,1)^ + 4111 034021 201 13 0 00 034021 MOVEI AC+2,. ;SAVE TEST PC + 4112 034022 202 13 0 00 030051 MOVEM AC+2,TESTPC + 4113 034023 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4114 034024 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4115 034025 254 02 1 00 040767 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4116 + 4117 034026 205 07 0 00 170600 G13100: MOVSI AC-2,170600 ;SETUP POINTER + 4118 034027 541 07 0 00 000005 HRRI AC-2,&17 + 4119 034030 200 06 0 00 000007 MOVE AC-3,&17 + 4120 034031 505 06 0 00 110600 HRLI AC-3,110600 ;POINTER FOR COMPARISON + 4121 034032 200 05 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 4122 034033 400 11 0 00 000000 SETZ AC, ;SETUP AC + 4123 034034 200 10 0 00 000005 MOVE AC-1,&17 ;BYTE WORD FOR COMPARISON + 4124 034035 134 11 0 00 000007 ILDB AC,&17 ;ILDB SHOULD PLACE 0,,3 INTO THE AC + 4125 ;AND INCREMENT POINTER + 4126 034036 312 07 0 00 000006 CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY? + 4127 034037 005 07 0 00 003101 ER5 AC-2,3101 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + 4128 034040 302 11 0 00 000003 CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + 4129 034041 003 11 0 00 013102 ER3 AC,13102 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4130 034042 312 05 0 00 000010 CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + 4131 034043 012 05 0 00 013103 ER12 AC-4,13103 ;FAILURE - BYTE WORD WAS MODIFIED + 4132 034044 321 13 0 00 034026 JUMPL AC+2,G13100 ;LOOP ON ERROR SWITCH + 4133 + 4134 ;MSCL BYTE TESTS - ILDB + 4135 ;VERIFY THAT ILDB WORKS WHEN POINTER IS IN AN AC AND + 4136 ;BYTE IS IN CORE MEMORY + 4137 + 4138 000010 AC=10 + 4139 SAVEAC (1,1)^ + 4140 034045 201 12 0 00 034045 MOVEI AC+2,. ;SAVE TEST PC + 4141 034046 202 12 0 00 030051 MOVEM AC+2,TESTPC + 4142 034047 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4143 034050 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4144 034051 254 02 1 00 040770 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4145 + 4146 034052 205 06 0 00 170600 G13110: MOVSI AC-2,170600 ;SETUP POINTER + 4147 034053 541 06 0 00 040136 HRRI AC-2,BYTBLK + 4148 034054 200 05 0 00 000006 MOVE AC-3,&17 + 4149 034055 505 05 0 00 110600 HRLI AC-3,110600 ;POINTER FOR COMPARISON + 4150 034056 200 07 0 00 040752 MOVE AC-1,[230703,,603700] ;BYTEWORD FOR COMPARISON + 4151 034057 202 10 0 00 040136 MOVEM AC,BYTBLK ;SETUP BYTE WORD + 4152 034060 400 10 0 00 000000 SETZ AC, ;SETUP AC + 4153 034061 134 10 0 00 000006 ILDB AC,&17 ;ILDB SHOULD PLACE 0,,3 INTO THE AC + 4154 ;AND INCREMENT POINTER + 4155 034062 312 06 0 00 000005 CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY? + 4156 034063 005 06 0 00 013111 ER5 AC-2,13111 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + 4157 034064 302 10 0 00 000003 CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + 4158 034065 003 10 0 00 013012 ER3 AC,13012 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4159 034066 200 03 0 00 040136 MOVE AC-5,BYTBLK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 55-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0116 + + 4160 034067 312 07 0 00 040136 CAME AC-1,BYTBLK ;WAS BYTE WORD MODIFIED? + 4161 034070 012 03 0 00 013113 ER12 AC-5,13113 ;FAILURE - BYTE WORD WAS MODIFIED + 4162 034071 321 12 0 00 034052 JUMPL AC+2,G13110 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 56 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0117 + + 4163 ;MSCL BYTE TESTS - ILDB + 4164 ;VERIFY THAT ILDB WORKS WHEN BYTE IS IN AN AC AND + 4165 ;POINTER IS IN CORE MEMORY + 4166 + 4167 000007 AC=7 + 4168 SAVEAC (1,1)^ + 4169 034072 201 11 0 00 034072 MOVEI AC+2,. ;SAVE TEST PC + 4170 034073 202 11 0 00 030051 MOVEM AC+2,TESTPC + 4171 034074 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4172 034075 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4173 034076 254 02 1 00 040771 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4174 + 4175 034077 205 05 0 00 170600 G13120: MOVSI AC-2,170600 + 4176 034100 541 05 0 00 000003 HRRI AC-2,&17 + 4177 034101 202 05 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 4178 034102 505 05 0 00 110600 HRLI AC-2,110600 ;POINTER FOR COMPARISON + 4179 034103 200 03 0 00 040752 MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + 4180 034104 200 06 0 00 040752 MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + 4181 034105 400 00 0 00 000007 SETZ AC ;SETUP AC + 4182 034106 134 07 0 00 040136 ILDB AC,BYTBLK ;ILDB SHOULD PLACE 0,,3 INTO THE AC + 4183 ;AND INCREMENT POINTER + 4184 034107 200 04 0 00 040136 MOVE AC-3,BYTBLK + 4185 034110 312 05 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY? + 4186 034111 005 04 0 00 013121 ER5 AC-3,13121 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + 4187 034112 302 07 0 00 000003 CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + 4188 034113 003 07 0 00 013122 ER3 AC,13122 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4189 034114 312 03 0 00 000006 CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + 4190 034115 012 03 0 00 013123 ER12 AC-4,13123 ;FAILURE - BYTE WORD WAS MODIFIED + 4191 034116 321 11 0 00 034077 JUMPL AC+2,G13120 ;LOOP ON ERROR SWITCH + 4192 + 4193 ;MSCL BYTE TESTS - ILDB + 4194 ;VERIFY THAT ILDB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + 4195 + 4196 000006 AC=6 + 4197 SAVEAC (1,1)^ + 4198 034117 201 10 0 00 034117 MOVEI AC+2,. ;SAVE TEST PC + 4199 034120 202 10 0 00 030051 MOVEM AC+2,TESTPC + 4200 034121 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4201 034122 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4202 034123 254 02 1 00 040772 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4203 + 4204 034124 205 04 0 00 170600 G13130: MOVSI AC-2,170600 + 4205 034125 541 04 0 00 040141 HRRI AC-2,BYTBLK+3 + 4206 + 4207 034126 202 04 0 00 040136 MOVEM AC-2,BYTBLK ;SETUP POINTER + 4208 034127 505 04 0 00 110600 HRLI AC-2,110600 ;POINTER FOR COMPARISON + 4209 034130 200 02 0 00 040752 MOVE AC-4,[230703,,603700] + 4210 034131 202 02 0 00 040141 MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + 4211 034132 200 05 0 00 040752 MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + 4212 034133 400 06 0 00 000000 SETZ AC, ;SETUP AC + 4213 034134 134 06 0 00 040136 ILDB AC,BYTBLK ;ILDB SHOULD PLACE 0,,3 INTO THE AC + 4214 ;AND INCREMENT THE POINTER + 4215 034135 200 02 0 00 040136 MOVE AC-4,BYTBLK + 4216 034136 312 04 0 00 040136 CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY? + 4217 034137 005 02 0 00 013131 ER5 AC-4,13131 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 56-1 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0118 + + 4218 034140 200 03 0 00 040141 MOVE AC-3,BYTBLK+3 + 4219 034141 312 05 0 00 040141 CAME AC-1,BYTBLK+3 ;WAS BYTE WORD MODIFIED? + 4220 034142 012 03 0 00 013132 ER12 AC-3,13132 ;FAILURE - BYTE WORD WAS MODIFIED + 4221 034143 302 06 0 00 000003 CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + 4222 034144 003 06 0 00 013133 ER3 AC,13133 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4223 034145 321 10 0 00 034124 JUMPL AC+2,G13130 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 57 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0119 + + 4224 ;TEST LDB WHEN SIZE OF BYTE IS ZERO BITS + 4225 ;THE AC SHOULD BE CLEARED + 4226 + 4227 000005 AC=5 + 4228 SAVEAC (1,1)^ + 4229 034146 201 07 0 00 034146 MOVEI AC+2,. ;SAVE TEST PC + 4230 034147 202 07 0 00 030051 MOVEM AC+2,TESTPC + 4231 034150 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4232 034151 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4233 034152 254 02 1 00 040773 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4234 + 4235 034153 201 03 0 00 000001 G13200: MOVEI AC-2,&17 ;SETUP POINTER + 4236 034154 474 05 0 00 000000 SETO AC, ;SETUP AC + 4237 034155 551 01 0 00 000010 HRRZI AC-4,10 ;SETUP BYTE WORD + 4238 034156 135 05 0 00 000001 LDB AC,&17 ;LDB SHOULD CLEAR THE AC + 4239 034157 302 05 0 00 000000 CAIE AC,0 ;WAS AC CLEARED? + 4240 034160 003 05 0 00 013201 ER3 AC,13201 ;FAILURE - AC WAS NOT CLEARED + 4241 034161 302 03 0 00 000001 CAIE AC-2,&17 ;WAS POINTER MODIFIED? + 4242 034162 005 03 0 00 013202 ER5 AC-2,13202 ;FAILURE - POINTER WAS MODIFIED + 4243 034163 302 01 0 00 000010 CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + 4244 034164 012 01 0 00 013203 ER12 AC-4,13203 ;FAILURE - BYTE WORD WAS MODIFIED + 4245 034165 321 07 0 00 034153 JUMPL AC+2,G13200 ;LOOP ON ERROR SWITCH + 4246 + 4247 ;TEST ILDB WHEN SIZE OF BYTE IS ZERO BITS + 4248 ;THE AC SHOULD BE CLEARED + 4249 + 4250 000014 AC=14 + 4251 SAVEAC (1,1)^ + 4252 034166 201 16 0 00 034166 MOVEI AC+2,. ;SAVE TEST PC + 4253 034167 202 16 0 00 030051 MOVEM AC+2,TESTPC + 4254 034170 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4255 034171 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4256 034172 254 02 1 00 040774 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4257 + 4258 034173 201 12 0 00 000010 G13210: MOVEI AC-2,&17 ;SETUP POINTER + 4259 034174 474 14 0 00 000000 SETO AC, ;SETUP AC + 4260 034175 551 10 0 00 000010 HRRZI AC-4,10 ;SETUP BYTE WORD + 4261 034176 134 14 0 00 000010 ILDB AC,&17 ;ILDB SHOULD CLEAR THE AC + 4262 034177 302 14 0 00 000000 CAIE AC,0 ;WAS AC CLEARED + 4263 034200 003 14 0 00 013211 ER3 AC,13211 ;FAILURE - AC WAS NOT CLEARED + 4264 034201 302 12 0 00 000010 CAIE AC-2,&17 ;WAS POINTER MODIFIED + 4265 034202 005 12 0 00 013212 ER5 AC-2,13212 ;FAILURE - POINTER WAS MODIFIED + 4266 034203 302 10 0 00 000010 CAIE AC-4,10 ;WAS BYTE WORD MODIFIED? + 4267 034204 012 10 0 00 013213 ER12 AC-4,13213 ;FAILURE - BYTE WORD WAS MODIFIED + 4268 034205 321 16 0 00 034173 JUMPL AC+2,G13210 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 58 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0120 + + 4269 ;TEST DPB WHEN SIZE OF BYTE IS ZERO BITS + 4270 ;THE AC SHOULD NOT BE AFFECTED + 4271 + 4272 000013 AC=13 + 4273 SAVEAC (1,1)^ + 4274 034206 201 15 0 00 034206 MOVEI AC+2,. ;SAVE TEST PC + 4275 034207 202 15 0 00 030051 MOVEM AC+2,TESTPC + 4276 034210 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4277 034211 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4278 034212 254 02 1 00 040775 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4279 + 4280 034213 201 11 0 00 000007 G13220: MOVEI AC-2,&17 ;SETUP POINTER + 4281 034214 474 13 0 00 000000 SETO AC, ;SETUP AC + 4282 034215 551 07 0 00 000010 HRRZI AC-4,10 ;SETUP BYTE WORD + 4283 034216 137 13 0 00 000007 DPB AC,&17 ;DPB SHOULD NOT MODIFY ANYTHING + 4284 034217 312 13 0 00 040734 CAME AC,[-1] ;WAS AC MODIFIED? + 4285 034220 003 13 0 00 013221 ER3 AC,13221 ;FAILURE - AC WAS MODIFIED + 4286 034221 302 11 0 00 000007 CAIE AC-2,&17 ;WAS POINTER MODIFIED? + 4287 034222 005 11 0 00 013222 ER5 AC-2,13222 ;FAILURE - POINTER WAS MODIFIED + 4288 034223 302 07 0 00 000010 CAIE AC-4,10 ;WAS BYTE WORD MODIFIED? + 4289 034224 012 07 0 00 013223 ER12 AC-4,13223 ;FAILURE - BYTE WORD WAS MODIFIED + 4290 034225 321 15 0 00 034213 JUMPL AC+2,G13220 ;LOOP ON ERROR SWITCH + 4291 + 4292 ;TEST IDPB WHEN SIZE OF BYTE IS ZERO BITS + 4293 ;TITE AC SHOULD NOT BE AFFECTED + 4294 + 4295 000012 AC=12 + 4296 SAVEAC (1,1)^ + 4297 034226 201 14 0 00 034226 MOVEI AC+2,. ;SAVE TEST PC + 4298 034227 202 14 0 00 030051 MOVEM AC+2,TESTPC + 4299 034230 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4300 034231 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4301 034232 254 02 1 00 040776 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4302 + 4303 034233 201 10 0 00 000006 G13230: MOVEI AC-2,&17 ;SETUP POINTER + 4304 034234 474 12 0 00 000000 SETO AC, ;SETUP AC + 4305 034235 551 06 0 00 000010 HRRZI AC-4,10 ;SETUP BYTE WORD + 4306 034236 136 12 0 00 000006 IDPB AC,&17 ;IDPB SHOULD NOT MODIFY ANYTHING + 4307 034237 312 12 0 00 040734 CAME AC,[-1] ;WAS AC MODIFIED? + 4308 034240 003 12 0 00 013231 ER3 AC,13231 ;FAILURE - AC WAS MODIFIED + 4309 034241 302 10 0 00 000006 CAIE AC-2,&17 ;WAS POINTER MODIFIED + 4310 034242 005 10 0 00 013232 ER5 AC-2,13232 ;FAILURE - POINTER WAS MODIFIED + 4311 034243 302 06 0 00 000010 CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + 4312 034244 012 06 0 00 013233 ER12 AC-4,13233 ;FAILURE - BYTE WORD WAS MODIFIED + 4313 034245 321 14 0 00 034233 JUMPL AC+2,G13230 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 59 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0121 + + 4314 ;TEST IBP WHEN SIZE OF BYTE IS ZERO BITS + 4315 ;THE AC SHOULD NOT BE AFFECTED + 4316 + 4317 000011 AC=11 + 4318 SAVEAC (1,1)^ + 4319 034246 201 13 0 00 034246 MOVEI AC+2,. ;SAVE TEST PC + 4320 034247 202 13 0 00 030051 MOVEM AC+2,TESTPC + 4321 034250 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4322 034251 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4323 034252 254 02 1 00 040777 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4324 + 4325 034253 201 07 0 00 000005 G13240: MOVEI AC-2,&17 ;SETUP POINTER + 4326 034254 474 11 0 00 000000 SETO AC, ;SETUP AC + 4327 034255 551 05 0 00 000010 HRRZI AC-4,10 ;SETUP BYTE WORD + 4328 034256 336 00 0 00 030041 SKIPN KLFLG + 4329 034257 133 11 0 00 000005 IBP AC,&17 ;IBP SHOULD NOT MODIFY ANYTHING + 4330 034260 332 00 0 00 030041 SKIPE KLFLG + 4331 034261 133 00 0 00 000005 IBP 0,&17 ;KL10, DON'T DO ADJBP ! + 4332 034262 312 11 0 00 040734 CAME AC,[-1] ;WAS AC MODIFIED? + 4333 034263 003 11 0 00 013241 ER3 AC,13241 ;FAILURE - AC WAS MODIFIED + 4334 034264 302 07 0 00 000005 CAIE AC-2,&17 ;WASPOINTER MODIFIED? + 4335 034265 005 07 0 00 013242 ER5 AC-2,13242 ;FAILURE - POINTER WAS MODIFIED + 4336 034266 302 05 0 00 000010 CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + 4337 034267 012 05 0 00 013243 ER12 AC-4,13243 ;FAILURE - BYTE WORD WAS MODIFIED + 4338 034270 321 13 0 00 034253 JUMPL AC+2,G13240 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 60 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0122 + + 4339 ;TEST LDB WHEN SIZE OF BYTE IS ONE BIT + 4340 + 4341 000010 AC=10 + 4342 SAVEAC (1,1)^ + 4343 034271 201 12 0 00 034271 MOVEI AC+2,. ;SAVE TEST PC + 4344 034272 202 12 0 00 030051 MOVEM AC+2,TESTPC + 4345 034273 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4346 034274 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4347 034275 254 02 1 00 041000 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4348 + 4349 034276 205 06 0 00 430100 G13300: MOVSI AC-2,430100 + 4350 034277 541 06 0 00 000004 HRRI AC-2,&17 ;SETUP POINTER + 4351 034300 200 07 0 00 000006 MOVE AC-1,&17 ;POINTER FOR COMPARISON + 4352 034301 561 10 0 00 000000 HRROI AC,0 ;SETUP AC + 4353 034302 515 04 0 00 777777 HRLZI AC-4,-1 ;SETUP BYTE WORD + 4354 034303 200 05 0 00 000004 MOVE AC-3,&17 ;BYTE OWRD FOR COMPARISON + 4355 034304 135 10 0 00 000006 LDB AC,&17 ;LDB SHOULD PLACE 0,,1 INTO THE AC + 4356 034305 302 10 0 00 000001 CAIE AC,1 ;LOOP ON ERROR SWITCH + 4357 034306 003 10 0 00 013301 ER3 AC,13301 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4358 034307 312 06 0 00 000007 CAME AC-2,&17 ;WAS POINTER MODIFIED? + 4359 034310 005 06 0 00 013302 ER5 AC-2,13302 ;FAILURE POINTER WAS MODIFIED + 4360 034311 312 04 0 00 000005 CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + 4361 034312 012 04 0 00 013303 ER12 AC-4,13303 ;FAILURE - BYTE OWRD WAS MODIFIED + 4362 034313 321 12 0 00 034276 JUMPL AC+2,G13300 ;LOOP ON ERROR SWITCH + 4363 + 4364 ;TEST LDB WHEN SIZE OF BYTE IS ONE BIT + 4365 + 4366 000007 AC=7 + 4367 SAVEAC (1,1)^ + 4368 034314 201 11 0 00 034314 MOVEI AC+2,. ;SAVE TEST PC + 4369 034315 202 11 0 00 030051 MOVEM AC+2,TESTPC + 4370 034316 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4371 034317 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4372 034320 254 02 1 00 041001 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4373 + 4374 034321 205 05 0 00 000100 G13310: MOVSI AC-2,100 + 4375 034322 541 05 0 00 000003 HRRI AC-2,&17 ;SETUP POINTER + 4376 034323 200 06 0 00 000005 MOVE AC-1,&17 ;POINTER FOR COMPARISON + 4377 034324 561 07 0 00 000000 HRROI AC,0 ;SETUP AC + 4378 034325 525 03 0 00 000000 HRLOI AC-4,0 ;SETUP BYTE WORD + 4379 034326 200 04 0 00 000003 MOVE AC-3,&17 ;BYTE WORD FOR COMPARISON + 4380 034327 135 07 0 00 000005 LDB AC,&17 ;LDB SHOULD PLACE 0,,1 INTO THE AC + 4381 034330 302 07 0 00 000001 CAIE AC,1 ;LOOP ON ERROR SWITCH + 4382 034331 003 07 0 00 013311 ER3 AC,13311 ;FAILURE - BYTE NOT LOADED CORRECTLY + 4383 034332 312 05 0 00 000006 CAME AC-2,&17 ;WAS POINTER MODIFIED + 4384 034333 005 05 0 00 013312 ER5 AC-2,13312 ;FAILURE - POINTER WAS MODIFIED + 4385 034334 312 03 0 00 000004 CAME AC-4,&17 ;WAS BYTE WORD MODIFIED + 4386 034335 012 03 0 00 013313 ER12 AC-4,13313 ;FAILURE - BYTE WORD WAS MODIFIED + 4387 034336 321 11 0 00 034321 JUMPL AC+2,G13310 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 61 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0123 + + 4388 ;TEST DPB WHEN SIZE OF BYTE IS ONE BIT + 4389 + 4390 000006 AC=6 + 4391 SAVEAC (1,1)^ + 4392 034337 201 10 0 00 034337 MOVEI AC+2,. ;SAVE TEST PC + 4393 034340 202 10 0 00 030051 MOVEM AC+2,TESTPC + 4394 034341 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4395 034342 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4396 034343 254 02 1 00 041002 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4397 + 4398 034344 205 04 0 00 430100 G13320: MOVSI AC-2,430100 + 4399 034345 541 04 0 00 000002 HRRI AC-2,&17 ;SETUP POINTER + 4400 034346 200 05 0 00 000004 MOVE AC-1,&17 ;POINTER FOR COMPARISON + 4401 034347 561 06 0 00 000076 HRROI AC,76 ;SETUP AC + 4402 034350 202 06 0 00 000001 MOVEM AC,&17 ;AC FOR COMPARISON + 4403 034351 474 02 0 00 000000 SETO AC-4, ;SETUP BYTE WORD + 4404 034352 200 03 0 00 041003 MOVE AC-3,[377777,,-1] ;BYTE WORD FOR COMPARISON + 4405 034353 137 06 0 00 000004 DPB AC,&17 ;DPB SHOULD PLACE 377777,,-1 INTO BYTE WORD + 4406 034354 312 06 0 00 000001 CAME AC,&17 ;WAS AC MODIFIED? + 4407 034355 003 06 0 00 013321 ER3 AC,13321 ;FAILURE - AC WAS MODIFIED + 4408 034356 312 04 0 00 000005 CAME AC-2,&17 ;WAS POINTER MODIFIED + 4409 034357 005 04 0 00 013322 ER5 AC-2,13322 ;FAILURE - POINTER WAS MODIFIED + 4410 034360 312 02 0 00 000003 CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + 4411 034361 012 02 0 00 013323 ER12 AC-4,13323 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 4412 034362 321 10 0 00 034344 JUMPL AC+2,G13320 ;LOOP ON ERROR SWITCH + 4413 + 4414 ;TEST DPB WHEN SIZE OF BYTE IS ONE BIT + 4415 + 4416 000005 AC=5 + 4417 SAVEAC (1,1)^ + 4418 034363 201 07 0 00 034363 MOVEI AC+2,. ;SAVE TEST PC + 4419 034364 202 07 0 00 030051 MOVEM AC+2,TESTPC + 4420 034365 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4421 034366 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4422 034367 254 02 1 00 041004 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4423 + 4424 034370 205 03 0 00 000100 G13330: MOVSI AC-2,100 + 4425 034371 541 03 0 00 000001 HRRI AC-2,&17 ;SETUP POINTER + 4426 034372 200 04 0 00 000003 MOVE AC-1,&17 ;POINTER FOR COMPARISON + 4427 034373 561 05 0 00 000076 HRROI AC,76 ;SETUP AC + 4428 034374 202 05 0 00 000000 MOVEM AC,&17 ;AC FOR COMPARISON + 4429 034375 474 01 0 00 000000 SETO AC-4, ;SETUP BYTE WORD + 4430 034376 200 02 0 00 041005 MOVE AC-3,[-2] ;BYTE WORD FOR COMPARISON + 4431 034377 137 05 0 00 000003 DPB AC,&17 ;DPB SHOULD PLACE -1,,-2 INTO BYTE WORD + 4432 034400 312 05 0 00 000000 CAME AC,&17 ;WAS AC MODIFIED + 4433 034401 003 05 0 00 013331 ER3 AC,13331 ;FAILURE - AC WAS MODIFIED + 4434 034402 312 03 0 00 000004 CAME AC-2,&17 ;WAS POINTER MODIFIED + 4435 034403 005 03 0 00 013332 ER5 AC-2,13332 ;FAILURE - POINTER WAS MODIFIED + 4436 034404 312 01 0 00 000002 CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + 4437 034405 012 01 0 00 013333 ER12 AC-4,13333 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + 4438 034406 321 07 0 00 034370 JUMPL AC+2,G13330 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 62 +DAKAMM MAC 20-JAN-77 11:34 PART IB-GENERAL BYTE TEST SEQ 0124 + + 4439 ;TEST IBP WHEN S IS GREATER THAN P AND THE ADDRESS FIELD OF THE POINTER IS 777777 + 4440 ;IBP SHOULD CAUSE THE ADDRESS FIELD TO CLEAR AND P SHOULD BECOME 44-S + 4441 + 4442 000004 AC=4 + 4443 SAVEAC (1,1)^ + 4444 034407 201 06 0 00 034407 MOVEI AC+2,. ;SAVE TEST PC + 4445 034410 202 06 0 00 030051 MOVEM AC+2,TESTPC + 4446 034411 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4447 034412 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4448 034413 254 02 1 00 041006 JRSTF @[.+1] ;CLEAR ALL FLAGS + 4449 + 4450 034414 525 02 0 00 000100 G13400: HRLOI AC-2,000100 ;SETUP POINTER + 4451 034415 515 01 0 00 430101 HRLZI AC-3,430101 ;RESULT FOR COMPARISON (KA) + 4452 034416 133 00 0 00 000002 IBP &17 ;IBP SHOULD PLACE 430100,,0 INTO PTR + 4453 034417 312 02 0 00 000001 CAME AC-2,&17 ;PASS IF POINTER UPATED CORRECTLY + 4454 034420 005 02 0 00 013400 ER5 AC-2,13400 ;POINTER NOT UPDATED CORRECTLY + 4455 034421 321 06 0 00 034414 JUMPL AC+2,G13400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 63 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0125 + + 4456 SUBTTL PART II - GENERAL BLOCK TRANSFER TEST + 4457 + 4458 034422 201 00 0 00 041007 MOVEI [ASCIZ/BLT FAILED/] + 4459 034423 202 00 0 00 040646 MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTOR + 4460 + 4461 ;VERFIY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ZEROS + 4462 ;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME + 4463 ;AND WITHIN THE AC ADDRESS RANGE. + 4464 000007 AC=7 + 4465 SAVEAC (1,1)^ + 4466 034424 201 11 0 00 034424 MOVEI AC+2,. ;SAVE TEST PC + 4467 034425 202 11 0 00 030051 MOVEM AC+2,TESTPC + 4468 034426 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4469 034427 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4470 022100 SN=22100 + 4471 000001 SRCE=&17 ;SOURCE BLOCK=AC-6 + 4472 000001 DEST=&17 ;DESTINATION BLOCK=AC-6 + 4473 000001 SIZ=1 ;BLOCK SIZE = 1 OWRD + 4474 + 4475 034430 200 07 0 00 041012 G22100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + 4476 034431 477 00 0 00 000002 SETOB SRCE-1,SRCE+1 ;PRELOAD SRCE-1 AND SRCE+1 WITH ONES + 4477 034432 402 00 0 00 000001 SETZM SRCE ;LOAD SRCE WITH ZEROS + 4478 034433 251 07 0 00 000001 BLT AC,DEST+SIZ-1 ;*BLT SHOULD CLEAR DEST BLOCK + 4479 022101 SN=SN+1 + 4480 034434 312 00 0 00 040734 CAME DEST-1,[-1] ;WAS DEST-1 CLOBBERRED? + 4481 034435 002 00 0 00 022101 ER2 DEST-1,SN ;DEST -1 WAS CLOBBERRED + 4482 022102 SN=SN+1 + 4483 034436 332 00 0 00 000001 SKIPE DEST ;DID BLT LOAD DEST FROM SRCE? + 4484 034437 002 01 0 00 022102 ER2 DEST,SN ;FAIL IF C(DEST) NON-ZERO + 4485 022103 SN=SN+1 + 4486 034440 312 02 0 00 040734 CAME DEST+1,[-1] ;WAS DEST+1 CLOBBERRED? + 4487 034441 002 02 0 00 022103 ER2 DEST+1,SN ;DEST +1 WAS CLOBBERRED + 4488 034442 321 11 0 00 034430 JUMPL AC+2,G22100 ;LOOP ON ERROR SWITCH + 4489 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 63-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0126 + + 4490 ;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ONES + 4491 ;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME + 4492 ;AND WITHIN THE AC ADDRESS RANGE. + 4493 000014 AC=14 + 4494 SAVEAC (1,1)^ + 4495 034443 201 16 0 00 034443 MOVEI AC+2,. ;SAVE TEST PC + 4496 034444 202 16 0 00 030051 MOVEM AC+2,TESTPC + 4497 034445 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4498 034446 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4499 022200 SN=22200 + 4500 000006 SRCE=&17 ;SOURCE BLOCK = AC-6 + 4501 000006 DEST=&17 ;DESTINATION BLOCK = AC-6 + 4502 000001 SIZ=1 ;BLOCK = 1 WORD + 4503 + 4504 034447 200 14 0 00 041013 G22200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + 4505 034450 403 05 0 00 000007 SETZB SRCE-1,SRCE+1 ;PRELOAD SRCE-1 AND SRCE+1 WITH ZEROS + 4506 034451 476 00 0 00 000006 SETOM SRCE ;LOAD SRCE WITH ONES + 4507 034452 251 14 0 00 000006 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DEST WITH ONES + 4508 022201 SN=SN+1 + 4509 034453 332 00 0 00 000005 SKIPE DEST-1 ;WAS DEST-1 CLOBBERRED? + 4510 034454 002 05 0 00 022201 ER2 DEST-1,SN ;DEST-1 WAS CLOBBERRED + 4511 022202 SN=SN+1 + 4512 034455 312 06 0 00 040734 CAME DEST,[-1] ;DID BLT LOAD DEST FROM SRCE? + 4513 034456 002 06 0 00 022202 ER2 DEST,SN ;FAIL IF C(DEST) NOT ALL ONES + 4514 022203 SN=SN+1 + 4515 034457 332 00 0 00 000007 SKIPE DEST+1 ;WAS DEST+1 CLOBBERRED? + 4516 034460 002 07 0 00 022203 ER2 DEST+1,SN ;DEST+1 WAS CLOBBERRED + 4517 034461 321 16 0 00 034447 JUMPL AC+2,G22200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 64 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0127 + + 4518 ;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF DATA + 4519 ;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME + 4520 ;AND WITHIN THE AC ADDRESS RANGE. + 4521 + 4522 000014 AC=14 + 4523 SAVEAC (1,1)^ + 4524 034462 201 16 0 00 034462 MOVEI AC+2,. ;SAVE TEST PC + 4525 034463 202 16 0 00 030051 MOVEM AC+2,TESTPC + 4526 034464 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4527 034465 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4528 022300 SN=22300 + 4529 000006 SRCE=&17 ;SOURCE BLOCK = AC-6 + 4530 000006 DEST=&17 ;DESTINATION BLOCK = AC-6 + 4531 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4532 + 4533 034466 200 14 0 00 041013 G22300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF ARCE AND DEST + 4534 034467 403 05 0 00 000007 SETZB SRCE-1,SRCE+1 ;CLEAR SRCE-1 AND SRCE+1 + 4535 034470 200 06 0 00 040752 MOVE SRCE,[230703,,603700] ;PRELOAD SOURCE BLOCK + 4536 034471 251 14 0 00 000006 BLT AC,DEST+SIZ-1 ;*BLT SHOULD PLACE C(SRCE) INTO DEST + 4537 022301 SN=SN+1 + 4538 034472 332 00 0 00 000005 SKIPE DEST-1 ;WAS DEST-1 CLOBBERRED? + 4539 034473 002 05 0 00 022301 ER2 DEST-1,SN ;DEST-1 WAS CLOBBERRED + 4540 022302 SN=SN+1 + 4541 034474 312 06 0 00 040752 CAME DEST,[230703,,603700] ;DID BLT LOAD DEST FROM SRCE + 4542 034475 002 06 0 00 022302 ER2 DEST,SN ;FAIL IF C(DEST) NOT 230703,,603700 + 4543 022303 SN=SN+1 + 4544 034476 332 00 0 00 000007 SKIPE DEST+1 ;WAS DEST+1 CLOBBERRED? + 4545 034477 002 07 0 00 022303 ER2 DEST+1,SN ;DEST+1 WAS CLOBBERRED + 4546 034500 321 16 0 00 034466 JUMPL AC+2,G22300 ;LOOP ON ERROR SWITCH + 4547 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 64-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0128 + + 4548 ;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ZEROS + 4549 ;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME + 4550 ;AND BEYOND THE AC ADDRESS RANGE. + 4551 000014 AC=14 + 4552 SAVEAC (1,1)^ + 4553 034501 201 16 0 00 034501 MOVEI AC+2,. ;SAVE TEST PC + 4554 034502 202 16 0 00 030051 MOVEM AC+2,TESTPC + 4555 034503 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4556 034504 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4557 022400 SN=22400 + 4558 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + 4559 040221 DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + 4560 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4561 + 4562 034505 200 14 0 00 041014 G22400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + 4563 034506 476 00 0 00 040220 SETOM SRCE-1 ;PRELOAD SRCE-1 WITH ONES + 4564 034507 402 00 0 00 040221 SETZM SRCE ;LOAD SRCE WITH ZEROS + 4565 034510 476 00 0 00 040222 SETOM SRCE+1 ;PRELOAD SRCE+1 WITH ONES + 4566 034511 251 14 0 00 040221 BLT AC,DEST+SIZ-1 ;*BLT SHOULD CLEAR DEST BLOCK + 4567 022401 SN=SN+1 + 4568 034512 200 13 0 00 040220 MOVE AC-1,DEST-1 + 4569 034513 312 13 0 00 040734 CAME AC-1,[-1] ;WAS DEST-1 CLOBBERRED? + 4570 034514 002 13 0 00 022401 ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED + 4571 022402 SN=SN+1 + 4572 034515 200 13 0 00 040221 MOVE AC-1,DEST + 4573 034516 332 00 0 00 000013 SKIPE AC-1 ;DID BLT LOAD DEST FROM SRCE? + 4574 034517 002 13 0 00 022402 ER2 AC-1,SN ;FAIL IF C(DEST) NOT ZERO + 4575 022403 SN=SN+1 + 4576 034520 200 13 0 00 040222 MOVE AC-1,DEST+1 + 4577 034521 312 13 0 00 040734 CAME AC-1,[-1] ;WAS DEST+1 CLOBBERRED? + 4578 034522 002 13 0 00 022403 ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + 4579 034523 321 15 0 00 034505 JUMPL AC+1,G22400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 65 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0129 + + 4580 ;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ONES + 4581 ;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME + 4582 ;AND BEYOND THE AC ADDRESS RANGE. + 4583 + 4584 000013 AC=13 + 4585 SAVEAC (1,1)^ + 4586 034524 201 15 0 00 034524 MOVEI AC+2,. ;SAVE TEST PC + 4587 034525 202 15 0 00 030051 MOVEM AC+2,TESTPC + 4588 034526 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4589 034527 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4590 022500 SN=22500 + 4591 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + 4592 040221 DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + 4593 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4594 + 4595 034530 200 13 0 00 041014 G22500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + 4596 034531 402 00 0 00 040220 SETZM SRCE-1 ;PRELOAD SRCE-1 WITH ZEROS + 4597 034532 476 00 0 00 040221 SETOM SRCE ;LOAD SRCE WITH ONES + 4598 034533 402 00 0 00 040222 SETZM SRCE+1 ;PRELOAD SRCE+1 WITH ZEROS + 4599 034534 251 13 0 00 040221 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DEST BLOCK WITH ONES + 4600 022501 SN=SN+1 + 4601 034535 200 12 0 00 040220 MOVE AC-1,DEST-1 + 4602 034536 332 00 0 00 000012 SKIPE AC-1 ;WAS DEST-1 CLOBBERRED? + 4603 034537 002 12 0 00 022501 ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED + 4604 022502 SN=SN+1 + 4605 034540 200 12 0 00 040221 MOVE AC-1,DEST + 4606 034541 312 12 0 00 040734 CAME AC-1,[-1] ;DID BLT LOAD DEST FROM SRCE? + 4607 034542 002 12 0 00 022502 ER2 AC-1,SN ;FAIL IF C(DEST) NOT ALL ONES + 4608 022503 SN=SN+1 + 4609 034543 200 12 0 00 040222 MOVE AC-1,DEST+1 + 4610 034544 332 00 0 00 000012 SKIPE AC-1 ;WAS DEST+1 CLOBBERRED? + 4611 034545 002 12 0 00 022503 ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + 4612 034546 321 15 0 00 034530 JUMPL AC+2,G22500 ;LOOP ON ERROR SWITCH + 4613 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 65-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0130 + + 4614 ;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF DATA + 4615 ;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME + 4616 ;AND BEYOND THE AC ADDRESS RANGE. + 4617 + 4618 000012 AC=12 + 4619 SAVEAC (1,1)^ + 4620 034547 201 14 0 00 034547 MOVEI AC+2,. ;SAVE TEST PC + 4621 034550 202 14 0 00 030051 MOVEM AC+2,TESTPC + 4622 034551 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4623 034552 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4624 022600 SN=22600 + 4625 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + 4626 040221 DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + 4627 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4628 + 4629 034553 200 12 0 00 041014 G22600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + 4630 034554 402 00 0 00 040220 SETZM SRCE-1 ;PRELOAD SRCE-1 WITH ZEROS + 4631 034555 200 13 0 00 040752 MOVE AC+1,[230703,,603700] ;LOAD SRCE BLOCK + 4632 034556 202 13 0 00 040221 MOVEM AC+1,SRCE + 4633 034557 402 00 0 00 040222 SETZM SRCE+1 ;PRELOAD SRCE+1 WITH ZEROS + 4634 034560 251 12 0 00 040221 BLT AC,DEST+SIZ-1 ;*BLT SHOULD PLACE C(SRCE) INTO DEST + 4635 022601 SN=SN+1 + 4636 034561 200 11 0 00 040220 MOVE AC-1,DEST-1 + 4637 034562 332 00 0 00 000011 SKIPE AC-1 ;WAS DEST-1 CLOBBERRED? + 4638 034563 002 11 0 00 022601 ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED + 4639 022602 SN=SN+1 + 4640 034564 200 11 0 00 040221 MOVE AC-1,DEST + 4641 034565 312 11 0 00 040752 CAME AC-1,[230703,,603700] ;DID BLT LOAD DEST FROM SRCE? + 4642 034566 002 11 0 00 022602 ER2 AC-1,SN ;FAIL IF C(DEST) NOT 230703,,603700 + 4643 022603 SN=SN+1 + 4644 034567 200 11 0 00 040222 MOVE AC-1,DEST+1 + 4645 034570 332 00 0 00 000011 SKIPE AC-1 ;WAS DEST+1 CLOBBERRED? + 4646 034571 002 11 0 00 022603 ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + 4647 034572 321 13 0 00 034553 JUMPL AC+1,G22600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0131 + + 4648 ;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + 4649 + 4650 BLTM1 (22700,14,<&17>,<&17>,0)^ + 4651 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 4652 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 4653 ;SOURCE DATA = 0 + 4654 + 4655 000014 AC=14 + 4656 SAVEAC (1,1)^ + 4657 034573 201 16 0 00 034573 MOVEI AC+2,. ;SAVE TEST PC + 4658 034574 202 16 0 00 030051 MOVEM AC+2,TESTPC + 4659 034575 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4660 034576 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4661 022700 SN=22700 + 4662 000006 SRCE=&17 ;1ST LOC OF SOURCE = &17 + 4663 000011 DEST=&17 ;1ST LOC OF DESTINATION = &17 + 4664 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4665 + 4666 034577 200 14 0 00 041015 G22700: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 4667 GMOV (SRCE-1,<252525252525>)^ + 4668 IFLE ,< + 4669 034600 200 05 0 00 041016 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 4670 IFG ,< + 4671 MOVE AC+1,[252525252525] + 4672 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 4673 GMOV (SRCE,<0>)^ + 4674 IFLE ,< + 4675 034601 200 06 0 00 041011 MOVE SRCE,[0] ;PRELOAD SRCE WITH 0> + 4676 IFG ,< + 4677 MOVE AC+1,[0] + 4678 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 0>^ + 4679 GMOV (SRCE+1,<770077007700>)^ + 4680 IFLE ,< + 4681 034602 200 07 0 00 041017 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 4682 IFG ,< + 4683 MOVE AC+1,[770077007700] + 4684 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 4685 GMOV (DEST-1,<070707070707>)^ + 4686 IFLE ,< + 4687 034603 200 10 0 00 041020 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 4688 IFG ,< + 4689 MOVE AC+1,[070707070707] + 4690 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 4691 GMOV (DEST,<123456765432>)^ + 4692 IFLE ,< + 4693 034604 200 11 0 00 041021 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 4694 IFG ,< + 4695 MOVE AC+1,[123456765432] + 4696 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 4697 GMOV (DEST+1,<552255225522>)^ + 4698 IFLE ,< + 4699 034605 200 12 0 00 041022 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 4700 IFG ,< + 4701 MOVE AC+1,[552255225522] + 4702 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0132 + + 4703 034606 251 14 0 00 000011 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 4704 GCAM (SRCE-1,<252525252525>)^ + 4705 022701 SN=SN+1 + 4706 IFG ,< + 4707 MOVE AC-1,SRCE-1 + 4708 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 4709 IFIDN ,,< + 4710 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4711 IFDIF ,,< + 4712 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 4713 IFLE ,< + 4714 034607 312 05 0 00 041016 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 4715 IFIDN ,,< + 4716 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 4717 IFDIF ,,< + 4718 034610 002 05 0 00 022701 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 4719 GCAM (SRCE,<0>)^ + 4720 022702 SN=SN+1 + 4721 IFG ,< + 4722 MOVE AC-1,SRCE + 4723 CAME AC-1,[0] ;IS C(SRCE) = 0 + 4724 IFIDN ,,< + 4725 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4726 IFDIF ,,< + 4727 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 4728 IFLE ,< + 4729 034611 312 06 0 00 041011 CAME SRCE,[0] ;IS C(SRCE) = 0 + 4730 IFIDN ,,< + 4731 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 4732 IFDIF ,,< + 4733 034612 002 06 0 00 022702 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 4734 GCAM (SRCE+1,<770077007700>)^ + 4735 022703 SN=SN+1 + 4736 IFG ,< + 4737 MOVE AC-1,SRCE+1 + 4738 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 4739 IFIDN ,,< + 4740 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4741 IFDIF ,,< + 4742 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 4743 IFLE ,< + 4744 034613 312 07 0 00 041017 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 4745 IFIDN ,,< + 4746 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 4747 IFDIF ,,< + 4748 034614 002 07 0 00 022703 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 4749 GCAM (DEST-1,<070707070707>)^ + 4750 022704 SN=SN+1 + 4751 IFG ,< + 4752 MOVE AC-1,DEST-1 + 4753 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 4754 IFIDN ,,< + 4755 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4756 IFDIF ,,< + 4757 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-2 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0133 + + 4758 IFLE ,< + 4759 034615 312 10 0 00 041020 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 4760 IFIDN ,,< + 4761 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 4762 IFDIF ,,< + 4763 034616 002 10 0 00 022704 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 4764 GCAM (DEST,<0>)^ + 4765 022705 SN=SN+1 + 4766 IFG ,< + 4767 MOVE AC-1,DEST + 4768 CAME AC-1,[0] ;IS C(DEST) = 0 + 4769 IFIDN ,,< + 4770 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4771 IFDIF ,,< + 4772 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 4773 IFLE ,< + 4774 034617 312 11 0 00 041011 CAME DEST,[0] ;IS C(DEST) = 0 + 4775 IFIDN ,,< + 4776 034620 002 11 0 00 022705 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 4777 IFDIF ,,< + 4778 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 4779 GCAM (DEST+1,<552255225522>)^ + 4780 022706 SN=SN+1 + 4781 IFG ,< + 4782 MOVE AC-1,DEST+1 + 4783 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 4784 IFIDN ,,< + 4785 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4786 IFDIF ,,< + 4787 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 4788 IFLE ,< + 4789 034621 312 12 0 00 041022 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 4790 IFIDN ,,< + 4791 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 4792 IFDIF ,,< + 4793 034622 002 12 0 00 022706 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 4794 034623 321 16 0 00 034577 JUMPL AC+2,G22700 ;LOOP ON ERROR^ + 4795 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-3 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0134 + + 4796 ;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + 4797 + 4798 BLTM1 (23000,13,<&17>,<&17>,-1)^ + 4799 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 4800 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 4801 ;SOURCE DATA = -1 + 4802 + 4803 000013 AC=13 + 4804 SAVEAC (1,1)^ + 4805 034624 201 15 0 00 034624 MOVEI AC+2,. ;SAVE TEST PC + 4806 034625 202 15 0 00 030051 MOVEM AC+2,TESTPC + 4807 034626 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4808 034627 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4809 023000 SN=23000 + 4810 000005 SRCE=&17 ;1ST LOC OF SOURCE = &17 + 4811 000010 DEST=&17 ;1ST LOC OF DESTINATION = &17 + 4812 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4813 + 4814 034630 200 13 0 00 041023 G23000: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 4815 GMOV (SRCE-1,<252525252525>)^ + 4816 IFLE ,< + 4817 034631 200 04 0 00 041016 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 4818 IFG ,< + 4819 MOVE AC+1,[252525252525] + 4820 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 4821 GMOV (SRCE,<-1>)^ + 4822 IFLE ,< + 4823 034632 200 05 0 00 040734 MOVE SRCE,[-1] ;PRELOAD SRCE WITH -1> + 4824 IFG ,< + 4825 MOVE AC+1,[-1] + 4826 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH -1>^ + 4827 GMOV (SRCE+1,<770077007700>)^ + 4828 IFLE ,< + 4829 034633 200 06 0 00 041017 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 4830 IFG ,< + 4831 MOVE AC+1,[770077007700] + 4832 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 4833 GMOV (DEST-1,<070707070707>)^ + 4834 IFLE ,< + 4835 034634 200 07 0 00 041020 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 4836 IFG ,< + 4837 MOVE AC+1,[070707070707] + 4838 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 4839 GMOV (DEST,<123456765432>)^ + 4840 IFLE ,< + 4841 034635 200 10 0 00 041021 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 4842 IFG ,< + 4843 MOVE AC+1,[123456765432] + 4844 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 4845 GMOV (DEST+1,<552255225522>)^ + 4846 IFLE ,< + 4847 034636 200 11 0 00 041022 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 4848 IFG ,< + 4849 MOVE AC+1,[552255225522] + 4850 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-4 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0135 + + 4851 034637 251 13 0 00 000010 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 4852 GCAM (SRCE-1,<252525252525>)^ + 4853 023001 SN=SN+1 + 4854 IFG ,< + 4855 MOVE AC-1,SRCE-1 + 4856 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 4857 IFIDN ,,< + 4858 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4859 IFDIF ,,< + 4860 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 4861 IFLE ,< + 4862 034640 312 04 0 00 041016 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 4863 IFIDN ,,< + 4864 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 4865 IFDIF ,,< + 4866 034641 002 04 0 00 023001 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 4867 GCAM (SRCE,<-1>)^ + 4868 023002 SN=SN+1 + 4869 IFG ,< + 4870 MOVE AC-1,SRCE + 4871 CAME AC-1,[-1] ;IS C(SRCE) = -1 + 4872 IFIDN ,,< + 4873 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4874 IFDIF ,,< + 4875 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 4876 IFLE ,< + 4877 034642 312 05 0 00 040734 CAME SRCE,[-1] ;IS C(SRCE) = -1 + 4878 IFIDN ,,< + 4879 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 4880 IFDIF ,,< + 4881 034643 002 05 0 00 023002 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 4882 GCAM (SRCE+1,<770077007700>)^ + 4883 023003 SN=SN+1 + 4884 IFG ,< + 4885 MOVE AC-1,SRCE+1 + 4886 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 4887 IFIDN ,,< + 4888 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4889 IFDIF ,,< + 4890 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 4891 IFLE ,< + 4892 034644 312 06 0 00 041017 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 4893 IFIDN ,,< + 4894 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 4895 IFDIF ,,< + 4896 034645 002 06 0 00 023003 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 4897 GCAM (DEST-1,<070707070707>)^ + 4898 023004 SN=SN+1 + 4899 IFG ,< + 4900 MOVE AC-1,DEST-1 + 4901 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 4902 IFIDN ,,< + 4903 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4904 IFDIF ,,< + 4905 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-5 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0136 + + 4906 IFLE ,< + 4907 034646 312 07 0 00 041020 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 4908 IFIDN ,,< + 4909 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 4910 IFDIF ,,< + 4911 034647 002 07 0 00 023004 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 4912 GCAM (DEST,<-1>)^ + 4913 023005 SN=SN+1 + 4914 IFG ,< + 4915 MOVE AC-1,DEST + 4916 CAME AC-1,[-1] ;IS C(DEST) = -1 + 4917 IFIDN ,,< + 4918 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4919 IFDIF ,,< + 4920 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 4921 IFLE ,< + 4922 034650 312 10 0 00 040734 CAME DEST,[-1] ;IS C(DEST) = -1 + 4923 IFIDN ,,< + 4924 034651 002 10 0 00 023005 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 4925 IFDIF ,,< + 4926 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 4927 GCAM (DEST+1,<552255225522>)^ + 4928 023006 SN=SN+1 + 4929 IFG ,< + 4930 MOVE AC-1,DEST+1 + 4931 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 4932 IFIDN ,,< + 4933 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 4934 IFDIF ,,< + 4935 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 4936 IFLE ,< + 4937 034652 312 11 0 00 041022 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 4938 IFIDN ,,< + 4939 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 4940 IFDIF ,,< + 4941 034653 002 11 0 00 023006 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 4942 034654 321 15 0 00 034630 JUMPL AC+2,G23000 ;LOOP ON ERROR^ + 4943 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-6 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0137 + + 4944 ;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + 4945 + 4946 BLTM1 (23100,12,<&17>,<&17>,<230703,,603700>)^ + 4947 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 4948 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 4949 ;SOURCE DATA = 230703,,603700 + 4950 + 4951 000012 AC=12 + 4952 SAVEAC (1,1)^ + 4953 034655 201 14 0 00 034655 MOVEI AC+2,. ;SAVE TEST PC + 4954 034656 202 14 0 00 030051 MOVEM AC+2,TESTPC + 4955 034657 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4956 034660 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4957 023100 SN=23100 + 4958 000004 SRCE=&17 ;1ST LOC OF SOURCE = &17 + 4959 000007 DEST=&17 ;1ST LOC OF DESTINATION = &17 + 4960 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 4961 + 4962 034661 200 12 0 00 041024 G23100: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 4963 GMOV (SRCE-1,<252525252525>)^ + 4964 IFLE ,< + 4965 034662 200 03 0 00 041016 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 4966 IFG ,< + 4967 MOVE AC+1,[252525252525] + 4968 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 4969 GMOV (SRCE,<230703,,603700>)^ + 4970 IFLE ,< + 4971 034663 200 04 0 00 040752 MOVE SRCE,[230703,,603700] ;PRELOAD SRCE WITH 230703,,603700> + 4972 IFG ,< + 4973 MOVE AC+1,[230703,,603700] + 4974 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 230703,,603700>^ + 4975 GMOV (SRCE+1,<770077007700>)^ + 4976 IFLE ,< + 4977 034664 200 05 0 00 041017 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 4978 IFG ,< + 4979 MOVE AC+1,[770077007700] + 4980 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 4981 GMOV (DEST-1,<070707070707>)^ + 4982 IFLE ,< + 4983 034665 200 06 0 00 041020 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 4984 IFG ,< + 4985 MOVE AC+1,[070707070707] + 4986 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 4987 GMOV (DEST,<123456765432>)^ + 4988 IFLE ,< + 4989 034666 200 07 0 00 041021 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 4990 IFG ,< + 4991 MOVE AC+1,[123456765432] + 4992 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 4993 GMOV (DEST+1,<552255225522>)^ + 4994 IFLE ,< + 4995 034667 200 10 0 00 041022 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 4996 IFG ,< + 4997 MOVE AC+1,[552255225522] + 4998 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-7 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0138 + + 4999 034670 251 12 0 00 000007 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5000 GCAM (SRCE-1,<252525252525>)^ + 5001 023101 SN=SN+1 + 5002 IFG ,< + 5003 MOVE AC-1,SRCE-1 + 5004 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5005 IFIDN ,,< + 5006 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5007 IFDIF ,,< + 5008 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5009 IFLE ,< + 5010 034671 312 03 0 00 041016 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5011 IFIDN ,,< + 5012 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5013 IFDIF ,,< + 5014 034672 002 03 0 00 023101 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5015 GCAM (SRCE,<230703,,603700>)^ + 5016 023102 SN=SN+1 + 5017 IFG ,< + 5018 MOVE AC-1,SRCE + 5019 CAME AC-1,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 5020 IFIDN ,,< + 5021 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5022 IFDIF ,,< + 5023 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5024 IFLE ,< + 5025 034673 312 04 0 00 040752 CAME SRCE,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 5026 IFIDN ,,< + 5027 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5028 IFDIF ,,< + 5029 034674 002 04 0 00 023102 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5030 GCAM (SRCE+1,<770077007700>)^ + 5031 023103 SN=SN+1 + 5032 IFG ,< + 5033 MOVE AC-1,SRCE+1 + 5034 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5035 IFIDN ,,< + 5036 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5037 IFDIF ,,< + 5038 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5039 IFLE ,< + 5040 034675 312 05 0 00 041017 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5041 IFIDN ,,< + 5042 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5043 IFDIF ,,< + 5044 034676 002 05 0 00 023103 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5045 GCAM (DEST-1,<070707070707>)^ + 5046 023104 SN=SN+1 + 5047 IFG ,< + 5048 MOVE AC-1,DEST-1 + 5049 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5050 IFIDN ,,< + 5051 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5052 IFDIF ,,< + 5053 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-8 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0139 + + 5054 IFLE ,< + 5055 034677 312 06 0 00 041020 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5056 IFIDN ,,< + 5057 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5058 IFDIF ,,< + 5059 034700 002 06 0 00 023104 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5060 GCAM (DEST,<230703,,603700>)^ + 5061 023105 SN=SN+1 + 5062 IFG ,< + 5063 MOVE AC-1,DEST + 5064 CAME AC-1,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 5065 IFIDN ,,< + 5066 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5067 IFDIF ,,< + 5068 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5069 IFLE ,< + 5070 034701 312 07 0 00 040752 CAME DEST,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 5071 IFIDN ,,< + 5072 034702 002 07 0 00 023105 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5073 IFDIF ,,< + 5074 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5075 GCAM (DEST+1,<552255225522>)^ + 5076 023106 SN=SN+1 + 5077 IFG ,< + 5078 MOVE AC-1,DEST+1 + 5079 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5080 IFIDN ,,< + 5081 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5082 IFDIF ,,< + 5083 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5084 IFLE ,< + 5085 034703 312 10 0 00 041022 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5086 IFIDN ,,< + 5087 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5088 IFDIF ,,< + 5089 034704 002 10 0 00 023106 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5090 034705 321 14 0 00 034661 JUMPL AC+2,G23100 ;LOOP ON ERROR^ + 5091 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-9 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0140 + + 5092 ;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + 5093 + 5094 BLTM1 (23200,14,<&17>,,0)^ + 5095 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5096 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5097 ;SOURCE DATA = 0 + 5098 + 5099 000014 AC=14 + 5100 SAVEAC (1,1)^ + 5101 034706 201 16 0 00 034706 MOVEI AC+2,. ;SAVE TEST PC + 5102 034707 202 16 0 00 030051 MOVEM AC+2,TESTPC + 5103 034710 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5104 034711 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5105 023200 SN=23200 + 5106 000006 SRCE=&17 ;1ST LOC OF SOURCE = &17 + 5107 040224 DEST=BLTBLK+4 ;1ST LOC OF DESTINATION = BLTBLK+4 + 5108 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5109 + 5110 034712 200 14 0 00 041025 G23200: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5111 GMOV (SRCE-1,<252525252525>)^ + 5112 IFLE ,< + 5113 034713 200 05 0 00 041016 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 5114 IFG ,< + 5115 MOVE AC+1,[252525252525] + 5116 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 5117 GMOV (SRCE,<0>)^ + 5118 IFLE ,< + 5119 034714 200 06 0 00 041011 MOVE SRCE,[0] ;PRELOAD SRCE WITH 0> + 5120 IFG ,< + 5121 MOVE AC+1,[0] + 5122 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 0>^ + 5123 GMOV (SRCE+1,<770077007700>)^ + 5124 IFLE ,< + 5125 034715 200 07 0 00 041017 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 5126 IFG ,< + 5127 MOVE AC+1,[770077007700] + 5128 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 5129 GMOV (DEST-1,<070707070707>)^ + 5130 IFLE ,< + 5131 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 5132 IFG ,< + 5133 034716 200 15 0 00 041020 MOVE AC+1,[070707070707] + 5134 034717 202 15 0 00 040223 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 5135 GMOV (DEST,<123456765432>)^ + 5136 IFLE ,< + 5137 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 5138 IFG ,< + 5139 034720 200 15 0 00 041021 MOVE AC+1,[123456765432] + 5140 034721 202 15 0 00 040224 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 5141 GMOV (DEST+1,<552255225522>)^ + 5142 IFLE ,< + 5143 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 5144 IFG ,< + 5145 034722 200 15 0 00 041022 MOVE AC+1,[552255225522] + 5146 034723 202 15 0 00 040225 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-10 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0141 + + 5147 034724 251 14 0 00 040224 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5148 GCAM (SRCE-1,<252525252525>)^ + 5149 023201 SN=SN+1 + 5150 IFG ,< + 5151 MOVE AC-1,SRCE-1 + 5152 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5153 IFIDN ,,< + 5154 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5155 IFDIF ,,< + 5156 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5157 IFLE ,< + 5158 034725 312 05 0 00 041016 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5159 IFIDN ,,< + 5160 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5161 IFDIF ,,< + 5162 034726 002 05 0 00 023201 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5163 GCAM (SRCE,<0>)^ + 5164 023202 SN=SN+1 + 5165 IFG ,< + 5166 MOVE AC-1,SRCE + 5167 CAME AC-1,[0] ;IS C(SRCE) = 0 + 5168 IFIDN ,,< + 5169 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5170 IFDIF ,,< + 5171 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5172 IFLE ,< + 5173 034727 312 06 0 00 041011 CAME SRCE,[0] ;IS C(SRCE) = 0 + 5174 IFIDN ,,< + 5175 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5176 IFDIF ,,< + 5177 034730 002 06 0 00 023202 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5178 GCAM (SRCE+1,<770077007700>)^ + 5179 023203 SN=SN+1 + 5180 IFG ,< + 5181 MOVE AC-1,SRCE+1 + 5182 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5183 IFIDN ,,< + 5184 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5185 IFDIF ,,< + 5186 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5187 IFLE ,< + 5188 034731 312 07 0 00 041017 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5189 IFIDN ,,< + 5190 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5191 IFDIF ,,< + 5192 034732 002 07 0 00 023203 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5193 GCAM (DEST-1,<070707070707>)^ + 5194 023204 SN=SN+1 + 5195 IFG ,< + 5196 034733 200 13 0 00 040223 MOVE AC-1,DEST-1 + 5197 034734 312 13 0 00 041020 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5198 IFIDN ,,< + 5199 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5200 IFDIF ,,< + 5201 034735 002 13 0 00 023204 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-11 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0142 + + 5202 IFLE ,< + 5203 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5204 IFIDN ,,< + 5205 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5206 IFDIF ,,< + 5207 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5208 GCAM (DEST,<0>)^ + 5209 023205 SN=SN+1 + 5210 IFG ,< + 5211 034736 200 13 0 00 040224 MOVE AC-1,DEST + 5212 034737 312 13 0 00 041011 CAME AC-1,[0] ;IS C(DEST) = 0 + 5213 IFIDN ,,< + 5214 034740 002 13 0 00 023205 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5215 IFDIF ,,< + 5216 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5217 IFLE ,< + 5218 CAME DEST,[0] ;IS C(DEST) = 0 + 5219 IFIDN ,,< + 5220 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5221 IFDIF ,,< + 5222 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5223 GCAM (DEST+1,<552255225522>)^ + 5224 023206 SN=SN+1 + 5225 IFG ,< + 5226 034741 200 13 0 00 040225 MOVE AC-1,DEST+1 + 5227 034742 312 13 0 00 041022 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5228 IFIDN ,,< + 5229 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5230 IFDIF ,,< + 5231 034743 002 13 0 00 023206 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5232 IFLE ,< + 5233 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5234 IFIDN ,,< + 5235 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5236 IFDIF ,,< + 5237 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5238 034744 321 16 0 00 034712 JUMPL AC+2,G23200 ;LOOP ON ERROR^ + 5239 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-12 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0143 + + 5240 ;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + 5241 + 5242 BLTM1 (23300,13,<&17>,,-1)^ + 5243 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5244 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5245 ;SOURCE DATA = -1 + 5246 + 5247 000013 AC=13 + 5248 SAVEAC (1,1)^ + 5249 034745 201 15 0 00 034745 MOVEI AC+2,. ;SAVE TEST PC + 5250 034746 202 15 0 00 030051 MOVEM AC+2,TESTPC + 5251 034747 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5252 034750 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5253 023300 SN=23300 + 5254 000005 SRCE=&17 ;1ST LOC OF SOURCE = &17 + 5255 040224 DEST=BLTBLK+4 ;1ST LOC OF DESTINATION = BLTBLK+4 + 5256 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5257 + 5258 034751 200 13 0 00 041026 G23300: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5259 GMOV (SRCE-1,<252525252525>)^ + 5260 IFLE ,< + 5261 034752 200 04 0 00 041016 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 5262 IFG ,< + 5263 MOVE AC+1,[252525252525] + 5264 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 5265 GMOV (SRCE,<-1>)^ + 5266 IFLE ,< + 5267 034753 200 05 0 00 040734 MOVE SRCE,[-1] ;PRELOAD SRCE WITH -1> + 5268 IFG ,< + 5269 MOVE AC+1,[-1] + 5270 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH -1>^ + 5271 GMOV (SRCE+1,<770077007700>)^ + 5272 IFLE ,< + 5273 034754 200 06 0 00 041017 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 5274 IFG ,< + 5275 MOVE AC+1,[770077007700] + 5276 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 5277 GMOV (DEST-1,<070707070707>)^ + 5278 IFLE ,< + 5279 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 5280 IFG ,< + 5281 034755 200 14 0 00 041020 MOVE AC+1,[070707070707] + 5282 034756 202 14 0 00 040223 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 5283 GMOV (DEST,<123456765432>)^ + 5284 IFLE ,< + 5285 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 5286 IFG ,< + 5287 034757 200 14 0 00 041021 MOVE AC+1,[123456765432] + 5288 034760 202 14 0 00 040224 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 5289 GMOV (DEST+1,<552255225522>)^ + 5290 IFLE ,< + 5291 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 5292 IFG ,< + 5293 034761 200 14 0 00 041022 MOVE AC+1,[552255225522] + 5294 034762 202 14 0 00 040225 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-13 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0144 + + 5295 034763 251 13 0 00 040224 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5296 GCAM (SRCE-1,<252525252525>)^ + 5297 023301 SN=SN+1 + 5298 IFG ,< + 5299 MOVE AC-1,SRCE-1 + 5300 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5301 IFIDN ,,< + 5302 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5303 IFDIF ,,< + 5304 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5305 IFLE ,< + 5306 034764 312 04 0 00 041016 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5307 IFIDN ,,< + 5308 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5309 IFDIF ,,< + 5310 034765 002 04 0 00 023301 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5311 GCAM (SRCE,<-1>)^ + 5312 023302 SN=SN+1 + 5313 IFG ,< + 5314 MOVE AC-1,SRCE + 5315 CAME AC-1,[-1] ;IS C(SRCE) = -1 + 5316 IFIDN ,,< + 5317 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5318 IFDIF ,,< + 5319 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5320 IFLE ,< + 5321 034766 312 05 0 00 040734 CAME SRCE,[-1] ;IS C(SRCE) = -1 + 5322 IFIDN ,,< + 5323 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5324 IFDIF ,,< + 5325 034767 002 05 0 00 023302 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5326 GCAM (SRCE+1,<770077007700>)^ + 5327 023303 SN=SN+1 + 5328 IFG ,< + 5329 MOVE AC-1,SRCE+1 + 5330 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5331 IFIDN ,,< + 5332 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5333 IFDIF ,,< + 5334 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5335 IFLE ,< + 5336 034770 312 06 0 00 041017 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5337 IFIDN ,,< + 5338 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5339 IFDIF ,,< + 5340 034771 002 06 0 00 023303 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5341 GCAM (DEST-1,<070707070707>)^ + 5342 023304 SN=SN+1 + 5343 IFG ,< + 5344 034772 200 12 0 00 040223 MOVE AC-1,DEST-1 + 5345 034773 312 12 0 00 041020 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5346 IFIDN ,,< + 5347 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5348 IFDIF ,,< + 5349 034774 002 12 0 00 023304 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-14 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0145 + + 5350 IFLE ,< + 5351 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5352 IFIDN ,,< + 5353 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5354 IFDIF ,,< + 5355 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5356 GCAM (DEST,<-1>)^ + 5357 023305 SN=SN+1 + 5358 IFG ,< + 5359 034775 200 12 0 00 040224 MOVE AC-1,DEST + 5360 034776 312 12 0 00 040734 CAME AC-1,[-1] ;IS C(DEST) = -1 + 5361 IFIDN ,,< + 5362 034777 002 12 0 00 023305 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5363 IFDIF ,,< + 5364 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5365 IFLE ,< + 5366 CAME DEST,[-1] ;IS C(DEST) = -1 + 5367 IFIDN ,,< + 5368 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5369 IFDIF ,,< + 5370 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5371 GCAM (DEST+1,<552255225522>)^ + 5372 023306 SN=SN+1 + 5373 IFG ,< + 5374 035000 200 12 0 00 040225 MOVE AC-1,DEST+1 + 5375 035001 312 12 0 00 041022 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5376 IFIDN ,,< + 5377 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5378 IFDIF ,,< + 5379 035002 002 12 0 00 023306 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5380 IFLE ,< + 5381 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5382 IFIDN ,,< + 5383 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5384 IFDIF ,,< + 5385 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5386 035003 321 15 0 00 034751 JUMPL AC+2,G23300 ;LOOP ON ERROR^ + 5387 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-15 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0146 + + 5388 ;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + 5389 + 5390 BLTM1 (23400,12,<&17>,,<230703,,603700>)^ + 5391 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5392 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5393 ;SOURCE DATA = 230703,,603700 + 5394 + 5395 000012 AC=12 + 5396 SAVEAC (1,1)^ + 5397 035004 201 14 0 00 035004 MOVEI AC+2,. ;SAVE TEST PC + 5398 035005 202 14 0 00 030051 MOVEM AC+2,TESTPC + 5399 035006 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5400 035007 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5401 023400 SN=23400 + 5402 000004 SRCE=&17 ;1ST LOC OF SOURCE = &17 + 5403 040224 DEST=BLTBLK+4 ;1ST LOC OF DESTINATION = BLTBLK+4 + 5404 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5405 + 5406 035010 200 12 0 00 041027 G23400: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5407 GMOV (SRCE-1,<252525252525>)^ + 5408 IFLE ,< + 5409 035011 200 03 0 00 041016 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 5410 IFG ,< + 5411 MOVE AC+1,[252525252525] + 5412 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 5413 GMOV (SRCE,<230703,,603700>)^ + 5414 IFLE ,< + 5415 035012 200 04 0 00 040752 MOVE SRCE,[230703,,603700] ;PRELOAD SRCE WITH 230703,,603700> + 5416 IFG ,< + 5417 MOVE AC+1,[230703,,603700] + 5418 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 230703,,603700>^ + 5419 GMOV (SRCE+1,<770077007700>)^ + 5420 IFLE ,< + 5421 035013 200 05 0 00 041017 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 5422 IFG ,< + 5423 MOVE AC+1,[770077007700] + 5424 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 5425 GMOV (DEST-1,<070707070707>)^ + 5426 IFLE ,< + 5427 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 5428 IFG ,< + 5429 035014 200 13 0 00 041020 MOVE AC+1,[070707070707] + 5430 035015 202 13 0 00 040223 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 5431 GMOV (DEST,<123456765432>)^ + 5432 IFLE ,< + 5433 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 5434 IFG ,< + 5435 035016 200 13 0 00 041021 MOVE AC+1,[123456765432] + 5436 035017 202 13 0 00 040224 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 5437 GMOV (DEST+1,<552255225522>)^ + 5438 IFLE ,< + 5439 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 5440 IFG ,< + 5441 035020 200 13 0 00 041022 MOVE AC+1,[552255225522] + 5442 035021 202 13 0 00 040225 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-16 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0147 + + 5443 035022 251 12 0 00 040224 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5444 GCAM (SRCE-1,<252525252525>)^ + 5445 023401 SN=SN+1 + 5446 IFG ,< + 5447 MOVE AC-1,SRCE-1 + 5448 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5449 IFIDN ,,< + 5450 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5451 IFDIF ,,< + 5452 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5453 IFLE ,< + 5454 035023 312 03 0 00 041016 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5455 IFIDN ,,< + 5456 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5457 IFDIF ,,< + 5458 035024 002 03 0 00 023401 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5459 GCAM (SRCE,<230703,,603700>)^ + 5460 023402 SN=SN+1 + 5461 IFG ,< + 5462 MOVE AC-1,SRCE + 5463 CAME AC-1,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 5464 IFIDN ,,< + 5465 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5466 IFDIF ,,< + 5467 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5468 IFLE ,< + 5469 035025 312 04 0 00 040752 CAME SRCE,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 5470 IFIDN ,,< + 5471 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5472 IFDIF ,,< + 5473 035026 002 04 0 00 023402 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5474 GCAM (SRCE+1,<770077007700>)^ + 5475 023403 SN=SN+1 + 5476 IFG ,< + 5477 MOVE AC-1,SRCE+1 + 5478 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5479 IFIDN ,,< + 5480 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5481 IFDIF ,,< + 5482 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5483 IFLE ,< + 5484 035027 312 05 0 00 041017 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5485 IFIDN ,,< + 5486 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5487 IFDIF ,,< + 5488 035030 002 05 0 00 023403 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5489 GCAM (DEST-1,<070707070707>)^ + 5490 023404 SN=SN+1 + 5491 IFG ,< + 5492 035031 200 11 0 00 040223 MOVE AC-1,DEST-1 + 5493 035032 312 11 0 00 041020 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5494 IFIDN ,,< + 5495 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5496 IFDIF ,,< + 5497 035033 002 11 0 00 023404 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-17 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0148 + + 5498 IFLE ,< + 5499 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5500 IFIDN ,,< + 5501 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5502 IFDIF ,,< + 5503 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5504 GCAM (DEST,<230703,,603700>)^ + 5505 023405 SN=SN+1 + 5506 IFG ,< + 5507 035034 200 11 0 00 040224 MOVE AC-1,DEST + 5508 035035 312 11 0 00 040752 CAME AC-1,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 5509 IFIDN ,,< + 5510 035036 002 11 0 00 023405 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5511 IFDIF ,,< + 5512 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5513 IFLE ,< + 5514 CAME DEST,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 5515 IFIDN ,,< + 5516 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5517 IFDIF ,,< + 5518 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5519 GCAM (DEST+1,<552255225522>)^ + 5520 023406 SN=SN+1 + 5521 IFG ,< + 5522 035037 200 11 0 00 040225 MOVE AC-1,DEST+1 + 5523 035040 312 11 0 00 041022 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5524 IFIDN ,,< + 5525 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5526 IFDIF ,,< + 5527 035041 002 11 0 00 023406 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5528 IFLE ,< + 5529 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5530 IFIDN ,,< + 5531 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5532 IFDIF ,,< + 5533 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5534 035042 321 14 0 00 035010 JUMPL AC+2,G23400 ;LOOP ON ERROR^ + 5535 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-18 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0149 + + 5536 ;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + 5537 + 5538 BLTM1 (23500,11,,,0)^ + 5539 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5540 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5541 ;SOURCE DATA = 0 + 5542 + 5543 000011 AC=11 + 5544 SAVEAC (1,1)^ + 5545 035043 201 13 0 00 035043 MOVEI AC+2,. ;SAVE TEST PC + 5546 035044 202 13 0 00 030051 MOVEM AC+2,TESTPC + 5547 035045 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5548 035046 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5549 023500 SN=23500 + 5550 040221 SRCE=BLTBLK+1 ;1ST LOC OF SOURCE = BLTBLK+1 + 5551 040224 DEST=BLTBLK+4 ;1ST LOC OF DESTINATION = BLTBLK+4 + 5552 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5553 + 5554 035047 200 11 0 00 041030 G23500: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5555 GMOV (SRCE-1,<252525252525>)^ + 5556 IFLE ,< + 5557 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 5558 IFG ,< + 5559 035050 200 12 0 00 041016 MOVE AC+1,[252525252525] + 5560 035051 202 12 0 00 040220 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 5561 GMOV (SRCE,<0>)^ + 5562 IFLE ,< + 5563 MOVE SRCE,[0] ;PRELOAD SRCE WITH 0> + 5564 IFG ,< + 5565 035052 200 12 0 00 041011 MOVE AC+1,[0] + 5566 035053 202 12 0 00 040221 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 0>^ + 5567 GMOV (SRCE+1,<770077007700>)^ + 5568 IFLE ,< + 5569 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 5570 IFG ,< + 5571 035054 200 12 0 00 041017 MOVE AC+1,[770077007700] + 5572 035055 202 12 0 00 040222 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 5573 GMOV (DEST-1,<070707070707>)^ + 5574 IFLE ,< + 5575 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 5576 IFG ,< + 5577 035056 200 12 0 00 041020 MOVE AC+1,[070707070707] + 5578 035057 202 12 0 00 040223 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 5579 GMOV (DEST,<123456765432>)^ + 5580 IFLE ,< + 5581 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 5582 IFG ,< + 5583 035060 200 12 0 00 041021 MOVE AC+1,[123456765432] + 5584 035061 202 12 0 00 040224 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 5585 GMOV (DEST+1,<552255225522>)^ + 5586 IFLE ,< + 5587 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 5588 IFG ,< + 5589 035062 200 12 0 00 041022 MOVE AC+1,[552255225522] + 5590 035063 202 12 0 00 040225 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-19 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0150 + + 5591 035064 251 11 0 00 040224 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5592 GCAM (SRCE-1,<252525252525>)^ + 5593 023501 SN=SN+1 + 5594 IFG ,< + 5595 035065 200 10 0 00 040220 MOVE AC-1,SRCE-1 + 5596 035066 312 10 0 00 041016 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5597 IFIDN ,,< + 5598 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5599 IFDIF ,,< + 5600 035067 002 10 0 00 023501 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5601 IFLE ,< + 5602 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5603 IFIDN ,,< + 5604 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5605 IFDIF ,,< + 5606 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5607 GCAM (SRCE,<0>)^ + 5608 023502 SN=SN+1 + 5609 IFG ,< + 5610 035070 200 10 0 00 040221 MOVE AC-1,SRCE + 5611 035071 312 10 0 00 041011 CAME AC-1,[0] ;IS C(SRCE) = 0 + 5612 IFIDN ,,< + 5613 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5614 IFDIF ,,< + 5615 035072 002 10 0 00 023502 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5616 IFLE ,< + 5617 CAME SRCE,[0] ;IS C(SRCE) = 0 + 5618 IFIDN ,,< + 5619 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5620 IFDIF ,,< + 5621 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5622 GCAM (SRCE+1,<770077007700>)^ + 5623 023503 SN=SN+1 + 5624 IFG ,< + 5625 035073 200 10 0 00 040222 MOVE AC-1,SRCE+1 + 5626 035074 312 10 0 00 041017 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5627 IFIDN ,,< + 5628 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5629 IFDIF ,,< + 5630 035075 002 10 0 00 023503 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5631 IFLE ,< + 5632 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5633 IFIDN ,,< + 5634 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5635 IFDIF ,,< + 5636 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5637 GCAM (DEST-1,<070707070707>)^ + 5638 023504 SN=SN+1 + 5639 IFG ,< + 5640 035076 200 10 0 00 040223 MOVE AC-1,DEST-1 + 5641 035077 312 10 0 00 041020 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5642 IFIDN ,,< + 5643 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5644 IFDIF ,,< + 5645 035100 002 10 0 00 023504 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-20 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0151 + + 5646 IFLE ,< + 5647 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5648 IFIDN ,,< + 5649 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5650 IFDIF ,,< + 5651 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5652 GCAM (DEST,<0>)^ + 5653 023505 SN=SN+1 + 5654 IFG ,< + 5655 035101 200 10 0 00 040224 MOVE AC-1,DEST + 5656 035102 312 10 0 00 041011 CAME AC-1,[0] ;IS C(DEST) = 0 + 5657 IFIDN ,,< + 5658 035103 002 10 0 00 023505 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5659 IFDIF ,,< + 5660 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5661 IFLE ,< + 5662 CAME DEST,[0] ;IS C(DEST) = 0 + 5663 IFIDN ,,< + 5664 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5665 IFDIF ,,< + 5666 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5667 GCAM (DEST+1,<552255225522>)^ + 5668 023506 SN=SN+1 + 5669 IFG ,< + 5670 035104 200 10 0 00 040225 MOVE AC-1,DEST+1 + 5671 035105 312 10 0 00 041022 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5672 IFIDN ,,< + 5673 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5674 IFDIF ,,< + 5675 035106 002 10 0 00 023506 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5676 IFLE ,< + 5677 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5678 IFIDN ,,< + 5679 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5680 IFDIF ,,< + 5681 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5682 035107 321 13 0 00 035047 JUMPL AC+2,G23500 ;LOOP ON ERROR^ + 5683 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-21 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0152 + + 5684 ;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + 5685 + 5686 BLTM1 (23600,10,,,-1)^ + 5687 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5688 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5689 ;SOURCE DATA = -1 + 5690 + 5691 000010 AC=10 + 5692 SAVEAC (1,1)^ + 5693 035110 201 12 0 00 035110 MOVEI AC+2,. ;SAVE TEST PC + 5694 035111 202 12 0 00 030051 MOVEM AC+2,TESTPC + 5695 035112 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5696 035113 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5697 023600 SN=23600 + 5698 040221 SRCE=BLTBLK+1 ;1ST LOC OF SOURCE = BLTBLK+1 + 5699 040224 DEST=BLTBLK+4 ;1ST LOC OF DESTINATION = BLTBLK+4 + 5700 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5701 + 5702 035114 200 10 0 00 041030 G23600: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5703 GMOV (SRCE-1,<252525252525>)^ + 5704 IFLE ,< + 5705 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 5706 IFG ,< + 5707 035115 200 11 0 00 041016 MOVE AC+1,[252525252525] + 5708 035116 202 11 0 00 040220 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 5709 GMOV (SRCE,<-1>)^ + 5710 IFLE ,< + 5711 MOVE SRCE,[-1] ;PRELOAD SRCE WITH -1> + 5712 IFG ,< + 5713 035117 200 11 0 00 040734 MOVE AC+1,[-1] + 5714 035120 202 11 0 00 040221 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH -1>^ + 5715 GMOV (SRCE+1,<770077007700>)^ + 5716 IFLE ,< + 5717 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 5718 IFG ,< + 5719 035121 200 11 0 00 041017 MOVE AC+1,[770077007700] + 5720 035122 202 11 0 00 040222 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 5721 GMOV (DEST-1,<070707070707>)^ + 5722 IFLE ,< + 5723 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 5724 IFG ,< + 5725 035123 200 11 0 00 041020 MOVE AC+1,[070707070707] + 5726 035124 202 11 0 00 040223 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 5727 GMOV (DEST,<123456765432>)^ + 5728 IFLE ,< + 5729 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 5730 IFG ,< + 5731 035125 200 11 0 00 041021 MOVE AC+1,[123456765432] + 5732 035126 202 11 0 00 040224 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 5733 GMOV (DEST+1,<552255225522>)^ + 5734 IFLE ,< + 5735 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 5736 IFG ,< + 5737 035127 200 11 0 00 041022 MOVE AC+1,[552255225522] + 5738 035130 202 11 0 00 040225 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-22 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0153 + + 5739 035131 251 10 0 00 040224 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5740 GCAM (SRCE-1,<252525252525>)^ + 5741 023601 SN=SN+1 + 5742 IFG ,< + 5743 035132 200 07 0 00 040220 MOVE AC-1,SRCE-1 + 5744 035133 312 07 0 00 041016 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5745 IFIDN ,,< + 5746 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5747 IFDIF ,,< + 5748 035134 002 07 0 00 023601 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5749 IFLE ,< + 5750 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5751 IFIDN ,,< + 5752 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5753 IFDIF ,,< + 5754 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5755 GCAM (SRCE,<-1>)^ + 5756 023602 SN=SN+1 + 5757 IFG ,< + 5758 035135 200 07 0 00 040221 MOVE AC-1,SRCE + 5759 035136 312 07 0 00 040734 CAME AC-1,[-1] ;IS C(SRCE) = -1 + 5760 IFIDN ,,< + 5761 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5762 IFDIF ,,< + 5763 035137 002 07 0 00 023602 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5764 IFLE ,< + 5765 CAME SRCE,[-1] ;IS C(SRCE) = -1 + 5766 IFIDN ,,< + 5767 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5768 IFDIF ,,< + 5769 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5770 GCAM (SRCE+1,<770077007700>)^ + 5771 023603 SN=SN+1 + 5772 IFG ,< + 5773 035140 200 07 0 00 040222 MOVE AC-1,SRCE+1 + 5774 035141 312 07 0 00 041017 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5775 IFIDN ,,< + 5776 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5777 IFDIF ,,< + 5778 035142 002 07 0 00 023603 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5779 IFLE ,< + 5780 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5781 IFIDN ,,< + 5782 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5783 IFDIF ,,< + 5784 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5785 GCAM (DEST-1,<070707070707>)^ + 5786 023604 SN=SN+1 + 5787 IFG ,< + 5788 035143 200 07 0 00 040223 MOVE AC-1,DEST-1 + 5789 035144 312 07 0 00 041020 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5790 IFIDN ,,< + 5791 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5792 IFDIF ,,< + 5793 035145 002 07 0 00 023604 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-23 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0154 + + 5794 IFLE ,< + 5795 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5796 IFIDN ,,< + 5797 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5798 IFDIF ,,< + 5799 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5800 GCAM (DEST,<-1>)^ + 5801 023605 SN=SN+1 + 5802 IFG ,< + 5803 035146 200 07 0 00 040224 MOVE AC-1,DEST + 5804 035147 312 07 0 00 040734 CAME AC-1,[-1] ;IS C(DEST) = -1 + 5805 IFIDN ,,< + 5806 035150 002 07 0 00 023605 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5807 IFDIF ,,< + 5808 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5809 IFLE ,< + 5810 CAME DEST,[-1] ;IS C(DEST) = -1 + 5811 IFIDN ,,< + 5812 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5813 IFDIF ,,< + 5814 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5815 GCAM (DEST+1,<552255225522>)^ + 5816 023606 SN=SN+1 + 5817 IFG ,< + 5818 035151 200 07 0 00 040225 MOVE AC-1,DEST+1 + 5819 035152 312 07 0 00 041022 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5820 IFIDN ,,< + 5821 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5822 IFDIF ,,< + 5823 035153 002 07 0 00 023606 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5824 IFLE ,< + 5825 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5826 IFIDN ,,< + 5827 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5828 IFDIF ,,< + 5829 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5830 035154 321 12 0 00 035114 JUMPL AC+2,G23600 ;LOOP ON ERROR^ + 5831 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-24 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0155 + + 5832 ;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + 5833 + 5834 BLTM1 (23700,7,,,<230703,,603700>)^ + 5835 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5836 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5837 ;SOURCE DATA = 230703,,603700 + 5838 + 5839 000007 AC=7 + 5840 SAVEAC (1,1)^ + 5841 035155 201 11 0 00 035155 MOVEI AC+2,. ;SAVE TEST PC + 5842 035156 202 11 0 00 030051 MOVEM AC+2,TESTPC + 5843 035157 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5844 035160 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5845 023700 SN=23700 + 5846 040221 SRCE=BLTBLK+1 ;1ST LOC OF SOURCE = BLTBLK+1 + 5847 040224 DEST=BLTBLK+4 ;1ST LOC OF DESTINATION = BLTBLK+4 + 5848 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5849 + 5850 035161 200 07 0 00 041030 G23700: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5851 GMOV (SRCE-1,<252525252525>)^ + 5852 IFLE ,< + 5853 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 5854 IFG ,< + 5855 035162 200 10 0 00 041016 MOVE AC+1,[252525252525] + 5856 035163 202 10 0 00 040220 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 5857 GMOV (SRCE,<230703,,603700>)^ + 5858 IFLE ,< + 5859 MOVE SRCE,[230703,,603700] ;PRELOAD SRCE WITH 230703,,603700> + 5860 IFG ,< + 5861 035164 200 10 0 00 040752 MOVE AC+1,[230703,,603700] + 5862 035165 202 10 0 00 040221 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 230703,,603700>^ + 5863 GMOV (SRCE+1,<770077007700>)^ + 5864 IFLE ,< + 5865 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 5866 IFG ,< + 5867 035166 200 10 0 00 041017 MOVE AC+1,[770077007700] + 5868 035167 202 10 0 00 040222 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 5869 GMOV (DEST-1,<070707070707>)^ + 5870 IFLE ,< + 5871 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 5872 IFG ,< + 5873 035170 200 10 0 00 041020 MOVE AC+1,[070707070707] + 5874 035171 202 10 0 00 040223 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 5875 GMOV (DEST,<123456765432>)^ + 5876 IFLE ,< + 5877 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 5878 IFG ,< + 5879 035172 200 10 0 00 041021 MOVE AC+1,[123456765432] + 5880 035173 202 10 0 00 040224 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 5881 GMOV (DEST+1,<552255225522>)^ + 5882 IFLE ,< + 5883 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 5884 IFG ,< + 5885 035174 200 10 0 00 041022 MOVE AC+1,[552255225522] + 5886 035175 202 10 0 00 040225 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-25 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0156 + + 5887 035176 251 07 0 00 040224 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 5888 GCAM (SRCE-1,<252525252525>)^ + 5889 023701 SN=SN+1 + 5890 IFG ,< + 5891 035177 200 06 0 00 040220 MOVE AC-1,SRCE-1 + 5892 035200 312 06 0 00 041016 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5893 IFIDN ,,< + 5894 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5895 IFDIF ,,< + 5896 035201 002 06 0 00 023701 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 5897 IFLE ,< + 5898 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 5899 IFIDN ,,< + 5900 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 5901 IFDIF ,,< + 5902 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 5903 GCAM (SRCE,<230703,,603700>)^ + 5904 023702 SN=SN+1 + 5905 IFG ,< + 5906 035202 200 06 0 00 040221 MOVE AC-1,SRCE + 5907 035203 312 06 0 00 040752 CAME AC-1,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 5908 IFIDN ,,< + 5909 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5910 IFDIF ,,< + 5911 035204 002 06 0 00 023702 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 5912 IFLE ,< + 5913 CAME SRCE,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 5914 IFIDN ,,< + 5915 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 5916 IFDIF ,,< + 5917 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 5918 GCAM (SRCE+1,<770077007700>)^ + 5919 023703 SN=SN+1 + 5920 IFG ,< + 5921 035205 200 06 0 00 040222 MOVE AC-1,SRCE+1 + 5922 035206 312 06 0 00 041017 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5923 IFIDN ,,< + 5924 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5925 IFDIF ,,< + 5926 035207 002 06 0 00 023703 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 5927 IFLE ,< + 5928 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 5929 IFIDN ,,< + 5930 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 5931 IFDIF ,,< + 5932 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 5933 GCAM (DEST-1,<070707070707>)^ + 5934 023704 SN=SN+1 + 5935 IFG ,< + 5936 035210 200 06 0 00 040223 MOVE AC-1,DEST-1 + 5937 035211 312 06 0 00 041020 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5938 IFIDN ,,< + 5939 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5940 IFDIF ,,< + 5941 035212 002 06 0 00 023704 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-26 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0157 + + 5942 IFLE ,< + 5943 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 5944 IFIDN ,,< + 5945 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 5946 IFDIF ,,< + 5947 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 5948 GCAM (DEST,<230703,,603700>)^ + 5949 023705 SN=SN+1 + 5950 IFG ,< + 5951 035213 200 06 0 00 040224 MOVE AC-1,DEST + 5952 035214 312 06 0 00 040752 CAME AC-1,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 5953 IFIDN ,,< + 5954 035215 002 06 0 00 023705 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5955 IFDIF ,,< + 5956 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 5957 IFLE ,< + 5958 CAME DEST,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 5959 IFIDN ,,< + 5960 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 5961 IFDIF ,,< + 5962 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 5963 GCAM (DEST+1,<552255225522>)^ + 5964 023706 SN=SN+1 + 5965 IFG ,< + 5966 035216 200 06 0 00 040225 MOVE AC-1,DEST+1 + 5967 035217 312 06 0 00 041022 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5968 IFIDN ,,< + 5969 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 5970 IFDIF ,,< + 5971 035220 002 06 0 00 023706 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 5972 IFLE ,< + 5973 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 5974 IFIDN ,,< + 5975 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 5976 IFDIF ,,< + 5977 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 5978 035221 321 11 0 00 035161 JUMPL AC+2,G23700 ;LOOP ON ERROR^ + 5979 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-27 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0158 + + 5980 ;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + 5981 + 5982 BLTM1 (24000,14,,<&17>,0)^ + 5983 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 5984 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 5985 ;SOURCE DATA = 0 + 5986 + 5987 000014 AC=14 + 5988 SAVEAC (1,1)^ + 5989 035222 201 16 0 00 035222 MOVEI AC+2,. ;SAVE TEST PC + 5990 035223 202 16 0 00 030051 MOVEM AC+2,TESTPC + 5991 035224 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5992 035225 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5993 024000 SN=24000 + 5994 040221 SRCE=BLTBLK+1 ;1ST LOC OF SOURCE = BLTBLK+1 + 5995 000006 DEST=&17 ;1ST LOC OF DESTINATION = &17 + 5996 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 5997 + 5998 035226 200 14 0 00 041031 G24000: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 5999 GMOV (SRCE-1,<252525252525>)^ + 6000 IFLE ,< + 6001 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 6002 IFG ,< + 6003 035227 200 15 0 00 041016 MOVE AC+1,[252525252525] + 6004 035230 202 15 0 00 040220 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 6005 GMOV (SRCE,<0>)^ + 6006 IFLE ,< + 6007 MOVE SRCE,[0] ;PRELOAD SRCE WITH 0> + 6008 IFG ,< + 6009 035231 200 15 0 00 041011 MOVE AC+1,[0] + 6010 035232 202 15 0 00 040221 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 0>^ + 6011 GMOV (SRCE+1,<770077007700>)^ + 6012 IFLE ,< + 6013 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 6014 IFG ,< + 6015 035233 200 15 0 00 041017 MOVE AC+1,[770077007700] + 6016 035234 202 15 0 00 040222 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 6017 GMOV (DEST-1,<070707070707>)^ + 6018 IFLE ,< + 6019 035235 200 05 0 00 041020 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 6020 IFG ,< + 6021 MOVE AC+1,[070707070707] + 6022 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 6023 GMOV (DEST,<123456765432>)^ + 6024 IFLE ,< + 6025 035236 200 06 0 00 041021 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 6026 IFG ,< + 6027 MOVE AC+1,[123456765432] + 6028 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 6029 GMOV (DEST+1,<552255225522>)^ + 6030 IFLE ,< + 6031 035237 200 07 0 00 041022 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 6032 IFG ,< + 6033 MOVE AC+1,[552255225522] + 6034 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-28 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0159 + + 6035 035240 251 14 0 00 000006 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 6036 GCAM (SRCE-1,<252525252525>)^ + 6037 024001 SN=SN+1 + 6038 IFG ,< + 6039 035241 200 13 0 00 040220 MOVE AC-1,SRCE-1 + 6040 035242 312 13 0 00 041016 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 6041 IFIDN ,,< + 6042 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6043 IFDIF ,,< + 6044 035243 002 13 0 00 024001 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 6045 IFLE ,< + 6046 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 6047 IFIDN ,,< + 6048 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 6049 IFDIF ,,< + 6050 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 6051 GCAM (SRCE,<0>)^ + 6052 024002 SN=SN+1 + 6053 IFG ,< + 6054 035244 200 13 0 00 040221 MOVE AC-1,SRCE + 6055 035245 312 13 0 00 041011 CAME AC-1,[0] ;IS C(SRCE) = 0 + 6056 IFIDN ,,< + 6057 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6058 IFDIF ,,< + 6059 035246 002 13 0 00 024002 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 6060 IFLE ,< + 6061 CAME SRCE,[0] ;IS C(SRCE) = 0 + 6062 IFIDN ,,< + 6063 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 6064 IFDIF ,,< + 6065 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 6066 GCAM (SRCE+1,<770077007700>)^ + 6067 024003 SN=SN+1 + 6068 IFG ,< + 6069 035247 200 13 0 00 040222 MOVE AC-1,SRCE+1 + 6070 035250 312 13 0 00 041017 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 6071 IFIDN ,,< + 6072 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6073 IFDIF ,,< + 6074 035251 002 13 0 00 024003 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 6075 IFLE ,< + 6076 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 6077 IFIDN ,,< + 6078 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 6079 IFDIF ,,< + 6080 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 6081 GCAM (DEST-1,<070707070707>)^ + 6082 024004 SN=SN+1 + 6083 IFG ,< + 6084 MOVE AC-1,DEST-1 + 6085 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 6086 IFIDN ,,< + 6087 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6088 IFDIF ,,< + 6089 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-29 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0160 + + 6090 IFLE ,< + 6091 035252 312 05 0 00 041020 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 6092 IFIDN ,,< + 6093 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 6094 IFDIF ,,< + 6095 035253 002 05 0 00 024004 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 6096 GCAM (DEST,<0>)^ + 6097 024005 SN=SN+1 + 6098 IFG ,< + 6099 MOVE AC-1,DEST + 6100 CAME AC-1,[0] ;IS C(DEST) = 0 + 6101 IFIDN ,,< + 6102 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6103 IFDIF ,,< + 6104 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 6105 IFLE ,< + 6106 035254 312 06 0 00 041011 CAME DEST,[0] ;IS C(DEST) = 0 + 6107 IFIDN ,,< + 6108 035255 002 06 0 00 024005 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 6109 IFDIF ,,< + 6110 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 6111 GCAM (DEST+1,<552255225522>)^ + 6112 024006 SN=SN+1 + 6113 IFG ,< + 6114 MOVE AC-1,DEST+1 + 6115 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 6116 IFIDN ,,< + 6117 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6118 IFDIF ,,< + 6119 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 6120 IFLE ,< + 6121 035256 312 07 0 00 041022 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 6122 IFIDN ,,< + 6123 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 6124 IFDIF ,,< + 6125 035257 002 07 0 00 024006 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 6126 035260 321 16 0 00 035226 JUMPL AC+2,G24000 ;LOOP ON ERROR^ + 6127 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-30 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0161 + + 6128 ;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + 6129 + 6130 BLTM1 (24100,13,,<&17>,-1)^ + 6131 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 6132 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 6133 ;SOURCE DATA = -1 + 6134 + 6135 000013 AC=13 + 6136 SAVEAC (1,1)^ + 6137 035261 201 15 0 00 035261 MOVEI AC+2,. ;SAVE TEST PC + 6138 035262 202 15 0 00 030051 MOVEM AC+2,TESTPC + 6139 035263 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6140 035264 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6141 024100 SN=24100 + 6142 040221 SRCE=BLTBLK+1 ;1ST LOC OF SOURCE = BLTBLK+1 + 6143 000005 DEST=&17 ;1ST LOC OF DESTINATION = &17 + 6144 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 6145 + 6146 035265 200 13 0 00 041032 G24100: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 6147 GMOV (SRCE-1,<252525252525>)^ + 6148 IFLE ,< + 6149 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 6150 IFG ,< + 6151 035266 200 14 0 00 041016 MOVE AC+1,[252525252525] + 6152 035267 202 14 0 00 040220 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 6153 GMOV (SRCE,<-1>)^ + 6154 IFLE ,< + 6155 MOVE SRCE,[-1] ;PRELOAD SRCE WITH -1> + 6156 IFG ,< + 6157 035270 200 14 0 00 040734 MOVE AC+1,[-1] + 6158 035271 202 14 0 00 040221 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH -1>^ + 6159 GMOV (SRCE+1,<770077007700>)^ + 6160 IFLE ,< + 6161 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 6162 IFG ,< + 6163 035272 200 14 0 00 041017 MOVE AC+1,[770077007700] + 6164 035273 202 14 0 00 040222 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 6165 GMOV (DEST-1,<070707070707>)^ + 6166 IFLE ,< + 6167 035274 200 04 0 00 041020 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 6168 IFG ,< + 6169 MOVE AC+1,[070707070707] + 6170 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 6171 GMOV (DEST,<123456765432>)^ + 6172 IFLE ,< + 6173 035275 200 05 0 00 041021 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 6174 IFG ,< + 6175 MOVE AC+1,[123456765432] + 6176 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 6177 GMOV (DEST+1,<552255225522>)^ + 6178 IFLE ,< + 6179 035276 200 06 0 00 041022 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 6180 IFG ,< + 6181 MOVE AC+1,[552255225522] + 6182 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-31 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0162 + + 6183 035277 251 13 0 00 000005 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 6184 GCAM (SRCE-1,<252525252525>)^ + 6185 024101 SN=SN+1 + 6186 IFG ,< + 6187 035300 200 12 0 00 040220 MOVE AC-1,SRCE-1 + 6188 035301 312 12 0 00 041016 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 6189 IFIDN ,,< + 6190 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6191 IFDIF ,,< + 6192 035302 002 12 0 00 024101 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 6193 IFLE ,< + 6194 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 6195 IFIDN ,,< + 6196 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 6197 IFDIF ,,< + 6198 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 6199 GCAM (SRCE,<-1>)^ + 6200 024102 SN=SN+1 + 6201 IFG ,< + 6202 035303 200 12 0 00 040221 MOVE AC-1,SRCE + 6203 035304 312 12 0 00 040734 CAME AC-1,[-1] ;IS C(SRCE) = -1 + 6204 IFIDN ,,< + 6205 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6206 IFDIF ,,< + 6207 035305 002 12 0 00 024102 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 6208 IFLE ,< + 6209 CAME SRCE,[-1] ;IS C(SRCE) = -1 + 6210 IFIDN ,,< + 6211 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 6212 IFDIF ,,< + 6213 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 6214 GCAM (SRCE+1,<770077007700>)^ + 6215 024103 SN=SN+1 + 6216 IFG ,< + 6217 035306 200 12 0 00 040222 MOVE AC-1,SRCE+1 + 6218 035307 312 12 0 00 041017 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 6219 IFIDN ,,< + 6220 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6221 IFDIF ,,< + 6222 035310 002 12 0 00 024103 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 6223 IFLE ,< + 6224 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 6225 IFIDN ,,< + 6226 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 6227 IFDIF ,,< + 6228 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 6229 GCAM (DEST-1,<070707070707>)^ + 6230 024104 SN=SN+1 + 6231 IFG ,< + 6232 MOVE AC-1,DEST-1 + 6233 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 6234 IFIDN ,,< + 6235 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6236 IFDIF ,,< + 6237 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-32 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0163 + + 6238 IFLE ,< + 6239 035311 312 04 0 00 041020 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 6240 IFIDN ,,< + 6241 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 6242 IFDIF ,,< + 6243 035312 002 04 0 00 024104 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 6244 GCAM (DEST,<-1>)^ + 6245 024105 SN=SN+1 + 6246 IFG ,< + 6247 MOVE AC-1,DEST + 6248 CAME AC-1,[-1] ;IS C(DEST) = -1 + 6249 IFIDN ,,< + 6250 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6251 IFDIF ,,< + 6252 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 6253 IFLE ,< + 6254 035313 312 05 0 00 040734 CAME DEST,[-1] ;IS C(DEST) = -1 + 6255 IFIDN ,,< + 6256 035314 002 05 0 00 024105 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 6257 IFDIF ,,< + 6258 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 6259 GCAM (DEST+1,<552255225522>)^ + 6260 024106 SN=SN+1 + 6261 IFG ,< + 6262 MOVE AC-1,DEST+1 + 6263 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 6264 IFIDN ,,< + 6265 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6266 IFDIF ,,< + 6267 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 6268 IFLE ,< + 6269 035315 312 06 0 00 041022 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 6270 IFIDN ,,< + 6271 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 6272 IFDIF ,,< + 6273 035316 002 06 0 00 024106 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 6274 035317 321 15 0 00 035265 JUMPL AC+2,G24100 ;LOOP ON ERROR^ + 6275 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-33 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0164 + + 6276 ;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + 6277 + 6278 BLTM1 (24200,12,,<&17>,<230703,,603700>)^ + 6279 ;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA + 6280 ;WHERE SOURCE AND DESTINATION ARE DIFFERENT + 6281 ;SOURCE DATA = 230703,,603700 + 6282 + 6283 000012 AC=12 + 6284 SAVEAC (1,1)^ + 6285 035320 201 14 0 00 035320 MOVEI AC+2,. ;SAVE TEST PC + 6286 035321 202 14 0 00 030051 MOVEM AC+2,TESTPC + 6287 035322 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6288 035323 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6289 024200 SN=24200 + 6290 040221 SRCE=BLTBLK+1 ;1ST LOC OF SOURCE = BLTBLK+1 + 6291 000004 DEST=&17 ;1ST LOC OF DESTINATION = &17 + 6292 000001 SIZ=1 ;BLOCK SIZE = 1 WORD + 6293 + 6294 035324 200 12 0 00 041033 G24200: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + 6295 GMOV (SRCE-1,<252525252525>)^ + 6296 IFLE ,< + 6297 MOVE SRCE-1,[252525252525] ;PRELOAD SRCE-1 WITH 252525252525> + 6298 IFG ,< + 6299 035325 200 13 0 00 041016 MOVE AC+1,[252525252525] + 6300 035326 202 13 0 00 040220 MOVEM AC+1,SRCE-1 ;PRELOAD SRCE-1 WITH 252525252525>^ + 6301 GMOV (SRCE,<230703,,603700>)^ + 6302 IFLE ,< + 6303 MOVE SRCE,[230703,,603700] ;PRELOAD SRCE WITH 230703,,603700> + 6304 IFG ,< + 6305 035327 200 13 0 00 040752 MOVE AC+1,[230703,,603700] + 6306 035330 202 13 0 00 040221 MOVEM AC+1,SRCE ;PRELOAD SRCE WITH 230703,,603700>^ + 6307 GMOV (SRCE+1,<770077007700>)^ + 6308 IFLE ,< + 6309 MOVE SRCE+1,[770077007700] ;PRELOAD SRCE+1 WITH 770077007700> + 6310 IFG ,< + 6311 035331 200 13 0 00 041017 MOVE AC+1,[770077007700] + 6312 035332 202 13 0 00 040222 MOVEM AC+1,SRCE+1 ;PRELOAD SRCE+1 WITH 770077007700>^ + 6313 GMOV (DEST-1,<070707070707>)^ + 6314 IFLE ,< + 6315 035333 200 03 0 00 041020 MOVE DEST-1,[070707070707] ;PRELOAD DEST-1 WITH 070707070707> + 6316 IFG ,< + 6317 MOVE AC+1,[070707070707] + 6318 MOVEM AC+1,DEST-1 ;PRELOAD DEST-1 WITH 070707070707>^ + 6319 GMOV (DEST,<123456765432>)^ + 6320 IFLE ,< + 6321 035334 200 04 0 00 041021 MOVE DEST,[123456765432] ;PRELOAD DEST WITH 123456765432> + 6322 IFG ,< + 6323 MOVE AC+1,[123456765432] + 6324 MOVEM AC+1,DEST ;PRELOAD DEST WITH 123456765432>^ + 6325 GMOV (DEST+1,<552255225522>)^ + 6326 IFLE ,< + 6327 035335 200 05 0 00 041022 MOVE DEST+1,[552255225522] ;PRELOAD DEST+1 WITH 552255225522> + 6328 IFG ,< + 6329 MOVE AC+1,[552255225522] + 6330 MOVEM AC+1,DEST+1 ;PRELOAD DEST+1 WITH 552255225522>^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-34 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0165 + + 6331 035336 251 12 0 00 000004 BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + 6332 GCAM (SRCE-1,<252525252525>)^ + 6333 024201 SN=SN+1 + 6334 IFG ,< + 6335 035337 200 11 0 00 040220 MOVE AC-1,SRCE-1 + 6336 035340 312 11 0 00 041016 CAME AC-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 6337 IFIDN ,,< + 6338 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6339 IFDIF ,,< + 6340 035341 002 11 0 00 024201 ER2 AC-1,SN ;C(SRCE-1) WAS CLOBBERED>> + 6341 IFLE ,< + 6342 CAME SRCE-1,[252525252525] ;IS C(SRCE-1) = 252525252525 + 6343 IFIDN ,,< + 6344 ER2 SRCE-1,SN ;DEST NOT LOADED CORRECTLY> + 6345 IFDIF ,,< + 6346 ER2 SRCE-1,SN ;C(SRCE-1) WAS CLOBBERED>>^ + 6347 GCAM (SRCE,<230703,,603700>)^ + 6348 024202 SN=SN+1 + 6349 IFG ,< + 6350 035342 200 11 0 00 040221 MOVE AC-1,SRCE + 6351 035343 312 11 0 00 040752 CAME AC-1,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 6352 IFIDN ,,< + 6353 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6354 IFDIF ,,< + 6355 035344 002 11 0 00 024202 ER2 AC-1,SN ;C(SRCE) WAS CLOBBERED>> + 6356 IFLE ,< + 6357 CAME SRCE,[230703,,603700] ;IS C(SRCE) = 230703,,603700 + 6358 IFIDN ,,< + 6359 ER2 SRCE,SN ;DEST NOT LOADED CORRECTLY> + 6360 IFDIF ,,< + 6361 ER2 SRCE,SN ;C(SRCE) WAS CLOBBERED>>^ + 6362 GCAM (SRCE+1,<770077007700>)^ + 6363 024203 SN=SN+1 + 6364 IFG ,< + 6365 035345 200 11 0 00 040222 MOVE AC-1,SRCE+1 + 6366 035346 312 11 0 00 041017 CAME AC-1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 6367 IFIDN ,,< + 6368 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6369 IFDIF ,,< + 6370 035347 002 11 0 00 024203 ER2 AC-1,SN ;C(SRCE+1) WAS CLOBBERED>> + 6371 IFLE ,< + 6372 CAME SRCE+1,[770077007700] ;IS C(SRCE+1) = 770077007700 + 6373 IFIDN ,,< + 6374 ER2 SRCE+1,SN ;DEST NOT LOADED CORRECTLY> + 6375 IFDIF ,,< + 6376 ER2 SRCE+1,SN ;C(SRCE+1) WAS CLOBBERED>>^ + 6377 GCAM (DEST-1,<070707070707>)^ + 6378 024204 SN=SN+1 + 6379 IFG ,< + 6380 MOVE AC-1,DEST-1 + 6381 CAME AC-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 6382 IFIDN ,,< + 6383 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6384 IFDIF ,,< + 6385 ER2 AC-1,SN ;C(DEST-1) WAS CLOBBERED>> +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 66-35 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0166 + + 6386 IFLE ,< + 6387 035350 312 03 0 00 041020 CAME DEST-1,[070707070707] ;IS C(DEST-1) = 070707070707 + 6388 IFIDN ,,< + 6389 ER2 DEST-1,SN ;DEST NOT LOADED CORRECTLY> + 6390 IFDIF ,,< + 6391 035351 002 03 0 00 024204 ER2 DEST-1,SN ;C(DEST-1) WAS CLOBBERED>>^ + 6392 GCAM (DEST,<230703,,603700>)^ + 6393 024205 SN=SN+1 + 6394 IFG ,< + 6395 MOVE AC-1,DEST + 6396 CAME AC-1,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 6397 IFIDN ,,< + 6398 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6399 IFDIF ,,< + 6400 ER2 AC-1,SN ;C(DEST) WAS CLOBBERED>> + 6401 IFLE ,< + 6402 035352 312 04 0 00 040752 CAME DEST,[230703,,603700] ;IS C(DEST) = 230703,,603700 + 6403 IFIDN ,,< + 6404 035353 002 04 0 00 024205 ER2 DEST,SN ;DEST NOT LOADED CORRECTLY> + 6405 IFDIF ,,< + 6406 ER2 DEST,SN ;C(DEST) WAS CLOBBERED>>^ + 6407 GCAM (DEST+1,<552255225522>)^ + 6408 024206 SN=SN+1 + 6409 IFG ,< + 6410 MOVE AC-1,DEST+1 + 6411 CAME AC-1,[552255225522] ;IS C(DEST+1) = 552255225522 + 6412 IFIDN ,,< + 6413 ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + 6414 IFDIF ,,< + 6415 ER2 AC-1,SN ;C(DEST+1) WAS CLOBBERED>> + 6416 IFLE ,< + 6417 035354 312 05 0 00 041022 CAME DEST+1,[552255225522] ;IS C(DEST+1) = 552255225522 + 6418 IFIDN ,,< + 6419 ER2 DEST+1,SN ;DEST NOT LOADED CORRECTLY> + 6420 IFDIF ,,< + 6421 035355 002 05 0 00 024206 ER2 DEST+1,SN ;C(DEST+1) WAS CLOBBERED>>^ + 6422 035356 321 14 0 00 035324 JUMPL AC+2,G24200 ;LOOP ON ERROR^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 67 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0167 + + 6423 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6424 ;- AC RANGE - ZEROS + 6425 + 6426 000014 AC=14 + 6427 SAVEAC (1,1)^ + 6428 035357 201 16 0 00 035357 MOVEI AC+2,. ;SAVE TEST PC + 6429 035360 202 16 0 00 030051 MOVEM AC+2,TESTPC + 6430 035361 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6431 035362 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6432 + 6433 020100 SN=20100 + 6434 000004 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + 6435 000004 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + 6436 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6437 + 6438 035363 200 14 0 00 041034 G20100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF SOURCE + 6439 ;AND DESTINATION BLOCKS + 6440 035364 477 03 0 00 000011 SETOB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF + 6441 ;SOURCE BLOCK +1 WITH ONES + 6442 035365 403 04 0 00 000005 SETZB SRCE,SRCE+1 ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH ZEROS + 6443 035366 403 06 0 00 000007 SETZB SRCE+2,SRCE+3 + 6444 035367 402 00 0 00 000010 SETZM SRCE+4 + 6445 035370 251 14 0 00 000010 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6446 020101 SN=SN+1 + 6447 035371 312 03 0 00 040734 CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + 6448 ;CLOBBERED? + 6449 035372 002 03 0 00 020101 ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6450 ;BLOCK WAS CLOBBERED? + 6451 020102 SN=SN+1 + 6452 035373 332 00 0 00 000004 SKIPE DEST ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 6453 ;CORRECTLY FROM SOURCE? + 6454 035374 002 04 0 00 020102 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6455 ;CORRECTLY FROM SOURCE + 6456 020103 SN=SN+1 + 6457 035375 332 00 0 00 000005 SKIPE DEST+1 ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6458 ;FROM SOURCE? + 6459 035376 002 05 0 00 020103 ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6460 ;CORRECTLY FROM SOURCE + 6461 020104 SN=SN+1 + 6462 035377 332 00 0 00 000006 SKIPE DEST+2 ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6463 ;FROM SOURCE? + 6464 035400 002 06 0 00 020104 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6465 ;CORRECTLY FROM SOURCE + 6466 020105 SN=SN+1 + 6467 035401 332 00 0 00 000007 SKIPE DEST+3 ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6468 ;FROM SOURCE? + 6469 035402 002 07 0 00 020105 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6470 ;CORRECTLY FROM SOURCE + 6471 020106 SN=SN+1 + 6472 035403 332 00 0 00 000010 SKIPE DEST+4 ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6473 ;FROM SOURCE? + 6474 035404 002 10 0 00 020106 ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6475 ;CORRECTLY FROM SOURCE + 6476 020107 SN=SN+1 + 6477 035405 312 11 0 00 040734 CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 67-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0168 + + 6478 ;CLOBBERED? + 6479 035406 002 11 0 00 020107 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 6480 ;BLOCK WAS CLOBBERED + 6481 035407 321 16 0 00 035363 JUMPL AC+2,G20100 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 68 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0169 + + 6482 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6483 ;- AC RANGE - ONES + 6484 + 6485 000014 AC=14 + 6486 SAVEAC (1,1)^ + 6487 035410 201 16 0 00 035410 MOVEI AC+2,. ;SAVE TEST PC + 6488 035411 202 16 0 00 030051 MOVEM AC+2,TESTPC + 6489 035412 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6490 035413 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6491 + 6492 020200 SN=20200 + 6493 000004 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + 6494 000004 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + 6495 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6496 + 6497 035414 200 14 0 00 041034 G20200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF SOURCE + 6498 ;AND DESTINATION BLOCKS + 6499 035415 403 03 0 00 000011 SETZB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF SOURCE + 6500 ;BLOCK +1 WITH ZEROS + 6501 035416 477 04 0 00 000005 SETOB SRCE,SRCE+1 ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH ONES + 6502 035417 477 06 0 00 000007 SETOB SRCE+2,SRCE+3 + 6503 035420 476 00 0 00 000010 SETOM SRCE+4 + 6504 035421 251 14 0 00 000010 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6505 020201 SN=SN+1 + 6506 035422 332 00 0 00 000003 SKIPE DEST-1 ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + 6507 ;CLOBBERED? + 6508 035423 002 03 0 00 020201 ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6509 ;BLOCK WAS CLOBBERED? + 6510 020202 SN=SN+1 + 6511 035424 312 04 0 00 040734 CAME DEST,[-1,,-1] ;WAS FIRST WORD OF DESTINATION BLOCK LOAED CORRECTLY + 6512 ;FROM SOURCE? + 6513 035425 002 04 0 00 020202 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6514 ;CORRECTLY FROM SOURCE + 6515 020203 SN=SN+1 + 6516 035426 312 05 0 00 040734 CAME DEST+1,[-1,,-1] ;WAS SECOND WORD OF DESTINATION BLOCK LOADED + 6517 ;CORRECTLY FROM SOURCE? + 6518 035427 002 05 0 00 020203 ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6519 ;CORRECTLY FROM SOURCE + 6520 020204 SN=SN+1 + 6521 035430 312 06 0 00 040734 CAME DEST+2,[-1,,-1] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + 6522 ;CORRECTLY FROM SOURCE? + 6523 035431 002 06 0 00 020204 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6524 ;CORRECTLY FROM SOURCE + 6525 020205 SN=SN+1 + 6526 035432 312 07 0 00 040734 CAME DEST+3,[-1,,-1] ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED + 6527 ;CORRECTLY FROM SOURCE? + 6528 035433 002 07 0 00 020205 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6529 ;CORRECTLY FROM SOURCE + 6530 020206 SN=SN+1 + 6531 035434 312 10 0 00 040734 CAME DEST+4,[-1,,-1] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + 6532 ;CORRECTLY FROM SOURCE? + 6533 035435 002 10 0 00 020206 ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6534 ;CORRECTLY FROM SOURCE + 6535 020207 SN=SN+1 + 6536 035436 332 00 0 00 000011 SKIPE DEST+SIZ ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 68-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0170 + + 6537 ;CLOBBERED? + 6538 035437 002 11 0 00 020207 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 6539 ;BLOCK WAS CLOBBERED + 6540 035440 321 16 0 00 035414 JUMPL AC+2,G20200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 69 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0171 + + 6541 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6542 ;- AC RANGE - SINGLE PATTERN + 6543 + 6544 000014 AC=14 + 6545 SAVEAC (1,1)^ + 6546 035441 201 16 0 00 035441 MOVEI AC+2,. ;SAVE TEST PC + 6547 035442 202 16 0 00 030051 MOVEM AC+2,TESTPC + 6548 035443 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6549 035444 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6550 + 6551 020300 SN=20300 + 6552 000004 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + 6553 000004 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + 6554 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6555 + 6556 035445 200 14 0 00 041034 G20300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6557 ;SOURCE AND DESTINATION BLOCKS + 6558 035446 477 03 0 00 000011 SETOB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF SOURCE + 6559 ;BLOCK +1 WITH ONES + 6560 035447 200 04 0 00 040752 MOVE SRCE,[230703,,603700] ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH + 6561 ;230703,,603700 + 6562 035450 200 05 0 00 040752 MOVE SRCE+1,[230703,,603700] + 6563 035451 200 06 0 00 040752 MOVE SRCE+2,[230703,,603700] + 6564 035452 200 07 0 00 040752 MOVE SRCE+3,[230703,,603700] + 6565 035453 200 10 0 00 040752 MOVE SRCE+4,[230703,,603700] + 6566 035454 251 14 0 00 000010 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6567 020301 SN=SN+1 + 6568 035455 312 03 0 00 040734 CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 6569 ;BLOCK CLOBBERED? + 6570 035456 002 03 0 00 020301 ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6571 ;BLOCK WAS CLOBBERED? + 6572 020302 SN=SN+1 + 6573 035457 312 04 0 00 040752 CAME DEST,[230703,,603700] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 6574 ;CORRECTLY FROM SOURCE? + 6575 035460 002 04 0 00 020302 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6576 ;CORRECTLY FROM SOURCE + 6577 020303 SN=SN+1 + 6578 035461 312 05 0 00 040752 CAME DEST+1,[230703,,603700] ;WAS SECOND WORD OF DESTINATION BLOCK + 6579 ;LOADED CORRECTLY FROM SOURCE? + 6580 035462 002 05 0 00 020303 ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6581 ;CORRECTLY FROM SOURCE + 6582 020304 SN=SN+1 + 6583 035463 312 06 0 00 040752 CAME DEST+2,[230703,,603700] ;WAS THIRD WORD OF DESTINATION BLOCK + 6584 ;LOADED CORRECTLY FROM SOURCE? + 6585 035464 002 06 0 00 020304 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6586 ;CORRECTLY FROM SOURCE + 6587 020305 SN=SN+1 + 6588 035465 312 07 0 00 040752 CAME DEST+3,[230703,,603700] ;WAS FOURTH WORD OF DESTINATION BLOCK + 6589 ;LOADED CORRECTLY FROM SOURCE? + 6590 035466 002 07 0 00 020305 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6591 ;CORRECTLY FROM SOURCE + 6592 020306 SN=SN+1 + 6593 035467 312 10 0 00 040752 CAME DEST+4,[230703,,603700] ;WAS FIFTH WORD OF DESTINATION BLOCK + 6594 ;NOT LOADED CORRECTLY FROM SOURCE + 6595 035470 002 10 0 00 020306 ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 69-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0172 + + 6596 ;CORRECTLY FROM SOURCE + 6597 020307 SN=SN+1 + 6598 035471 312 11 0 00 040734 CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 6599 ;BLOCK CLOBBERED? + 6600 035472 002 11 0 00 020307 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 6601 ;BLOCK WAS CLOBBERED + 6602 035473 321 16 0 00 035445 JUMPL AC+2,G20300 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 70 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0173 + + 6603 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6604 ;- AC RANGE - MULTIPLE PATTERN + 6605 + 6606 000014 AC=14 + 6607 SAVEAC (1,1)^ + 6608 035474 201 16 0 00 035474 MOVEI AC+2,. ;SAVE TEST PC + 6609 035475 202 16 0 00 030051 MOVEM AC+2,TESTPC + 6610 035476 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6611 035477 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6612 + 6613 020400 SN=20400 + 6614 000004 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + 6615 000004 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + 6616 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6617 + 6618 035500 200 14 0 00 041034 G20400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6619 ;SOURCE AND DESTINATION BLOCKS + 6620 035501 200 03 0 00 040752 MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + 6621 ;OF SOURCE BLOCK WITH 230703,,603700 + 6622 035502 200 04 0 00 041016 MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + 6623 ;252525,,252525 + 6624 035503 200 05 0 00 041035 MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + 6625 ;WITH 146314,,631463 + 6626 035504 200 06 0 00 041020 MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + 6627 ;WITH 070707,,070707 + 6628 035505 200 07 0 00 041036 MOVE SRCE+3,[036074,,170360] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 6629 ;WITH 036074,,170360 + 6630 035506 200 10 0 00 041037 MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + 6631 ;WITH 017407,,603701 + 6632 035507 200 11 0 00 041040 MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + 6633 ;OF SOURCE BLOCK WITH 007603,,607062 + 6634 035510 251 14 0 00 000010 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6635 020401 SN=SN+1 + 6636 035511 312 03 0 00 040752 CAME DEST-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 6637 ;BLOCK CLOBBERED? + 6638 035512 002 03 0 00 020401 ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6639 ;BLOCK WAS CLOBBERED? + 6640 020402 SN=SN+1 + 6641 035513 312 04 0 00 041016 CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 6642 ;CORRECTLY FROM SOURCE? + 6643 035514 002 04 0 00 020402 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6644 ;CORRECTLY FROM SOURCE + 6645 020403 SN=SN+1 + 6646 035515 312 05 0 00 041035 CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + 6647 ;LOADED CORRECTLY FROM SOURCE? + 6648 035516 002 05 0 00 020403 ER2 DEST+1,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6649 ;CORRECTLY FROM SOURCE + 6650 020404 SN=SN+1 + 6651 035517 312 06 0 00 041020 CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + 6652 ;LOADED CORRECTLY FROM SOURCE? + 6653 035520 002 06 0 00 020404 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6654 ;CORRECTLY FROM SOURCE + 6655 020405 SN=SN+1 + 6656 035521 312 07 0 00 041036 CAME DEST+3,[036074,,170360] ;WAS FOURTH WORD OF DESTINATION BLOCK + 6657 ;LOADED CORRECTLY FROM SOURCE? +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 70-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0174 + + 6658 035522 002 07 0 00 020405 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6659 ;CORRECTLY FROM SOURCE + 6660 020406 SN=SN+1 + 6661 035523 312 10 0 00 041037 CAME DEST+4,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + 6662 ;LOADED CORRECTLY FROM SOURCE? + 6663 035524 002 10 0 00 020406 ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6664 ;CORRECTLY FROM SOURCE + 6665 020407 SN=SN+1 + 6666 035525 312 11 0 00 041040 CAME DEST+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 6667 ;BLOCK CLOBBERED? + 6668 035526 002 11 0 00 020407 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 6669 ;BLOCK WAS CLOBBERED + 6670 035527 321 16 0 00 035500 JUMPL AC+2,G20400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 71 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0175 + + 6671 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6672 ;- NON-AC RANGE - ZEROS + 6673 + 6674 000013 AC=13 + 6675 SAVEAC (1,1)^ + 6676 035530 201 15 0 00 035530 MOVEI AC+2,. ;SAVE TEST PC + 6677 035531 202 15 0 00 030051 MOVEM AC+2,TESTPC + 6678 035532 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6679 035533 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6680 + 6681 020500 SN=20500 + 6682 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + 6683 040221 DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + 6684 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6685 + 6686 035534 200 13 0 00 041014 G20500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6687 ;SOURCE AND DESTINATION BLOCKS + 6688 035535 476 00 0 00 040220 SETOM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 6689 ;WITH ONES + 6690 035536 402 00 0 00 040221 SETZM SRCE ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK WITH + 6691 ;ZEROS + 6692 035537 402 00 0 00 040222 SETZM SRCE+1 + 6693 035540 402 00 0 00 040223 SETZM SRCE+2 + 6694 035541 402 00 0 00 040224 SETZM SRCE+3 + 6695 035542 402 00 0 00 040225 SETZM SRCE+4 + 6696 035543 476 00 0 00 040226 SETOM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 6697 ;WITH ONES + 6698 035544 251 13 0 00 040225 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6699 020501 SN=SN+1 + 6700 035545 200 11 0 00 040220 MOVE AC-2,DEST-1 + 6701 035546 312 11 0 00 040734 CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 6702 ;BLOCK CLOBBERED? + 6703 035547 002 11 0 00 020501 ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6704 ;BLOCK WAS CLOBBERED? + 6705 020502 SN=SN+1 + 6706 035550 200 11 0 00 040221 MOVE AC-2,DEST + 6707 035551 332 00 0 00 000011 SKIPE &17 ;WAS FIRST WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6708 ;FROM SOURCE? + 6709 035552 002 11 0 00 020502 ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6710 ;CORRECTLY FROM SOURCE + 6711 020503 SN=SN+1 + 6712 035553 200 11 0 00 040222 MOVE AC-2,DEST+1 + 6713 035554 332 00 0 00 000011 SKIPE &17 ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6714 ;FROM SOURCE? + 6715 035555 002 11 0 00 020503 ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6716 ;CORRECTLY FROM SOURCE + 6717 020504 SN=SN+1 + 6718 035556 200 11 0 00 040223 MOVE AC-2,DEST+2 + 6719 035557 332 00 0 00 000011 SKIPE &17 ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6720 ;FROM SOURCE? + 6721 035560 002 11 0 00 020504 ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6722 ;CORRECTLY FROM SOURCE + 6723 020505 SN=SN+1 + 6724 035561 200 11 0 00 040224 MOVE AC-2,DEST+3 + 6725 035562 332 00 0 00 000011 SKIPE &17 ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 71-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0176 + + 6726 ;FROM SOURCE? + 6727 035563 002 11 0 00 020505 ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6728 ;CORRECTLY FROM SOURCE + 6729 020506 SN=SN+1 + 6730 035564 200 11 0 00 040225 MOVE AC-2,DEST+4 + 6731 035565 332 00 0 00 000011 SKIPE &17 ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6732 ;FROM SOURCE? + 6733 035566 002 11 0 00 020506 ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6734 ;CORRECTLY FROM SOURCE + 6735 020507 SN=SN+1 + 6736 035567 200 11 0 00 040226 MOVE AC-2,DEST+SIZ + 6737 035570 312 11 0 00 040734 CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6738 ;CLOBBERED? + 6739 035571 002 11 0 00 020507 ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6740 ;WAS CLOBBERED + 6741 035572 321 15 0 00 035534 JUMPL AC+2,G20500 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 72 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0177 + + 6742 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6743 ;- NON-AC RANGE - ONES + 6744 + 6745 000012 AC=12 + 6746 SAVEAC (1,1)^ + 6747 035573 201 14 0 00 035573 MOVEI AC+2,. ;SAVE TEST PC + 6748 035574 202 14 0 00 030051 MOVEM AC+2,TESTPC + 6749 035575 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6750 035576 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6751 + 6752 020600 SN=20600 + 6753 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + 6754 040221 DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + 6755 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6756 + 6757 035577 200 12 0 00 041014 G20600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6758 ;SOURCE AND DESTINATION BLOCKS + 6759 035600 402 00 0 00 040220 SETZM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 6760 ;WITH ZEROS + 6761 035601 476 00 0 00 040221 SETOM SRCE ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK WITH + 6762 ;ONES + 6763 035602 476 00 0 00 040222 SETOM SRCE+1 + 6764 035603 476 00 0 00 040223 SETOM SRCE+2 + 6765 035604 476 00 0 00 040224 SETOM SRCE+3 + 6766 035605 476 00 0 00 040225 SETOM SRCE+4 + 6767 035606 402 00 0 00 040226 SETZM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 6768 ;WITH ZEROS + 6769 035607 251 12 0 00 040225 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6770 020601 SN=SN+1 + 6771 035610 200 10 0 00 040220 MOVE AC-2,DEST-1 + 6772 035611 332 00 0 00 000010 SKIPE &17 ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + 6773 ;CLOBBERED? + 6774 035612 002 10 0 00 020601 ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6775 ;BLOCK WAS CLOBBERED? + 6776 020602 SN=SN+1 + 6777 035613 200 10 0 00 040221 MOVE AC-2,DEST + 6778 035614 312 10 0 00 040734 CAME AC-2,[-1,,-1] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6779 ;FROM SOURCE? + 6780 035615 002 10 0 00 020602 ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6781 ;CORRECTLY FROM SOURCE + 6782 020603 SN=SN+1 + 6783 035616 200 10 0 00 040222 MOVE AC-2,DEST+1 + 6784 035617 312 10 0 00 040734 CAME AC-2,[-1,,-1] ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6785 ;FROM SOURCE? + 6786 035620 002 10 0 00 020603 ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6787 ;CORRECTLY FROM SOURCE + 6788 020604 SN=SN+1 + 6789 035621 200 10 0 00 040223 MOVE AC-2,DEST+2 + 6790 035622 312 10 0 00 040734 CAME AC-2,[-1,,-1] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6791 ;FROM SOURCE? + 6792 035623 002 10 0 00 020604 ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6793 ;CORRECTLY FROM SOURCE + 6794 020605 SN=SN+1 + 6795 035624 200 10 0 00 040224 MOVE AC-2,DEST+3 + 6796 035625 312 10 0 00 040734 CAME AC-2,[-1,,-1] ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 72-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0178 + + 6797 ;FROM SOURCE? + 6798 035626 002 10 0 00 020605 ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6799 ;CORRECTLY FROM SOURCE + 6800 020606 SN=SN+1 + 6801 035627 200 10 0 00 040225 MOVE AC-2,DEST+4 + 6802 035630 312 10 0 00 040734 CAME AC-2,[-1,,-1] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + 6803 ;FROM SOURCE? + 6804 035631 002 10 0 00 020606 ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6805 ;CORRECTLY FROM SOURCE + 6806 020607 SN=SN+1 + 6807 035632 200 10 0 00 040226 MOVE AC-2,DEST+SIZ + 6808 035633 332 00 0 00 000010 SKIPE &17 ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6809 ;CLOBBERED? + 6810 035634 002 10 0 00 020607 ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6811 ;WAS CLOBBERED + 6812 035635 321 14 0 00 035577 JUMPL AC+2,G20600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 73 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0179 + + 6813 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6814 ;- NON-AC RANGE - SINGLE PATTERN + 6815 + 6816 000011 AC=11 + 6817 SAVEAC (1,1)^ + 6818 035636 201 13 0 00 035636 MOVEI AC+2,. ;SAVE TEST PC + 6819 035637 202 13 0 00 030051 MOVEM AC+2,TESTPC + 6820 035640 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6821 035641 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6822 + 6823 020700 SN=20700 + 6824 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + 6825 040221 DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + 6826 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6827 + 6828 035642 200 11 0 00 041014 G20700: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6829 ;SOURCE AND DESTINATION BLOCKS + 6830 035643 476 00 0 00 040220 SETOM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 6831 ;WITH ONES + 6832 035644 200 00 0 00 040752 MOVE [230703,,603700] + 6833 035645 202 00 0 00 040221 MOVEM SRCE ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH 230703,,603700 + 6834 035646 202 00 0 00 040222 MOVEM SRCE+1 + 6835 035647 202 00 0 00 040223 MOVEM SRCE+2 + 6836 035650 202 00 0 00 040224 MOVEM SRCE+3 + 6837 035651 202 00 0 00 040225 MOVEM SRCE+4 + 6838 035652 476 00 0 00 040226 SETOM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 6839 ;WITH ONES + 6840 035653 251 11 0 00 040225 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6841 020701 SN=SN+1 + 6842 035654 200 07 0 00 040220 MOVE AC-2,DEST-1 + 6843 035655 312 07 0 00 040734 CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 6844 ;BLOCK CLOBBERED? + 6845 035656 002 07 0 00 020701 ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6846 ;BLOCK WAS CLOBBERED? + 6847 020702 SN=SN+1 + 6848 035657 200 07 0 00 040221 MOVE AC-2,DEST + 6849 035660 312 07 0 00 040752 CAME AC-2,[230703,,603700] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 6850 ;CORRECTLY FROM SOURCE? + 6851 035661 002 07 0 00 020702 ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6852 ;CORRECTLY FROM SOURCE + 6853 020703 SN=SN+1 + 6854 035662 200 07 0 00 040222 MOVE AC-2,DEST+1 + 6855 035663 312 07 0 00 040752 CAME AC-2,[230703,,603700] ;WAS SECOND WORD OF DESTINATION BLOCK + 6856 ;LOADED CORRECTLY FROM SOURCE? + 6857 035664 002 07 0 00 020703 ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6858 ;CORRECTLY FROM SOURCE + 6859 020704 SN=SN+1 + 6860 035665 200 07 0 00 040223 MOVE AC-2,DEST+2 + 6861 035666 312 07 0 00 040752 CAME AC-2,[230703,,603700] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + 6862 ;CORRECTLY FROM SOURCE? + 6863 035667 002 07 0 00 020704 ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6864 ;CORRECTLY FROM SOURCE + 6865 020705 SN=SN+1 + 6866 035670 200 07 0 00 040224 MOVE AC-2,DEST+3 + 6867 035671 312 07 0 00 040752 CAME AC-2,[230703,,603700] ;WAS FOURTH WORD OF DESTINATION BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 73-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0180 + + 6868 ;LOADED CORRECTLY FROM SOURCE? + 6869 035672 002 07 0 00 020705 ER2 AC-2,SN ;FOURTH WORD OF DESTINATION BLOCK NOT LOADED CORRECTLY + 6870 ;FROM SOURCE + 6871 020706 SN=SN+1 + 6872 035673 200 07 0 00 040225 MOVE AC-2,DEST+4 + 6873 035674 312 07 0 00 040752 CAME AC-2,[230703,,603700] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + 6874 ;CORRECTLY FROM SOURCE? + 6875 035675 002 07 0 00 020706 ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6876 ;CORRECTLY FROM SOURCE + 6877 020707 SN=SN+1 + 6878 035676 200 07 0 00 040226 MOVE AC-2,DEST+SIZ + 6879 035677 312 07 0 00 040734 CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6880 ;CLOBBERED? + 6881 035700 002 13 0 00 020707 ER2 AC+2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6882 ;WAS CLOBBERED + 6883 035701 321 13 0 00 035642 JUMPL AC+2,G20700 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 74 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0181 + + 6884 ;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + 6885 ;- NON-AC RANGE - MULTIPLE PATTERN + 6886 + 6887 000010 AC=10 + 6888 SAVEAC (1,1)^ + 6889 035702 201 12 0 00 035702 MOVEI AC+2,. ;SAVE TEST PC + 6890 035703 202 12 0 00 030051 MOVEM AC+2,TESTPC + 6891 035704 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6892 035705 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6893 + 6894 021000 SN=21000 + 6895 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + 6896 040221 DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + 6897 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6898 + 6899 035706 200 10 0 00 041014 G21000: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6900 ;SOURCE AND DESTINATION BLOCKS + 6901 035707 200 00 0 00 040752 MOVE [230703,,603700] + 6902 035710 202 00 0 00 040220 MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 6903 ;WITH 230703,,603700 + 6904 035711 200 00 0 00 041016 MOVE [252525,,252525] + 6905 035712 202 00 0 00 040221 MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + 6906 035713 200 00 0 00 041035 MOVE [146314,,631463] + 6907 035714 202 00 0 00 040222 MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + 6908 ;WITH 146314,,631463 + 6909 035715 200 00 0 00 041020 MOVE [070707,,070707] + 6910 035716 202 00 0 00 040223 MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + 6911 035717 200 00 0 00 041036 MOVE [036074,,170360] + 6912 035720 202 00 0 00 040224 MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 6913 ;WITH 036074,,170360 + 6914 035721 200 00 0 00 041037 MOVE [017407,,603701] + 6915 035722 202 00 0 00 040225 MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + 6916 035723 200 00 0 00 041040 MOVE [007603,,607062] + 6917 035724 202 00 0 00 040226 MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 6918 ;WITH 007603,,607062 + 6919 035725 251 10 0 00 040225 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6920 021001 SN=SN+1 + 6921 035726 200 06 0 00 040220 MOVE AC-2,DEST-1 + 6922 035727 312 06 0 00 040752 CAME AC-2,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 6923 ;BLOCK CLOBBERED? + 6924 035730 002 06 0 00 021001 ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 6925 ;BLOCK WAS CLOBBERED? + 6926 021002 SN=SN+1 + 6927 035731 200 06 0 00 040221 MOVE AC-2,DEST + 6928 035732 312 06 0 00 041016 CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 6929 ;CORRECTLY FROM SOURCE? + 6930 035733 002 06 0 00 021002 ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 6931 ;CORRECTLY FROM SOURCE + 6932 021003 SN=SN+1 + 6933 035734 200 06 0 00 040222 MOVE AC-2,DEST+1 + 6934 035735 312 06 0 00 041035 CAME AC-2,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + 6935 ;LOADED CORRECTLY FROM SOURCE? + 6936 035736 002 06 0 00 021003 ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 6937 ;CORRECTLY FROM SOURCE + 6938 021004 SN=SN+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 74-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0182 + + 6939 035737 200 06 0 00 040223 MOVE AC-2,DEST+2 + 6940 035740 312 06 0 00 041020 CAME AC-2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + 6941 ;CORRECTLY FROM SOURCE? + 6942 035741 002 06 0 00 021004 ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 6943 ;CORRECTLY FROM SOURCE + 6944 021005 SN=SN+1 + 6945 035742 200 06 0 00 040224 MOVE AC-2,DEST+3 + 6946 035743 312 06 0 00 041036 CAME AC-2,[036074,,170360] ;WAS FOURTH WORD OF DESTINATION BLOCK + 6947 ;LOADED CORRECTLY FROM SOURCE? + 6948 035744 002 06 0 00 021005 ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 6949 ;CORRECTLY FROM SOURCE + 6950 021006 SN=SN+1 + 6951 035745 200 06 0 00 040225 MOVE AC-2,DEST+4 + 6952 035746 312 06 0 00 041037 CAME AC-2,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + 6953 ;CORRECTLY FROM SOURCE? + 6954 035747 002 06 0 00 021006 ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 6955 ;CORRECTLY FROM SOURCE + 6956 021007 SN=SN+1 + 6957 035750 200 06 0 00 040226 MOVE AC-2,DEST+SIZ + 6958 035751 312 06 0 00 041040 CAME AC-2,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 6959 ;BLOCK CLOBBERED? + 6960 035752 002 06 0 00 021007 ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 6961 ;WAS CLOBBERED + 6962 035753 321 12 0 00 035706 JUMPL AC+2,G21000 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 75 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0183 + + 6963 ;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING + 6964 ;ADDRESS MINUS ONE - AC RANGE - MULTIPLE PATTERN + 6965 + 6966 000014 AC=14 + 6967 SAVEAC (1,1)^ + 6968 035754 201 16 0 00 035754 MOVEI AC+2,. ;SAVE TEST PC + 6969 035755 202 16 0 00 030051 MOVEM AC+2,TESTPC + 6970 035756 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6971 035757 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6972 + 6973 021100 SN=21100 + 6974 000002 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS= &17 + 6975 000001 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + 6976 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 6977 + 6978 035760 200 14 0 00 041041 G21100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 6979 ;SOURCE AND DESTINATION BLOCKS + 6980 035761 476 00 0 00 000000 SETOM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + 6981 ;BLOCK WITH ONES + 6982 035762 200 01 0 00 040752 MOVE DEST,[230703,,603700] ;PRELOAD FIRST WORD OF DESTINATION BLOCK + 6983 ;WITH 230703,,603700 + 6984 035763 200 02 0 00 041016 MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + 6985 ;252525,,252525 + 6986 035764 200 03 0 00 041035 MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + 6987 ;WITH 146314,,631463 + 6988 035765 200 04 0 00 041020 MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + 6989 ;WITH 070707,,070707 + 6990 035766 200 05 0 00 041042 MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 6991 ;WITH 036074,,170630 + 6992 035767 200 06 0 00 041037 MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + 6993 ;WITH 017407,,603701 + 6994 035770 200 07 0 00 041040 MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + 6995 ;OF SOURCE BLOCK WITH 007603,,607062 + 6996 035771 251 14 0 00 000005 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 6997 021101 SN=SN+1 + 6998 035772 312 00 0 00 040734 CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 6999 ;BLOCK CLOBBERED? + 7000 035773 002 00 0 00 021101 ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 7001 ;BLOCK WAS CLOBBERED? + 7002 021102 SN=SN+1 + 7003 035774 312 01 0 00 041016 CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 7004 ;CORRECTLY FROM SOURCE? + 7005 035775 002 01 0 00 021102 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 7006 ;CORRECTLY FROM SOURCE + 7007 021103 SN=SN+1 + 7008 035776 312 02 0 00 041035 CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + 7009 ;LOADED CORRECTLY FROM SOURCE? + 7010 035777 002 02 0 00 021103 ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 7011 ;CORRECTLY FROM SOURCE + 7012 021104 SN=SN+1 + 7013 036000 312 03 0 00 041020 CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + 7014 ;LOADED CORRECTLY FROM SOURCE? + 7015 036001 002 03 0 00 021104 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 7016 ;CORRECTLY FROM SOURCE + 7017 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 75-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0184 + + 7018 021105 SN=SN+1 + 7019 036002 312 04 0 00 041042 CAME DEST+3,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION + 7020 ;BLOCK LOADED CORRECTLY FROM SOURCE? + 7021 036003 002 04 0 00 021105 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 7022 ;CORRECTLY FROM SOURCE + 7023 021106 SN=SN+1 + 7024 036004 312 05 0 00 041037 CAME DEST+4,[017407,,603701] ;WAS LAST WORD OF DESTINATION BLOCK + 7025 ;LOADED CORRECTLY FROM SOURCE? + 7026 036005 002 05 0 00 021106 ER2 DEST+4,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + 7027 ;CORRECTLY FROM SOURCE + 7028 021107 SN=SN+1 + 7029 036006 312 06 0 00 041037 CAME DEST+SIZ,[017407,,603701] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 7030 ;BLOCK CLOBBERED? + 7031 036007 002 06 0 00 021107 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 7032 ;BLOCK WAS CLOBBERED + 7033 021110 SN=SN+1 + 7034 036010 312 07 0 00 041040 CAME SRCE+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + 7035 ;BLOCK CLOBBERED? + 7036 036011 002 07 0 00 021110 ER2 SRCE+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 7037 ;WAS CLOBBERED + 7038 036012 321 16 0 00 035760 JUMPL AC+2,G21100 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 76 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0185 + + 7039 ;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING + 7040 ;ADDRESS MINUS ONE - NON-AC RANGE - MULTIPLE PATTERN + 7041 + 7042 000006 AC=6 + 7043 SAVEAC (1,1)^ + 7044 036013 201 10 0 00 036013 MOVEI AC+2,. ;SAVE TEST PC + 7045 036014 202 10 0 00 030051 MOVEM AC+2,TESTPC + 7046 036015 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7047 036016 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7048 + 7049 021200 SN=21200 + 7050 040222 SRCE=BLTBLK+2 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+2 + 7051 040221 DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS= BLTBLK+1 + 7052 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 7053 + 7054 036017 200 06 0 00 041043 G21200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 7055 ;SOURCE AND DESTINATION BLOCKS + 7056 036020 476 00 0 00 040220 SETOM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + 7057 ;BLOCK WITH ONES + 7058 036021 200 00 0 00 040752 MOVE [230703,,603700] + 7059 036022 202 00 0 00 040221 MOVEM DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK + 7060 ;WITH 230703,,603700 + 7061 036023 200 00 0 00 041016 MOVE [252525,,252525] + 7062 036024 202 00 0 00 040222 MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + 7063 036025 200 00 0 00 041035 MOVE [146314,,631463] + 7064 036026 202 00 0 00 040223 MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + 7065 ;WITH 146314,,631463 + 7066 036027 200 00 0 00 041020 MOVE [070707,,070707] + 7067 036030 202 00 0 00 040224 MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + 7068 036031 200 00 0 00 041042 MOVE [036074,,170630] + 7069 036032 202 00 0 00 040225 MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 7070 ;WITH 036074,,170630 + 7071 036033 200 00 0 00 041037 MOVE [017407,,603701] + 7072 036034 202 00 0 00 040226 MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + 7073 036035 200 00 0 00 041040 MOVE [007603,,607062] + 7074 036036 202 00 0 00 040227 MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 7075 ;WITH 007603,,607062 + 7076 036037 251 06 0 00 040225 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 77 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0186 + + 7077 ;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING + 7078 ;ADDRESS MINUS ONE - NON-AC RANGE - MULTIPLE PATTERN (CONTINUED) + 7079 + 7080 021201 SN=SN+1 + 7081 036040 200 04 0 00 040220 MOVE AC-2,DEST-1 + 7082 036041 312 04 0 00 040734 CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 7083 ;BLOCK CLOBBERED? + 7084 036042 002 04 0 00 021201 ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 7085 ;BLOCK WAS CLOBBERED? + 7086 021202 SN=SN+1 + 7087 036043 200 04 0 00 040221 MOVE AC-2,DEST + 7088 036044 312 04 0 00 041016 CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 7089 ;CORRECTLY FROM SOURCE? + 7090 036045 002 04 0 00 021202 ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 7091 ;CORRECTLY FROM SOURCE + 7092 021203 SN=SN+1 + 7093 036046 200 04 0 00 040222 MOVE AC-2,DEST+1 + 7094 036047 312 04 0 00 041035 CAME AC-2,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + 7095 ;LOADED CORRECTLY FROM SOURCE? + 7096 036050 002 04 0 00 021203 ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 7097 ;CORRECTLY FROM SOURCE + 7098 021204 SN=SN+1 + 7099 036051 200 04 0 00 040223 MOVE AC-2,DEST+2 + 7100 036052 312 04 0 00 041020 CAME AC-2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + 7101 ;CORRECTLY FROM SOURCE? + 7102 036053 002 04 0 00 021204 ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 7103 ;CORRECTLY FROM SOURCE + 7104 021205 SN=SN+1 + 7105 036054 200 04 0 00 040224 MOVE AC-2,DEST+3 + 7106 036055 312 04 0 00 041042 CAME AC-2,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + 7107 ;LOADED CORRECTLY FROM SOURCE? + 7108 036056 002 04 0 00 021205 ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 7109 ;CORRECTLY FROM SOURCE + 7110 021206 SN=SN+1 + 7111 036057 200 04 0 00 040225 MOVE AC-2,DEST+4 + 7112 036060 312 04 0 00 041037 CAME AC-2,[017407,,603701] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + 7113 ;CORRECTLY FROM SOURCE? + 7114 036061 002 04 0 00 021206 ER2 AC-2,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + 7115 ;CORRECTLY FROM SOURCE + 7116 021207 SN=SN+1 + 7117 036062 200 04 0 00 040226 MOVE AC-2,DEST+SIZ + 7118 036063 312 04 0 00 041037 CAME AC-2,[017407,,603701] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 7119 ;BLOCK CLOBBERED? + 7120 036064 002 04 0 00 021207 ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7121 ;WAS CLOBBERED + 7122 021210 SN=SN+1 + 7123 036065 200 04 0 00 040227 MOVE AC-2,SRCE+SIZ + 7124 036066 312 04 0 00 041040 CAME AC-2,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + 7125 ;BLOCK CLOBBERED? + 7126 036067 002 04 0 00 021210 ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK WAS + 7127 ;CLOBBERED + 7128 036070 321 10 0 00 036017 JUMPL AC+2,G21200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 78 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0187 + + 7129 ;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING + 7130 ;ADDRESS PLUS ONE - AC RANGE - MULTIPLE PATTERN + 7131 + 7132 000014 AC=14 + 7133 SAVEAC (1,1)^ + 7134 036071 201 16 0 00 036071 MOVEI AC+2,. ;SAVE TEST PC + 7135 036072 202 16 0 00 030051 MOVEM AC+2,TESTPC + 7136 036073 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7137 036074 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7138 + 7139 021300 SN=21300 + 7140 000001 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS= &17 + 7141 000002 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + 7142 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 7143 + 7144 036075 200 14 0 00 041044 G21300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 7145 ;SOURCE AND DESTINATION BLOCKS + 7146 036076 200 00 0 00 040752 MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + 7147 ;OF SOURCE BLOCK WITH 230703,,603700 + 7148 036077 200 01 0 00 041016 MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + 7149 ;252525,,252525 + 7150 036100 200 02 0 00 041035 MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + 7151 ;WITH 146314,,631463 + 7152 036101 200 03 0 00 041020 MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + 7153 ;WITH 070707,,070707 + 7154 036102 200 04 0 00 041042 MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 7155 ;WITH 036074,,170630 + 7156 036103 200 05 0 00 041037 MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + 7157 ;WITH 017407,,603701 + 7158 036104 200 06 0 00 041040 MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + 7159 ;OF SOURCE BLOCK WITH 007603,,607062 + 7160 036105 476 00 0 00 000007 SETOM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7161 ;WITH ONES + 7162 036106 251 14 0 00 000006 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK + 7163 021301 SN=SN+1 + 7164 036107 312 00 0 00 040752 CAME SRCE-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + 7165 ;BLOCK CLOBBERED? + 7166 036110 002 00 0 00 021301 ER2 SRCE-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 7167 ;WAS CLOBBERED + 7168 021302 SN=SN+1 + 7169 036111 312 01 0 00 041016 CAME SRCE,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + 7170 036112 002 01 0 00 021302 ER2 SRCE,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED + 7171 021303 SN=SN+1 + 7172 036113 312 02 0 00 041016 CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 7173 ;CORRECTLY FROM SOURCE? + 7174 036114 002 02 0 00 021303 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 7175 ;CORRECTLY FROM SOURCE + 7176 021304 SN=SN+1 + 7177 036115 312 03 0 00 041016 CAME DEST+1,[252525,,252525] ;WAS SECOND WORD OF DESTINATION BLOCK + 7178 ;LOADED CORRECTLY FROM SOURCE? + 7179 036116 002 03 0 00 021304 ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 7180 ;CORRECTLY FROM SOURCE + 7181 021305 SN=SN+1 + 7182 036117 312 04 0 00 041016 CAME DEST+2,[252525,,252525] ;WAS THIRD WORD OF DESTINATION BLOCK + 7183 ;LOADED CORRECTLY FROM SOURCE? +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 78-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0188 + + 7184 036120 002 04 0 00 021305 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 7185 ;CORRECTLY FROM SOURCE + 7186 021306 SN=SN+1 + 7187 036121 312 05 0 00 041016 CAME DEST+3,[252525,,252525] ;WAS FOURTH WORD OF DESTINATION BLOCK + 7188 ;LOADED CORRECTLY FROM SOURCE? + 7189 036122 002 05 0 00 021306 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 7190 ;CORRECTLY FROM SOURCE + 7191 021307 SN=SN+1 + 7192 036123 312 06 0 00 041016 CAME DEST+4,[252525,,252525] ;WAS LAST WORD OF DESTINATION BLOCK + 7193 ;LOADED CORRECTLY FROM SOURCE? + 7194 036124 002 06 0 00 021307 ER2 DEST+4,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + 7195 ;CORRECTLY FROM SOURCE + 7196 021310 SN=SN+1 + 7197 036125 312 07 0 00 040734 CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 7198 ;BLOCK CLOBBERED? + 7199 036126 002 07 0 00 021310 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 7200 ;BLOCK WAS CLOBBERED + 7201 036127 321 16 0 00 036075 JUMPL AC+2,G21300 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 79 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0189 + + 7202 ;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING + 7203 ;ADDRESS PLUS ONE - NON-AC RANGE - MULTIPLE PATTERN + 7204 + 7205 000004 AC=4 + 7206 SAVEAC (1,1)^ + 7207 036130 201 06 0 00 036130 MOVEI AC+2,. ;SAVE TEST PC + 7208 036131 202 06 0 00 030051 MOVEM AC+2,TESTPC + 7209 036132 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7210 036133 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7211 + 7212 021400 SN=21400 + 7213 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+1 + 7214 040222 DEST=BLTBLK+2 ;DESTINATION BLOCK STARTING ADDRESS= BLTBLK+2 + 7215 000005 SIZ=5 ;BLOCK SIZE=5 WORDS + 7216 + 7217 036134 200 04 0 00 041045 G21400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 7218 ;SOURCE AND DESTINATION BLOCKS + 7219 036135 200 00 0 00 040752 MOVE [230703,,603700] + 7220 036136 202 00 0 00 040220 MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 7221 ;WITH 23703,,603700 + 7222 036137 200 00 0 00 041016 MOVE [252525,,252525] + 7223 036140 202 00 0 00 040221 MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + 7224 036141 200 00 0 00 041046 MOVE [146314,,146314] + 7225 036142 202 00 0 00 040222 MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + 7226 ;WITH 146314,,631463 + 7227 036143 200 00 0 00 041020 MOVE [070707,,070707] + 7228 036144 202 00 0 00 040223 MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + 7229 036145 200 00 0 00 041042 MOVE [036074,,170630] + 7230 036146 202 00 0 00 040224 MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 7231 ;WITH 036074,,170630 + 7232 036147 200 00 0 00 041037 MOVE [017407,,603701] + 7233 036150 202 00 0 00 040225 MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + 7234 036151 200 00 0 00 041040 MOVE [007603,,607062] + 7235 036152 202 00 0 00 040226 MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 7236 ;WITH 007603,,607062 + 7237 036153 476 00 0 00 040227 SETOM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7238 ;WITH ONES + 7239 036154 251 04 0 00 040226 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 80 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0190 + + 7240 ;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING + 7241 ;ADDRESS PLUS ONE - NON-AC RANGE - MULTIPLE PATTERN (CONTINUED) + 7242 + 7243 021401 SN=SN+1 + 7244 036155 200 02 0 00 040220 MOVE AC-2,SRCE-1 + 7245 036156 312 02 0 00 040752 CAME AC-2,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + 7246 ;BLOCK CLOBBERED? + 7247 036157 002 02 0 00 021401 ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 7248 ;WAS CLOBBERED + 7249 021402 SN=SN+1 + 7250 036160 200 02 0 00 040221 MOVE AC-2,SRCE + 7251 036161 312 02 0 00 041016 CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + 7252 036162 002 02 0 00 021402 ER2 AC-2,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED + 7253 021403 SN=SN+1 + 7254 036163 200 02 0 00 040222 MOVE AC-2,DEST + 7255 036164 312 02 0 00 041016 CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 7256 ;CORRECTLY FROM SOURCE? + 7257 036165 002 02 0 00 021403 ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 7258 ;CORRECTLY FROM SOURCE + 7259 021404 SN=SN+1 + 7260 036166 200 02 0 00 040223 MOVE AC-2,DEST+1 + 7261 036167 312 02 0 00 041016 CAME AC-2,[252525,,252525] ;WAS SECOND WORD OF DESTINATION BLOCK + 7262 ;LOADED CORRECTLY FROM SOURCE? + 7263 036170 002 02 0 00 021404 ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 7264 ;CORRECTLY FROM SOURCE + 7265 021405 SN=SN+1 + 7266 036171 200 02 0 00 040224 MOVE AC-2,DEST+2 + 7267 036172 312 02 0 00 041016 CAME AC-2,[252525,,252525] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + 7268 ;CORRECTLY FROM SOURCE? + 7269 036173 002 02 0 00 021405 ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 7270 ;CORRECTLY FROM SOURCE + 7271 021406 SN=SN+1 + 7272 036174 200 02 0 00 040225 MOVE AC-2,DEST+3 + 7273 036175 312 02 0 00 041016 CAME AC-2,[252525,,252525] ;WAS FOURTH WORD OF DESTINATION BLOCK + 7274 ;LOADED CORRECTLY FROM SOURCE? + 7275 036176 002 02 0 00 021406 ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 7276 ;CORRECTLY FROM SOURCE + 7277 021407 SN=SN+1 + 7278 036177 200 02 0 00 040226 MOVE AC-2,DEST+4 + 7279 036200 312 02 0 00 041016 CAME AC-2,[252525,,252525] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + 7280 ;CORRECTLY FROM SOURCE? + 7281 036201 002 02 0 00 021407 ER2 AC-2,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + 7282 ;CORRECTLY FROM SOURCE + 7283 021410 SN=SN+1 + 7284 036202 200 02 0 00 040227 MOVE AC-2,DEST+SIZ + 7285 036203 312 02 0 00 040734 CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7286 ;CLOBBERED? + 7287 036204 002 02 0 00 021410 ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7288 ;WAS CLOBBERED + 7289 036205 321 06 0 00 036134 JUMPL AC+2,G21400 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 81 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0191 + + 7290 ;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK + 7291 ;HAS NON-AC ADDRESS- MULTIPLE PATTERN + 7292 + 7293 000014 AC=14 + 7294 SAVEAC (1,1)^ + 7295 036206 201 16 0 00 036206 MOVEI AC+2,. ;SAVE TEST PC + 7296 036207 202 16 0 00 030051 MOVEM AC+2,TESTPC + 7297 036210 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7298 036211 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7299 + 7300 021500 SN=21500 + 7301 000001 SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + 7302 040221 DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + 7303 000012 SIZ=^D10 ;BLOCK SIZE=10 WORDS + 7304 + 7305 036212 200 14 0 00 041047 G21500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 7306 ;SOURCE AND DESTINATION BLOCKS + 7307 036213 200 00 0 00 040752 MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + 7308 ;OF SOURCE BLOCK WITH 230703,,603700 + 7309 036214 200 01 0 00 041016 MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + 7310 ;252525,,252525 + 7311 036215 200 02 0 00 041035 MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + 7312 ;WITH 146314,,631463 + 7313 036216 200 03 0 00 041020 MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + 7314 ;WITH 070707,,070707 + 7315 036217 200 04 0 00 041042 MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 7316 ;WITH 036074,,170630 + 7317 036220 200 05 0 00 041037 MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + 7318 ;WITH 017407,,603701 + 7319 036221 200 06 0 00 041050 MOVE SRCE+5,[007700,,770077] ;PRELOAD SIXTH WORD OF SOURCE BLOCK + 7320 ;WITH 007700,,770077 + 7321 036222 200 07 0 00 041051 MOVE SRCE+6,[003760,,077401] ;PRELOAD SEVENTH WORD OF SOURCE BLOCK + 7322 ;WITH 003760,,077401 + 7323 036223 200 10 0 00 041052 MOVE SRCE+7,[001774,,007760] ;PRELOAD EIGHTH WORD OF SOURCE BLOCK + 7324 ;WITH 001774,,007760 + 7325 036224 200 11 0 00 041053 MOVE SRCE+^D8,[000777,,000777] ;PRELOAD NINTH WORD OF SOURCE BLOCK + 7326 ;WITH 000777,,000777 + 7327 036225 200 12 0 00 041054 MOVE SRCE+^D9,[000377,,600077] ;PRELOAD TENTH WORD OF SOURCE BLOCK + 7328 ;WITH 000377,,600077 + 7329 036226 200 13 0 00 041040 MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + 7330 ;OF SOURCE BLOCK WITH 007603,,607062 + 7331 036227 202 00 0 00 041212 MOVEM GSVAC0# + 7332 036230 561 00 0 00 040220 HRROI DEST-1 + 7333 036231 202 00 0 00 040220 MOVEM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + 7334 ;BLOCK WITH DEST-1 + 7335 036232 561 00 0 00 040221 HRROI DEST + 7336 036233 202 00 0 00 040221 MOVEM DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK WITH DEST + 7337 036234 561 00 0 00 040222 HRROI DEST+1 + 7338 036235 202 00 0 00 040222 MOVEM DEST+1 ;PRELOAD SECOND WORD OF DESTINATION BLOCK WITH DEST+1 + 7339 036236 561 00 0 00 040223 HRROI DEST+2 + 7340 036237 202 00 0 00 040223 MOVEM DEST+2 ;PRELOAD THIRD WORD OF DESTINATION BLOCK WITH DEST+2 + 7341 036240 561 00 0 00 040224 HRROI DEST+3 + 7342 036241 202 00 0 00 040224 MOVEM DEST+3 ;PRELOAD FOURTH WORD OF DESTINATION BLOCK WITH DEST+3 + 7343 036242 561 00 0 00 040225 HRROI DEST+4 + 7344 036243 202 00 0 00 040225 MOVEM DEST+4 ;PRELOAD FIFTH WORD OF DESTINATION BLOCK WITH DEST+4 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 81-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0192 + + 7345 036244 561 00 0 00 040226 HRROI DEST+5 + 7346 036245 202 00 0 00 040226 MOVEM DEST+5 ;PRELOAD SIXTH WORD OF DESTINATION BLOCK WITH DEST+5 + 7347 036246 561 00 0 00 040227 HRROI DEST+6 + 7348 036247 202 00 0 00 040227 MOVEM DEST+6 ;PRELOAD SEVENTH WORD OF DESTINATION BLOCK WITH DEST+6 + 7349 036250 561 00 0 00 040230 HRROI DEST+7 + 7350 036251 202 00 0 00 040230 MOVEM DEST+7 ;PRELOAD EIGHTH WORD OF DESTINATION BLOCK WITH DEST+7 + 7351 036252 561 00 0 00 040231 HRROI DEST+^D8 + 7352 036253 202 00 0 00 040231 MOVEM DEST+^D8 ;PRELOAD NINTH WORD OF DESTINATION BLOCK WITH DEST+8 + 7353 036254 561 00 0 00 040232 HRROI DEST+^D9 + 7354 036255 202 00 0 00 040232 MOVEM DEST+^D9 ;PRELOAD TENTH WORD OF DESTINATION BLOCK WITH DEST+9 + 7355 036256 561 00 0 00 040233 HRROI DEST+SIZ + 7356 036257 202 00 0 00 040233 MOVEM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7357 ;WITH DEST+SIZ + 7358 036260 200 00 0 00 041212 MOVE GSVAC0 + 7359 + 7360 036261 251 14 0 00 040232 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 82 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0193 + + 7361 ;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK + 7362 ;HAS NON-AC ADDRESS- MULTIPLE PATTERN (CONTINUED) + 7363 + 7364 021501 SN=SN+1 + 7365 036262 312 00 0 00 040752 CAME SRCE-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + 7366 ;BLOCK CLOBBERED? + 7367 036263 002 00 0 00 021501 ER2 SRCE-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 7368 ;WAS CLOBBERED + 7369 021502 SN=SN+1 + 7370 036264 312 01 0 00 041016 CAME SRCE,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + 7371 036265 002 01 0 00 021502 ER2 SRCE,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED + 7372 021503 SN=SN+1 + 7373 036266 312 02 0 00 041035 CAME SRCE+1,[146314,,631463] ;WAS SECOND WORD OF SOURCE BLOCK CLOBBERED? + 7374 036267 002 02 0 00 021503 ER2 SRCE+1,SN ;FAIL IF SECOND WORD OF SOURCE BLOCK WAS CLOBBERED + 7375 021504 SN=SN+1 + 7376 036270 312 03 0 00 041020 CAME SRCE+2,[070707,,070707] ;WAS THIRD WORD OF SOURCE BLOCK CLOBBERED? + 7377 036271 002 03 0 00 021504 ER2 SRCE+2,SN ;FAIL IF THIRD WORD OF SOURCE BLOCK WAS CLOBBERED + 7378 021505 SN=SN+1 + 7379 036272 312 04 0 00 041042 CAME SRCE+3,[036074,,170630] ;WAS FOURTH WORD OF SOURCE BLOCK CLOBBERED? + 7380 036273 002 04 0 00 021505 ER2 SRCE+3,SN ;FAIL IF FOURTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7381 021506 SN=SN+1 + 7382 036274 312 05 0 00 041037 CAME SRCE+4,[017407,,603701] ;WAS FIFTH WORD OF SOURCE BLOCK CLOBBERED? + 7383 036275 002 05 0 00 021506 ER2 SRCE+4,SN ;FAIL IF FIFTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7384 021507 SN=SN+1 + 7385 036276 312 06 0 00 041050 CAME SRCE+5,[007700,,770077] ;WAS SIXTH WORD OF SOURCE BLOCK CLOBBERED? + 7386 036277 002 06 0 00 021507 ER2 SRCE+5,SN ;FAIL IF SIXTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7387 021510 SN=SN+1 + 7388 036300 312 07 0 00 041051 CAME SRCE+6,[003760,,077401] ;WAS SEVENTH WORD OF SOURCE BLOCK CLOBBERED? + 7389 036301 002 07 0 00 021510 ER2 SRCE+6,SN ;FAIL IF SEVENTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7390 021511 SN=SN+1 + 7391 036302 312 10 0 00 041052 CAME SRCE+7,[001774,,007760] ;WAS EIGHTH WORD OF SOURCE BLOCK CLOBBERED? + 7392 036303 002 10 0 00 021511 ER2 SRCE+7,SN ;FAIL IF EIGHTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7393 021512 SN=SN+1 + 7394 036304 312 11 0 00 041053 CAME SRCE+^D8,[000777,,000777] ;WAS NINTH WORD OF SOURCE BLOCK CLOBBERED? + 7395 036305 002 11 0 00 021512 ER2 SRCE+^D8,SN ;FAIL IF NINTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7396 021513 SN=SN+1 + 7397 036306 312 12 0 00 041054 CAME SRCE+^D9,[000377,,600077] ;WAS LAST WORD OF SOURCE BLOCK CLOBBERED? + 7398 036307 002 12 0 00 021513 ER2 SRCE+^D9,SN ;FAIL IF LAST WORD OF SOURCE BLOCK WAS CLOBBERED + 7399 021514 SN=SN+1 + 7400 036310 312 13 0 00 041040 CAME SRCE+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + 7401 ;BLOCK CLOBBERED? + 7402 036311 002 13 0 00 021514 ER2 SRCE+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 7403 ;WAS CLOBBERED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 83 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0194 + + 7404 ;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK + 7405 ;HAS NON-AC ADDRESS- MULTIPLE PATTERN (CONTINUED) + 7406 + 7407 021515 SN=SN+1 + 7408 036312 200 15 0 00 040220 MOVE AC+1,DEST-1 + 7409 036313 312 15 0 00 041055 CAME AC+1,[-1,,DEST-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 7410 ;BLOCK CLOBBERED? + 7411 036314 002 15 0 00 021515 ER2 AC+1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 7412 ;BLOCK WAS CLOBBERED? + 7413 021516 SN=SN+1 + 7414 036315 200 15 0 00 040221 MOVE AC+1,DEST + 7415 036316 312 15 0 00 041016 CAME AC+1,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 7416 ;CORRECTLY FROM SOURCE? + 7417 036317 002 15 0 00 021516 ER2 AC+1,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 7418 ;CORRECTLY FROM SOURCE + 7419 021517 SN=SN+1 + 7420 036320 200 15 0 00 040222 MOVE AC+1,DEST+1 + 7421 036321 312 15 0 00 041035 CAME AC+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + 7422 ;LOADED CORRECTLY FROM SOURCE? + 7423 036322 002 15 0 00 021517 ER2 AC+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 7424 ;CORRECTLY FROM SOURCE + 7425 021520 SN=SN+1 + 7426 036323 200 15 0 00 040223 MOVE AC+1,DEST+2 + 7427 036324 312 15 0 00 041020 CAME AC+1,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + 7428 ;CORRECTLY FROM SOURCE? + 7429 036325 002 15 0 00 021520 ER2 AC+1,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 7430 ;CORRECTLY FROM SOURCE + 7431 021521 SN=SN+1 + 7432 036326 200 15 0 00 040224 MOVE AC+1,DEST+3 + 7433 036327 312 15 0 00 041042 CAME AC+1,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + 7434 ;LOADED CORRECTLY FROM SOURCE? + 7435 036330 002 15 0 00 021521 ER2 AC+1,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 7436 ;CORRECTLY FROM SOURCE + 7437 021522 SN=SN+1 + 7438 036331 200 15 0 00 040225 MOVE AC+1,DEST+4 + 7439 036332 312 15 0 00 041037 CAME AC+1,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + 7440 ;LOADED CORRECTLY FROM SOURCE? + 7441 036333 002 15 0 00 021522 ER2 AC+1,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 7442 ;CORRECTLY FROM SOURCE + 7443 021523 SN=SN+1 + 7444 036334 200 15 0 00 040226 MOVE AC+1,DEST+5 + 7445 036335 312 15 0 00 041050 CAME AC+1,[007700,,770077] ;WAS SIXTH WORD OF DESTINATION BLOCK LOADED + 7446 ;CORRECTLY FROM SOURCE? + 7447 036336 002 15 0 00 021523 ER2 AC+1,SN ;FAIL IF SIXTH WORD OF DESTINATION BLOCK NOT LOADED + 7448 ;CORRECTLY FROM SOURCE + 7449 021524 SN=SN+1 + 7450 036337 200 15 0 00 040227 MOVE AC+1,DEST+6 + 7451 036340 312 15 0 00 041051 CAME AC+1,[003760,,077401] ;WAS SEVENTH WORD OF DESTINATION BLOCK + 7452 ;LOADED CORRECTLY FROM SOURCE? + 7453 036341 002 15 0 00 021524 ER2 AC+1,SN ;FAIL IF SEVENTH WORD OF DESTINATION BLOCK NOT LOADED + 7454 ;CORRECTLY FROM SOURCE + 7455 021525 SN=SN+1 + 7456 036342 200 15 0 00 040230 MOVE AC+1,DEST+7 + 7457 036343 312 15 0 00 041052 CAME AC+1,[001774,,007760] ;WAS EIGHTH WORD OF DESTINATION BLOCK + 7458 ;LOADED CORRECTLY FROM SOURCE? +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 83-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0195 + + 7459 036344 002 15 0 00 021525 ER2 AC+1,SN ;FAIL IF EIGHTH WORD OF DESTINATION BLOCK NOT LOADED + 7460 ;CORRECTLY FROM SOURCE + 7461 021526 SN=SN+1 + 7462 036345 200 15 0 00 040231 MOVE AC+1,DEST+^D8 + 7463 036346 312 15 0 00 041053 CAME AC+1,[000777,,000777] ;WAS NINTH WORD OF DESTINATION BLOCK LOADED + 7464 ;CORRECTLY FROM SOURCE? + 7465 036347 002 15 0 00 021526 ER2 AC+1,SN ;FAIL IF NINTH WORD OF DESTINATION BLOCK NOT LOADED + 7466 ;CORRECTLY FROM SOURCE + 7467 021527 SN=SN+1 + 7468 036350 200 15 0 00 040232 MOVE AC+1,DEST+^D9 + 7469 036351 312 15 0 00 041054 CAME AC+1,[000377,,600077] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + 7470 ;CORRECTLY FROM SOURCE? + 7471 036352 002 15 0 00 021527 ER2 AC+1,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + 7472 ;CORRECTLY FROM SOURCE + 7473 021530 SN=SN+1 + 7474 036353 200 15 0 00 040233 MOVE AC+1,DEST+SIZ + 7475 036354 312 15 0 00 041056 CAME AC+1,[-1,,DEST+SIZ] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 7476 ;BLOCK CLOBBERED? + 7477 036355 002 15 0 00 021530 ER2 AC+1,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + 7478 ;WAS CLOBBERED + 7479 036356 321 16 0 00 036212 JUMPL AC+2,G21500 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 84 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0196 + + 7480 ;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK + 7481 ;HAS AC ADDRESS - MULTIPLE PATTERN + 7482 + 7483 000014 AC=14 + 7484 SAVEAC (1,1)^ + 7485 036357 201 16 0 00 036357 MOVEI AC+2,. ;SAVE TEST PC + 7486 036360 202 16 0 00 030051 MOVEM AC+2,TESTPC + 7487 036361 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7488 036362 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7489 + 7490 021600 SN=21600 + 7491 040221 SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+1 + 7492 000001 DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + 7493 000012 SIZ=^D10 ;BLOCK SIZE=10 WORDS + 7494 + 7495 036363 200 14 0 00 041057 G21600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + 7496 ;SOURCE AND DESTINATION BLOCKS + 7497 036364 200 00 0 00 040752 MOVE [230703,,603700] + 7498 036365 202 00 0 00 040220 MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 7499 ;WITH 230703,,603700 + 7500 036366 200 00 0 00 041016 MOVE [252525,,252525] + 7501 036367 202 00 0 00 040221 MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + 7502 036370 200 00 0 00 041035 MOVE [146314,,631463] + 7503 036371 202 00 0 00 040222 MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + 7504 ;WITH 146314,,631463 + 7505 036372 200 00 0 00 041020 MOVE [070707,,070707] + 7506 036373 202 00 0 00 040223 MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + 7507 036374 200 00 0 00 041042 MOVE [036074,,170630] + 7508 036375 202 00 0 00 040224 MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + 7509 ;WITH 036074,,170630 + 7510 036376 200 00 0 00 041037 MOVE [017407,,603701] + 7511 036377 202 00 0 00 040225 MOVEM SRCE+4 ;PRELOAD + 7512 ;FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + 7513 036400 200 00 0 00 041050 MOVE [007700,,770077] + 7514 036401 202 00 0 00 040226 MOVEM SRCE+5 ;PRELOAD SIXTH WORD OF SOURCE BLOCK WITH 007700,,770077 + 7515 036402 200 00 0 00 041051 MOVE [003760,,077401] + 7516 036403 202 00 0 00 040227 MOVEM SRCE+6 ;PRELOAD SEVENTH WORD OF SOURCE BLOCK + 7517 ;WITH 003760,,077401 + 7518 036404 200 00 0 00 041052 MOVE [001774,,007760] + 7519 036405 202 00 0 00 040230 MOVEM SRCE+7 ;PRELOAD EIGHTH WORD OF SOURCE BLOCK + 7520 ;WITH 001774,,007760 + 7521 036406 200 00 0 00 041053 MOVE [000777,,000777] + 7522 036407 202 00 0 00 040231 MOVEM SRCE+^D8 ;PRELOAD NINTH WORD OF SOURCE BLOCK WITH 000777,,000777 + 7523 036410 200 00 0 00 041054 MOVE [000377,,600077] + 7524 036411 202 00 0 00 040232 MOVEM SRCE+^D9 ;PRELOAD TENTH WORD OF SOURCE BLOCK WITH 000377,,600077 + 7525 036412 200 00 0 00 041040 MOVE [007603,,607062] + 7526 036413 202 00 0 00 040233 MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + 7527 ;WITH 007603,,607062 + 7528 036414 561 00 0 00 000000 HRROI DEST-1,DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + 7529 ;BLOCK WITH DEST-1 + 7530 036415 561 01 0 00 000001 HRROI DEST,DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK WITH DEST + 7531 036416 561 02 0 00 000002 HRROI DEST+1,DEST+1 ;PRELOAD SECOND WORD OF DESTINATION BLOCK + 7532 ;WITH DEST+1,DEST+1 + 7533 036417 561 03 0 00 000003 HRROI DEST+2,DEST+2 ;PRELOAD THIRD WORD OF DESTINATION BLOCK WITH DEST+2 + 7534 036420 561 04 0 00 000004 HRROI DEST+3,DEST+3 ;PRELOAD FOURTH WORD OF DESTINATION BLOCK WITH DEST+3 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 84-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0197 + + 7535 036421 561 05 0 00 000005 HRROI DEST+4,DEST+4 ;PRELOAD FIFTH WORD OF DESTINATION BLOCK WITH DEST+4 + 7536 036422 561 06 0 00 000006 HRROI DEST+5,DEST+5 ;PRELOAD SIXTH WORD OF DESTINATION BLOCK WITH DEST+5 + 7537 036423 561 07 0 00 000007 HRROI DEST+6,DEST+6 ;PRELOAD SEVENTH WORD OF DESTINATION BLOCK WITH DEST+6 + 7538 036424 561 10 0 00 000010 HRROI DEST+7,DEST+7 ;PRELOAD EIGHTH WORD OF DESTINATION BLOCK WITH DEST+7 + 7539 036425 561 11 0 00 000011 HRROI DEST+^D8,DEST+^D8 ;PRELOAD NINTH WORD OF DESTINATION BLOCK WITH DEST+8 + 7540 036426 561 12 0 00 000012 HRROI DEST+^D9,DEST+^D9 ;PRELOAD TENTH WORD OF DESTINATION BLOCK WITH DEST+9 + 7541 036427 561 13 0 00 000013 HRROI DEST+SIZ,DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION + 7542 ;BLOCK WITH DEST+SIZ + 7543 036430 251 14 0 00 000012 BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 85 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0198 + + 7544 ;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK + 7545 ;HAS AC ADDRESS - MULTIPLE PATTERN (CONTINUED) + 7546 + 7547 021601 SN=SN+1 + 7548 036431 200 15 0 00 040220 MOVE AC+1,SRCE-1 + 7549 036432 312 15 0 00 040752 CAME AC+1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + 7550 ;BLOCK CLOBBERED? + 7551 036433 002 15 0 00 021601 ER2 AC+1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + 7552 ;WAS CLOBBERED + 7553 021602 SN=SN+1 + 7554 036434 200 15 0 00 040221 MOVE AC+1,SRCE + 7555 036435 312 15 0 00 041016 CAME AC+1,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + 7556 036436 002 15 0 00 021602 ER2 AC+1,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED + 7557 021603 SN=SN+1 + 7558 036437 200 15 0 00 040222 MOVE AC+1,SRCE+1 + 7559 036440 312 15 0 00 041035 CAME AC+1,[146314,,631463] ;WAS SECOND WORD OF SOURCE BLOCK CLOBBERED? + 7560 036441 002 15 0 00 021603 ER2 AC+1,SN ;FAIL IF SECOND WORD OF SOURCE BLOCK WAS CLOBBERED + 7561 021604 SN=SN+1 + 7562 036442 200 15 0 00 040223 MOVE AC+1,SRCE+2 + 7563 036443 312 15 0 00 041020 CAME AC+1,[070707,,070707] ;WAS THIRD WORD OF SOURCE BLOCK CLOBBERED? + 7564 036444 002 15 0 00 021604 ER2 AC+1,SN ;FAIL IF THIRD WORD OF SOURCE BLOCK WAS CLOBBERED + 7565 021605 SN=SN+1 + 7566 036445 200 15 0 00 040224 MOVE AC+1,SRCE+3 + 7567 036446 312 15 0 00 041042 CAME AC+1,[036074,,170630] ;WAS FOURTH WORD OF SOURCE BLOCK CLOBBERED? + 7568 036447 002 15 0 00 021605 ER2 AC+1,SN ;FAIL IF FOURTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7569 021606 SN=SN+1 + 7570 036450 200 15 0 00 040225 MOVE AC+1,SRCE+4 + 7571 036451 312 15 0 00 041037 CAME AC+1,[017407,,603701] ;WAS FIFTH WORD OF SOURCE BLOCK CLOBBERED? + 7572 036452 002 15 0 00 021606 ER2 AC+1,SN ;FAIL IF FIFTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7573 021607 SN=SN+1 + 7574 036453 200 15 0 00 040226 MOVE AC+1,SRCE+5 + 7575 036454 312 15 0 00 041050 CAME AC+1,[007700,,770077] ;WAS SIXTH WORD OF SOURCE BLOCK CLOBBERED? + 7576 036455 002 15 0 00 021607 ER2 AC+1,SN ;FAIL IF SIXTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7577 021610 SN=SN+1 + 7578 036456 200 15 0 00 040227 MOVE AC+1,SRCE+6 + 7579 036457 312 15 0 00 041051 CAME AC+1,[003760,,077401] ;WAS SEVENTH WORD OF SOURCE BLOCK CLOBBERED? + 7580 036460 002 15 0 00 021610 ER2 AC+1,SN ;FAIL IF SEVENTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7581 021611 SN=SN+1 + 7582 036461 200 15 0 00 040230 MOVE AC+1,SRCE+7 + 7583 036462 312 15 0 00 041052 CAME AC+1,[001774,,007760] ;WAS EIGHTH WORD OF SOURCE BLOCK CLOBBERED? + 7584 036463 002 15 0 00 021611 ER2 AC+1,SN ;FAIL IF EIGTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7585 021612 SN=SN+1 + 7586 036464 200 15 0 00 040231 MOVE AC+1,SRCE+^D8 + 7587 036465 312 15 0 00 041053 CAME AC+1,[000777,,000777] ;WAS NINTH WORD OF SOURCE BLOCK CLOBBERED? + 7588 036466 002 15 0 00 021612 ER2 AC+1,SN ;FAIL IF NINTH WORD OF SOURCE BLOCK WAS CLOBBERED + 7589 021613 SN=SN+1 + 7590 036467 200 15 0 00 040232 MOVE AC+1,SRCE+^D9 + 7591 036470 312 15 0 00 041054 CAME AC+1,[000377,,600077] ;WAS LAST WORD OF SOURCE BLOCK CLOBBERED? + 7592 036471 002 15 0 00 021613 ER2 AC+1,SN ;FAIL IF LAST WORD OF SOURCE BLOCK WAS CLOBBERED + 7593 021614 SN=SN+1 + 7594 036472 200 15 0 00 040233 MOVE AC+1,SRCE+SIZ + 7595 036473 312 15 0 00 041040 CAME AC+1,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + 7596 ;BLOCK CLOBBERED? + 7597 036474 002 15 0 00 021614 ER2 AC+1,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK WAS + 7598 ;CLOBBERED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 86 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0199 + + 7599 ;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK + 7600 ;HAS AC ADDRESS - MULTIPLE PATTERN (CONTINUED) + 7601 + 7602 021615 SN=SN+1 + 7603 036475 312 00 0 00 041060 CAME DEST-1,[-1,,DEST-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + 7604 ;BLOCK CLOBBERED? + 7605 036476 002 00 0 00 021615 ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + 7606 ;BLOCK WAS CLOBBERED? + 7607 021616 SN=SN+1 + 7608 036477 312 01 0 00 041016 CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + 7609 ;CORRECTLY FROM SOURCE? + 7610 036500 002 01 0 00 021616 ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + 7611 ;CORRECTLY FROM SOURCE + 7612 021617 SN=SN+1 + 7613 036501 312 02 0 00 041035 CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + 7614 ;LOADED CORRECTLY FROM SOURCE? + 7615 036502 002 02 0 00 021617 ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + 7616 ;CORRECTLY FROM SOURCE + 7617 021620 SN=SN+1 + 7618 036503 312 03 0 00 041020 CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + 7619 ;LOADED CORRECTLY FROM SOURCE? + 7620 036504 002 03 0 00 021620 ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + 7621 ;CORRECTLY FROM SOURCE + 7622 021621 SN=SN+1 + 7623 036505 312 04 0 00 041042 CAME DEST+3,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + 7624 ;LOADED CORRECTLY FROM SOURCE? + 7625 036506 002 04 0 00 021621 ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + 7626 ;CORRECTLY FROM SOURCE + 7627 021622 SN=SN+1 + 7628 036507 312 05 0 00 041037 CAME DEST+4,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + 7629 ;LOADED CORRECTLY FROM SOURCE? + 7630 036510 002 05 0 00 021622 ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + 7631 ;CORRECTLY FROM SOURCE + 7632 021623 SN=SN+1 + 7633 036511 312 06 0 00 041050 CAME DEST+5,[007700,,770077] ;WAS SIXTH WORD OF DESTINATION BLOCK + 7634 ;LOADED CORRECTLY FROM SOURCE? + 7635 036512 002 06 0 00 021623 ER2 DEST+5,SN ;FAIL IF SIXTH WORD OF DESTINATION BLOCK NOT LOADED + 7636 ;CORRECTLY FROM SOURCE + 7637 021624 SN=SN+1 + 7638 036513 312 07 0 00 041051 CAME DEST+6,[003760,,077401] ;WAS SEVENTH WORD OF DESTINATION BLOCK + 7639 ;LOADED CORRECTLY FROM SOURCE? + 7640 036514 002 07 0 00 021624 ER2 DEST+6,SN ;FAIL IF SEVENTH WORD OF DESTINATION BLOCK NOT LOADED + 7641 ;CORRECTLY FROM SOURCE + 7642 021625 SN=SN+1 + 7643 036515 312 10 0 00 041052 CAME DEST+7,[001774,,007760] ;WAS EIGHTH WORD OF DESTINATION BLOCK + 7644 ;LOADED CORRECTLY FROM SOURCE? + 7645 036516 002 10 0 00 021625 ER2 DEST+7,SN ;FAIL IF EIGHTH WORD OF DESTINATION BLOCK NOT LOADED + 7646 ;CORRECTLY FROM SOURCE + 7647 021626 SN=SN+1 + 7648 036517 312 11 0 00 041053 CAME DEST+^D8,[000777,,000777] ;WAS NINTH WORD OF DESTINATION BLOCK + 7649 ;LOADED CORRECTLY FROM SOURCE? + 7650 036520 002 11 0 00 021626 ER2 DEST+^D8,SN ;FAIL IF NINTH WORD OF DESTINATION BLOCK NOT LOADED + 7651 ;CORRECTLY FROM SOURCE + 7652 021627 SN=SN+1 + 7653 036521 312 12 0 00 041054 CAME DEST+^D9,[000377,,600077] ;WAS LAST WORD OF DESTINATION BLOCK +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 86-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0200 + + 7654 ;LOADED CORRECTLY FROM SOURCE? + 7655 036522 002 12 0 00 021627 ER2 DEST+^D9,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + 7656 ;CORRECTLY FROM SOURCE + 7657 021630 SN=SN+1 + 7658 036523 312 13 0 00 041061 CAME DEST+SIZ,[-1,,DEST+SIZ] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + 7659 ;BLOCK CLOBBERED? + 7660 036524 002 13 0 00 021630 ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + 7661 ;BLOCK WAS CLOBBERED + 7662 036525 321 16 0 00 036363 JUMPL AC+2,G21600 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 87 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0201 + + 7663 ;TEST BLT WITH 'E' LESS THAN RH(AC) + 7664 ;SUCH THAT THE BLT INSTR. TRANSFERS ONLY ONE WORD, THEN STOPS. + 7665 + 7666 000010 AC=10 + 7667 SAVEAC (1,1)^ + 7668 036526 201 12 0 00 036526 MOVEI AC+2,. ;SAVE TEST PC + 7669 036527 202 12 0 00 030051 MOVEM AC+2,TESTPC + 7670 036530 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7671 036531 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7672 021700 SN=21700 + 7673 + 7674 041224 BLTSRC=END+2 + 7675 041230 BLTDST=END+6 + 7676 + 7677 036532 200 10 0 00 041016 G21700: MOVE AC,[252525,,252525] ; PRELOAD FOR SRC-1 + 7678 036533 202 10 0 00 041223 MOVEM AC,BLTSRC-1 + 7679 036534 200 10 0 00 040726 MOVE AC,[707070,,707070] ; PRELOAD FOR SRC + 7680 036535 202 10 0 00 041224 MOVEM AC,BLTSRC + 7681 036536 200 10 0 00 041062 MOVE AC,[525252,,525252] ;PRELOAD FOR SRC+1 + 7682 036537 202 10 0 00 041225 MOVEM AC,BLTSRC+1 + 7683 036540 200 10 0 00 041063 MOVE AC,[123456,,654321] ;PRELOAD FOR DST-1 + 7684 036541 202 10 0 00 041227 MOVEM AC,BLTDST-1 + 7685 036542 200 10 0 00 041020 MOVE AC,[070707,,070707] ;PRELOAD FOR DST + 7686 036543 202 10 0 00 041230 MOVEM AC,BLTDST + 7687 036544 200 10 0 00 040743 MOVE AC,[112233,,445566] ;PRELOAD FOR DST+1 + 7688 036545 202 10 0 00 041231 MOVEM AC,BLTDST+1 + 7689 + 7690 036546 200 10 0 00 041064 MOVE AC,[BLTSRC,,BLTDST] ;SETUP BLT PTR=FROM,,TO + 7691 036547 251 10 0 00 041227 BLT AC,BLTDST-1 ;*BLT SHOULD XFER ONE WORD AND STOP + 7692 + 7693 021701 SN=SN+1 + 7694 036550 312 10 0 00 041064 CAME AC,[BLTSRC,,BLTDST] ;SEE IF PTR CHANGED + 7695 036551 002 10 0 00 021701 ER2 AC,SN ;YES, REPORT + 7696 021702 SN=SN+1 + 7697 036552 200 10 0 00 041016 MOVE AC,[252525,,252525] ;GET PRELOAD FOR SRC-1 + 7698 036553 312 10 0 00 041223 CAME AC,BLTSRC-1 ;SEE IF OK + 7699 036554 002 10 0 00 021702 ER2 AC,SN ;REPORT ERROR + 7700 021703 SN=SN+1 + 7701 036555 200 10 0 00 040726 MOVE AC,[707070,,707070] ;GET PRELOAD FOR SRC + 7702 036556 312 10 0 00 041224 CAME AC,BLTSRC ;SEE IF SRC OK + 7703 036557 002 10 0 00 021703 ER2 AC,SN ; REPORT ERR + 7704 021704 SN=SN+1 + 7705 036560 200 10 0 00 041062 MOVE AC,[525252,,525252] ;GET PRELOAD FOR SRC+1 + 7706 036561 312 10 0 00 041225 CAME AC,BLTSRC+1 ;SEE IF OK + 7707 036562 002 10 0 00 021704 ER2 AC,SN ;REPORT ER + 7708 021705 SN=SN+1 + 7709 036563 200 10 0 00 041063 MOVE AC,[123456,,654321] ;GET PRELOAD FOR DST-1 + 7710 036564 312 10 0 00 041227 CAME AC,BLTDST-1 ;SEE IF OK + 7711 036565 002 10 0 00 021705 ER2 AC,SN ;REPORT ERR + 7712 021706 SN=SN+1 + 7713 036566 200 10 0 00 040726 MOVE AC,[707070,,707070] ;GET PRELOAD FOR SRC*** + 7714 036567 312 10 0 00 041230 CAME AC,BLTDST ;SEE IF IT XFERED A WORD + 7715 036570 002 10 0 00 021706 ER2 AC,SN ;REPORT ER + 7716 021707 SN=SN+1 + 7717 036571 200 10 0 00 040743 MOVE AC,[112233,,445566] ;GET PRELOAD FOR DST+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 87-1 +DAKAMM MAC 20-JAN-77 11:34 PART II - GENERAL BLOCK TRANSFER TEST SEQ 0202 + + 7718 036572 312 10 0 00 041231 CAME AC,BLTDST+1 ;SEE IF XFERED ONLY ONE WORD + 7719 036573 002 10 0 00 021707 ER2 AC,SN ;REPORT ERR + 7720 + 7721 036574 321 12 0 00 036532 JUMPL AC+2,G21700 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0203 + + 7722 SUBTTL PART III - GENERAL JFFO TEST + 7723 + 7724 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0 + 7725 + 7726 030100 G30000: SN=30100 + 7727 777777 777777 AC=-1 + 7728 + 7729 036575 201 00 0 00 041065 MOVEI [ASCIZ/JFFO NO-JUMP FAILED/] + 7730 036576 202 00 0 00 040646 MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTOR + 7731 + 7732 G30100: REPEAT ^D13,< + 7733 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7734 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7735 + 7736 SN=SN+1 + 7737 AC=&17 + 7738 SAVEAC (1,1) + 7739 + 7740 SETZM AC ;CLEAR AC + 7741 SETOM &17 ;INITIALIZE AC+1 + 7742 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7743 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7744 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7745 SKIPE AC ;EXAMINE AC + 7746 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7747 SKIPE &17 ;EXAMINE AC+1 + 7748 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7749 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7750 > + 7751 + 7752 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7753 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7754 + 7755 030101 SN=SN+1 + 7756 000000 AC=&17 + 7757 SAVEAC (1,1)^ + 7758 036577 201 02 0 00 036577 MOVEI AC+2,. ;SAVE TEST PC + 7759 036600 202 02 0 00 030051 MOVEM AC+2,TESTPC + 7760 036601 201 02 0 00 000002 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7761 036602 202 02 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7762 + 7763 036603 402 00 0 00 000000 SETZM AC ;CLEAR AC + 7764 036604 476 00 0 00 000001 SETOM &17 ;INITIALIZE AC+1 + 7765 036605 243 00 0 00 036607 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7766 036606 254 00 0 00 036610 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7767 036607 002 00 0 00 030101 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7768 036610 332 00 0 00 000000 SKIPE AC ;EXAMINE AC + 7769 036611 003 00 0 00 030101 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7770 036612 332 00 0 00 000001 SKIPE &17 ;EXAMINE AC+1 + 7771 036613 004 01 0 00 030101 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7772 036614 321 02 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7773 + 7774 + 7775 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7776 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88-1 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0204 + + 7777 + 7778 030102 SN=SN+1 + 7779 000001 AC=&17 + 7780 SAVEAC (1,1)^ + 7781 036615 201 03 0 00 036615 MOVEI AC+2,. ;SAVE TEST PC + 7782 036616 202 03 0 00 030051 MOVEM AC+2,TESTPC + 7783 036617 201 03 0 00 000003 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7784 036620 202 03 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7785 + 7786 036621 402 00 0 00 000001 SETZM AC ;CLEAR AC + 7787 036622 476 00 0 00 000002 SETOM &17 ;INITIALIZE AC+1 + 7788 036623 243 01 0 00 036625 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7789 036624 254 00 0 00 036626 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7790 036625 002 01 0 00 030102 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7791 036626 332 00 0 00 000001 SKIPE AC ;EXAMINE AC + 7792 036627 003 01 0 00 030102 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7793 036630 332 00 0 00 000002 SKIPE &17 ;EXAMINE AC+1 + 7794 036631 004 02 0 00 030102 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7795 036632 321 03 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7796 + 7797 + 7798 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7799 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7800 + 7801 030103 SN=SN+1 + 7802 000002 AC=&17 + 7803 SAVEAC (1,1)^ + 7804 036633 201 04 0 00 036633 MOVEI AC+2,. ;SAVE TEST PC + 7805 036634 202 04 0 00 030051 MOVEM AC+2,TESTPC + 7806 036635 201 04 0 00 000004 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7807 036636 202 04 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7808 + 7809 036637 402 00 0 00 000002 SETZM AC ;CLEAR AC + 7810 036640 476 00 0 00 000003 SETOM &17 ;INITIALIZE AC+1 + 7811 036641 243 02 0 00 036643 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7812 036642 254 00 0 00 036644 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7813 036643 002 02 0 00 030103 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7814 036644 332 00 0 00 000002 SKIPE AC ;EXAMINE AC + 7815 036645 003 02 0 00 030103 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7816 036646 332 00 0 00 000003 SKIPE &17 ;EXAMINE AC+1 + 7817 036647 004 03 0 00 030103 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7818 036650 321 04 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7819 + 7820 + 7821 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7822 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7823 + 7824 030104 SN=SN+1 + 7825 000003 AC=&17 + 7826 SAVEAC (1,1)^ + 7827 036651 201 05 0 00 036651 MOVEI AC+2,. ;SAVE TEST PC + 7828 036652 202 05 0 00 030051 MOVEM AC+2,TESTPC + 7829 036653 201 05 0 00 000005 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7830 036654 202 05 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7831 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88-2 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0205 + + 7832 036655 402 00 0 00 000003 SETZM AC ;CLEAR AC + 7833 036656 476 00 0 00 000004 SETOM &17 ;INITIALIZE AC+1 + 7834 036657 243 03 0 00 036661 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7835 036660 254 00 0 00 036662 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7836 036661 002 03 0 00 030104 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7837 036662 332 00 0 00 000003 SKIPE AC ;EXAMINE AC + 7838 036663 003 03 0 00 030104 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7839 036664 332 00 0 00 000004 SKIPE &17 ;EXAMINE AC+1 + 7840 036665 004 04 0 00 030104 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7841 036666 321 05 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7842 + 7843 + 7844 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7845 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7846 + 7847 030105 SN=SN+1 + 7848 000004 AC=&17 + 7849 SAVEAC (1,1)^ + 7850 036667 201 06 0 00 036667 MOVEI AC+2,. ;SAVE TEST PC + 7851 036670 202 06 0 00 030051 MOVEM AC+2,TESTPC + 7852 036671 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7853 036672 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7854 + 7855 036673 402 00 0 00 000004 SETZM AC ;CLEAR AC + 7856 036674 476 00 0 00 000005 SETOM &17 ;INITIALIZE AC+1 + 7857 036675 243 04 0 00 036677 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7858 036676 254 00 0 00 036700 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7859 036677 002 04 0 00 030105 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7860 036700 332 00 0 00 000004 SKIPE AC ;EXAMINE AC + 7861 036701 003 04 0 00 030105 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7862 036702 332 00 0 00 000005 SKIPE &17 ;EXAMINE AC+1 + 7863 036703 004 05 0 00 030105 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7864 036704 321 06 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7865 + 7866 + 7867 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7868 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7869 + 7870 030106 SN=SN+1 + 7871 000005 AC=&17 + 7872 SAVEAC (1,1)^ + 7873 036705 201 07 0 00 036705 MOVEI AC+2,. ;SAVE TEST PC + 7874 036706 202 07 0 00 030051 MOVEM AC+2,TESTPC + 7875 036707 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7876 036710 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7877 + 7878 036711 402 00 0 00 000005 SETZM AC ;CLEAR AC + 7879 036712 476 00 0 00 000006 SETOM &17 ;INITIALIZE AC+1 + 7880 036713 243 05 0 00 036715 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7881 036714 254 00 0 00 036716 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7882 036715 002 05 0 00 030106 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7883 036716 332 00 0 00 000005 SKIPE AC ;EXAMINE AC + 7884 036717 003 05 0 00 030106 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7885 036720 332 00 0 00 000006 SKIPE &17 ;EXAMINE AC+1 + 7886 036721 004 06 0 00 030106 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88-3 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0206 + + 7887 036722 321 07 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7888 + 7889 + 7890 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7891 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7892 + 7893 030107 SN=SN+1 + 7894 000006 AC=&17 + 7895 SAVEAC (1,1)^ + 7896 036723 201 10 0 00 036723 MOVEI AC+2,. ;SAVE TEST PC + 7897 036724 202 10 0 00 030051 MOVEM AC+2,TESTPC + 7898 036725 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7899 036726 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7900 + 7901 036727 402 00 0 00 000006 SETZM AC ;CLEAR AC + 7902 036730 476 00 0 00 000007 SETOM &17 ;INITIALIZE AC+1 + 7903 036731 243 06 0 00 036733 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7904 036732 254 00 0 00 036734 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7905 036733 002 06 0 00 030107 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7906 036734 332 00 0 00 000006 SKIPE AC ;EXAMINE AC + 7907 036735 003 06 0 00 030107 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7908 036736 332 00 0 00 000007 SKIPE &17 ;EXAMINE AC+1 + 7909 036737 004 07 0 00 030107 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7910 036740 321 10 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7911 + 7912 + 7913 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7914 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7915 + 7916 030110 SN=SN+1 + 7917 000007 AC=&17 + 7918 SAVEAC (1,1)^ + 7919 036741 201 11 0 00 036741 MOVEI AC+2,. ;SAVE TEST PC + 7920 036742 202 11 0 00 030051 MOVEM AC+2,TESTPC + 7921 036743 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7922 036744 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7923 + 7924 036745 402 00 0 00 000007 SETZM AC ;CLEAR AC + 7925 036746 476 00 0 00 000010 SETOM &17 ;INITIALIZE AC+1 + 7926 036747 243 07 0 00 036751 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7927 036750 254 00 0 00 036752 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7928 036751 002 07 0 00 030110 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7929 036752 332 00 0 00 000007 SKIPE AC ;EXAMINE AC + 7930 036753 003 07 0 00 030110 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7931 036754 332 00 0 00 000010 SKIPE &17 ;EXAMINE AC+1 + 7932 036755 004 10 0 00 030110 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7933 036756 321 11 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7934 + 7935 + 7936 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7937 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7938 + 7939 030111 SN=SN+1 + 7940 000010 AC=&17 + 7941 SAVEAC (1,1)^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88-4 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0207 + + 7942 036757 201 12 0 00 036757 MOVEI AC+2,. ;SAVE TEST PC + 7943 036760 202 12 0 00 030051 MOVEM AC+2,TESTPC + 7944 036761 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7945 036762 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7946 + 7947 036763 402 00 0 00 000010 SETZM AC ;CLEAR AC + 7948 036764 476 00 0 00 000011 SETOM &17 ;INITIALIZE AC+1 + 7949 036765 243 10 0 00 036767 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7950 036766 254 00 0 00 036770 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7951 036767 002 10 0 00 030111 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7952 036770 332 00 0 00 000010 SKIPE AC ;EXAMINE AC + 7953 036771 003 10 0 00 030111 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7954 036772 332 00 0 00 000011 SKIPE &17 ;EXAMINE AC+1 + 7955 036773 004 11 0 00 030111 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7956 036774 321 12 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7957 + 7958 + 7959 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7960 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7961 + 7962 030112 SN=SN+1 + 7963 000011 AC=&17 + 7964 SAVEAC (1,1)^ + 7965 036775 201 13 0 00 036775 MOVEI AC+2,. ;SAVE TEST PC + 7966 036776 202 13 0 00 030051 MOVEM AC+2,TESTPC + 7967 036777 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7968 037000 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7969 + 7970 037001 402 00 0 00 000011 SETZM AC ;CLEAR AC + 7971 037002 476 00 0 00 000012 SETOM &17 ;INITIALIZE AC+1 + 7972 037003 243 11 0 00 037005 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7973 037004 254 00 0 00 037006 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 7974 037005 002 11 0 00 030112 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7975 037006 332 00 0 00 000011 SKIPE AC ;EXAMINE AC + 7976 037007 003 11 0 00 030112 ER3 AC,SN ;C(AC) WAS CLOBBERED + 7977 037010 332 00 0 00 000012 SKIPE &17 ;EXAMINE AC+1 + 7978 037011 004 12 0 00 030112 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 7979 037012 321 13 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 7980 + 7981 + 7982 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 7983 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 7984 + 7985 030113 SN=SN+1 + 7986 000012 AC=&17 + 7987 SAVEAC (1,1)^ + 7988 037013 201 14 0 00 037013 MOVEI AC+2,. ;SAVE TEST PC + 7989 037014 202 14 0 00 030051 MOVEM AC+2,TESTPC + 7990 037015 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7991 037016 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7992 + 7993 037017 402 00 0 00 000012 SETZM AC ;CLEAR AC + 7994 037020 476 00 0 00 000013 SETOM &17 ;INITIALIZE AC+1 + 7995 037021 243 12 0 00 037023 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 7996 037022 254 00 0 00 037024 JRST .+2 ;PASS IF JFFO DOES NOT JUMP +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88-5 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0208 + + 7997 037023 002 12 0 00 030113 ER2 AC,SN ;ERROR IF JFFO JUMPED + 7998 037024 332 00 0 00 000012 SKIPE AC ;EXAMINE AC + 7999 037025 003 12 0 00 030113 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8000 037026 332 00 0 00 000013 SKIPE &17 ;EXAMINE AC+1 + 8001 037027 004 13 0 00 030113 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 8002 037030 321 14 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8003 + 8004 + 8005 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 8006 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8007 + 8008 030114 SN=SN+1 + 8009 000013 AC=&17 + 8010 SAVEAC (1,1)^ + 8011 037031 201 15 0 00 037031 MOVEI AC+2,. ;SAVE TEST PC + 8012 037032 202 15 0 00 030051 MOVEM AC+2,TESTPC + 8013 037033 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8014 037034 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8015 + 8016 037035 402 00 0 00 000013 SETZM AC ;CLEAR AC + 8017 037036 476 00 0 00 000014 SETOM &17 ;INITIALIZE AC+1 + 8018 037037 243 13 0 00 037041 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 8019 037040 254 00 0 00 037042 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 8020 037041 002 13 0 00 030114 ER2 AC,SN ;ERROR IF JFFO JUMPED + 8021 037042 332 00 0 00 000013 SKIPE AC ;EXAMINE AC + 8022 037043 003 13 0 00 030114 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8023 037044 332 00 0 00 000014 SKIPE &17 ;EXAMINE AC+1 + 8024 037045 004 14 0 00 030114 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 8025 037046 321 15 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8026 + 8027 + 8028 ;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. + 8029 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8030 + 8031 030115 SN=SN+1 + 8032 000014 AC=&17 + 8033 SAVEAC (1,1)^ + 8034 037047 201 16 0 00 037047 MOVEI AC+2,. ;SAVE TEST PC + 8035 037050 202 16 0 00 030051 MOVEM AC+2,TESTPC + 8036 037051 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8037 037052 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8038 + 8039 037053 402 00 0 00 000014 SETZM AC ;CLEAR AC + 8040 037054 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8041 037055 243 14 0 00 037057 JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + 8042 037056 254 00 0 00 037060 JRST .+2 ;PASS IF JFFO DOES NOT JUMP + 8043 037057 002 14 0 00 030115 ER2 AC,SN ;ERROR IF JFFO JUMPED + 8044 037060 332 00 0 00 000014 SKIPE AC ;EXAMINE AC + 8045 037061 003 14 0 00 030115 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8046 037062 332 00 0 00 000015 SKIPE &17 ;EXAMINE AC+1 + 8047 037063 004 15 0 00 030115 ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + 8048 037064 321 16 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8049 + 8050 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 88-6 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0209 + + 8051 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8052 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8053 + 8054 037065 201 00 0 00 041071 MOVEI [ASCIZ/JFFO JUMP FAILED/] + 8055 037066 202 00 0 00 040646 MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTER + 8056 + 8057 037067 477 14 0 00 000015 G30200: SETOB AC,&17 ;INITIALIZE AC AND AC+1 + 8058 037070 243 14 0 00 037072 JFFO AC,.+2 + 8059 037071 002 14 0 00 030201 ER2 AC,30201 ;ERROR IF JFFO DID NOT JUMP + 8060 037072 312 14 0 00 040734 CAME AC,[-1,,-1] ;EXAMINE AC + 8061 037073 003 14 0 00 030201 ER3 AC,30201 ;C(AC) WAS CLOBBERED + 8062 037074 332 00 0 00 000015 SKIPE &17 ;EXAMINE AC+1 + 8063 037075 004 15 0 00 030201 ER4 AC+1,30201 ;C(AC+1) NOT = TO NO OF LEADING ZEROS IN AC + 8064 037076 321 16 0 00 037067 JUMPL AC+2,G30200 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0210 + + 8065 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8066 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8067 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8068 + 8069 030300 SN=30300 + 8070 000001 000000 XX=1000000 + 8071 777777 777777 ZZ=-1 + 8072 + 8073 G30300: REPEAT ^D18,< + 8074 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8075 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8076 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8077 + 8078 SN=SN+1 + 8079 XX=XX/2 + 8080 ZZ=ZZ+1 + 8081 MOVSI AC,XX ;INITIALIZE AC + 8082 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8083 SETOM &17 ;INITIALIZE AC+1 + 8084 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8085 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8086 CAME AC,&17 ;EXAMINE AC + 8087 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8088 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8089 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8090 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8091 > + 8092 + 8093 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8094 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8095 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8096 + 8097 030301 SN=SN+1 + 8098 400000 XX=XX/2 + 8099 000000 ZZ=ZZ+1 + 8100 037077 205 14 0 00 400000 MOVSI AC,XX ;INITIALIZE AC + 8101 037100 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8102 037101 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8103 037102 243 14 0 00 037104 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8104 037103 002 14 0 00 030301 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8105 037104 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8106 037105 003 14 0 00 030301 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8107 037106 302 15 0 00 000000 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8108 037107 004 15 0 00 030301 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8109 037110 321 16 0 00 037077 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8110 + 8111 + 8112 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8113 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8114 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8115 + 8116 030302 SN=SN+1 + 8117 200000 XX=XX/2 + 8118 000001 ZZ=ZZ+1 + 8119 037111 205 14 0 00 200000 MOVSI AC,XX ;INITIALIZE AC +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-1 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0211 + + 8120 037112 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8121 037113 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8122 037114 243 14 0 00 037116 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8123 037115 002 14 0 00 030302 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8124 037116 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8125 037117 003 14 0 00 030302 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8126 037120 302 15 0 00 000001 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8127 037121 004 15 0 00 030302 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8128 037122 321 16 0 00 037111 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8129 + 8130 + 8131 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8132 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8133 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8134 + 8135 030303 SN=SN+1 + 8136 100000 XX=XX/2 + 8137 000002 ZZ=ZZ+1 + 8138 037123 205 14 0 00 100000 MOVSI AC,XX ;INITIALIZE AC + 8139 037124 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8140 037125 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8141 037126 243 14 0 00 037130 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8142 037127 002 14 0 00 030303 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8143 037130 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8144 037131 003 14 0 00 030303 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8145 037132 302 15 0 00 000002 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8146 037133 004 15 0 00 030303 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8147 037134 321 16 0 00 037123 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8148 + 8149 + 8150 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8151 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8152 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8153 + 8154 030304 SN=SN+1 + 8155 040000 XX=XX/2 + 8156 000003 ZZ=ZZ+1 + 8157 037135 205 14 0 00 040000 MOVSI AC,XX ;INITIALIZE AC + 8158 037136 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8159 037137 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8160 037140 243 14 0 00 037142 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8161 037141 002 14 0 00 030304 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8162 037142 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8163 037143 003 14 0 00 030304 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8164 037144 302 15 0 00 000003 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8165 037145 004 15 0 00 030304 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8166 037146 321 16 0 00 037135 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8167 + 8168 + 8169 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8170 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8171 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8172 + 8173 030305 SN=SN+1 + 8174 020000 XX=XX/2 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-2 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0212 + + 8175 000004 ZZ=ZZ+1 + 8176 037147 205 14 0 00 020000 MOVSI AC,XX ;INITIALIZE AC + 8177 037150 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8178 037151 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8179 037152 243 14 0 00 037154 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8180 037153 002 14 0 00 030305 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8181 037154 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8182 037155 003 14 0 00 030305 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8183 037156 302 15 0 00 000004 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8184 037157 004 15 0 00 030305 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8185 037160 321 16 0 00 037147 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8186 + 8187 + 8188 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8189 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8190 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8191 + 8192 030306 SN=SN+1 + 8193 010000 XX=XX/2 + 8194 000005 ZZ=ZZ+1 + 8195 037161 205 14 0 00 010000 MOVSI AC,XX ;INITIALIZE AC + 8196 037162 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8197 037163 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8198 037164 243 14 0 00 037166 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8199 037165 002 14 0 00 030306 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8200 037166 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8201 037167 003 14 0 00 030306 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8202 037170 302 15 0 00 000005 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8203 037171 004 15 0 00 030306 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8204 037172 321 16 0 00 037161 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8205 + 8206 + 8207 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8208 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8209 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8210 + 8211 030307 SN=SN+1 + 8212 004000 XX=XX/2 + 8213 000006 ZZ=ZZ+1 + 8214 037173 205 14 0 00 004000 MOVSI AC,XX ;INITIALIZE AC + 8215 037174 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8216 037175 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8217 037176 243 14 0 00 037200 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8218 037177 002 14 0 00 030307 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8219 037200 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8220 037201 003 14 0 00 030307 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8221 037202 302 15 0 00 000006 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8222 037203 004 15 0 00 030307 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8223 037204 321 16 0 00 037173 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8224 + 8225 + 8226 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8227 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8228 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8229 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-3 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0213 + + 8230 030310 SN=SN+1 + 8231 002000 XX=XX/2 + 8232 000007 ZZ=ZZ+1 + 8233 037205 205 14 0 00 002000 MOVSI AC,XX ;INITIALIZE AC + 8234 037206 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8235 037207 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8236 037210 243 14 0 00 037212 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8237 037211 002 14 0 00 030310 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8238 037212 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8239 037213 003 14 0 00 030310 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8240 037214 302 15 0 00 000007 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8241 037215 004 15 0 00 030310 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8242 037216 321 16 0 00 037205 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8243 + 8244 + 8245 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8246 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8247 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8248 + 8249 030311 SN=SN+1 + 8250 001000 XX=XX/2 + 8251 000010 ZZ=ZZ+1 + 8252 037217 205 14 0 00 001000 MOVSI AC,XX ;INITIALIZE AC + 8253 037220 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8254 037221 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8255 037222 243 14 0 00 037224 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8256 037223 002 14 0 00 030311 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8257 037224 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8258 037225 003 14 0 00 030311 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8259 037226 302 15 0 00 000010 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8260 037227 004 15 0 00 030311 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8261 037230 321 16 0 00 037217 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8262 + 8263 + 8264 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8265 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8266 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8267 + 8268 030312 SN=SN+1 + 8269 000400 XX=XX/2 + 8270 000011 ZZ=ZZ+1 + 8271 037231 205 14 0 00 000400 MOVSI AC,XX ;INITIALIZE AC + 8272 037232 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8273 037233 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8274 037234 243 14 0 00 037236 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8275 037235 002 14 0 00 030312 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8276 037236 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8277 037237 003 14 0 00 030312 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8278 037240 302 15 0 00 000011 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8279 037241 004 15 0 00 030312 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8280 037242 321 16 0 00 037231 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8281 + 8282 + 8283 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8284 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-4 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0214 + + 8285 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8286 + 8287 030313 SN=SN+1 + 8288 000200 XX=XX/2 + 8289 000012 ZZ=ZZ+1 + 8290 037243 205 14 0 00 000200 MOVSI AC,XX ;INITIALIZE AC + 8291 037244 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8292 037245 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8293 037246 243 14 0 00 037250 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8294 037247 002 14 0 00 030313 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8295 037250 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8296 037251 003 14 0 00 030313 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8297 037252 302 15 0 00 000012 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8298 037253 004 15 0 00 030313 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8299 037254 321 16 0 00 037243 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8300 + 8301 + 8302 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8303 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8304 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8305 + 8306 030314 SN=SN+1 + 8307 000100 XX=XX/2 + 8308 000013 ZZ=ZZ+1 + 8309 037255 205 14 0 00 000100 MOVSI AC,XX ;INITIALIZE AC + 8310 037256 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8311 037257 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8312 037260 243 14 0 00 037262 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8313 037261 002 14 0 00 030314 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8314 037262 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8315 037263 003 14 0 00 030314 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8316 037264 302 15 0 00 000013 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8317 037265 004 15 0 00 030314 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8318 037266 321 16 0 00 037255 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8319 + 8320 + 8321 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8322 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8323 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8324 + 8325 030315 SN=SN+1 + 8326 000040 XX=XX/2 + 8327 000014 ZZ=ZZ+1 + 8328 037267 205 14 0 00 000040 MOVSI AC,XX ;INITIALIZE AC + 8329 037270 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8330 037271 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8331 037272 243 14 0 00 037274 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8332 037273 002 14 0 00 030315 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8333 037274 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8334 037275 003 14 0 00 030315 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8335 037276 302 15 0 00 000014 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8336 037277 004 15 0 00 030315 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8337 037300 321 16 0 00 037267 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8338 + 8339 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-5 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0215 + + 8340 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8341 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8342 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8343 + 8344 030316 SN=SN+1 + 8345 000020 XX=XX/2 + 8346 000015 ZZ=ZZ+1 + 8347 037301 205 14 0 00 000020 MOVSI AC,XX ;INITIALIZE AC + 8348 037302 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8349 037303 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8350 037304 243 14 0 00 037306 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8351 037305 002 14 0 00 030316 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8352 037306 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8353 037307 003 14 0 00 030316 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8354 037310 302 15 0 00 000015 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8355 037311 004 15 0 00 030316 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8356 037312 321 16 0 00 037301 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8357 + 8358 + 8359 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8360 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8361 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8362 + 8363 030317 SN=SN+1 + 8364 000010 XX=XX/2 + 8365 000016 ZZ=ZZ+1 + 8366 037313 205 14 0 00 000010 MOVSI AC,XX ;INITIALIZE AC + 8367 037314 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8368 037315 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8369 037316 243 14 0 00 037320 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8370 037317 002 14 0 00 030317 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8371 037320 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8372 037321 003 14 0 00 030317 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8373 037322 302 15 0 00 000016 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8374 037323 004 15 0 00 030317 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8375 037324 321 16 0 00 037313 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8376 + 8377 + 8378 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8379 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8380 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8381 + 8382 030320 SN=SN+1 + 8383 000004 XX=XX/2 + 8384 000017 ZZ=ZZ+1 + 8385 037325 205 14 0 00 000004 MOVSI AC,XX ;INITIALIZE AC + 8386 037326 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8387 037327 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8388 037330 243 14 0 00 037332 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8389 037331 002 14 0 00 030320 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8390 037332 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8391 037333 003 14 0 00 030320 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8392 037334 302 15 0 00 000017 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8393 037335 004 15 0 00 030320 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8394 037336 321 16 0 00 037325 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-6 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0216 + + 8395 + 8396 + 8397 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8398 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8399 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8400 + 8401 030321 SN=SN+1 + 8402 000002 XX=XX/2 + 8403 000020 ZZ=ZZ+1 + 8404 037337 205 14 0 00 000002 MOVSI AC,XX ;INITIALIZE AC + 8405 037340 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8406 037341 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8407 037342 243 14 0 00 037344 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8408 037343 002 14 0 00 030321 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8409 037344 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8410 037345 003 14 0 00 030321 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8411 037346 302 15 0 00 000020 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8412 037347 004 15 0 00 030321 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8413 037350 321 16 0 00 037337 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8414 + 8415 + 8416 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8417 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8418 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8419 + 8420 030322 SN=SN+1 + 8421 000001 XX=XX/2 + 8422 000021 ZZ=ZZ+1 + 8423 037351 205 14 0 00 000001 MOVSI AC,XX ;INITIALIZE AC + 8424 037352 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + 8425 037353 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8426 037354 243 14 0 00 037356 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8427 037355 002 14 0 00 030322 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8428 037356 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8429 037357 003 14 0 00 030322 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8430 037360 302 15 0 00 000021 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8431 037361 004 15 0 00 030322 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8432 037362 321 16 0 00 037351 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8433 + 8434 PAGE +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-7 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0217 + + 8435 030400 SN=30400 + 8436 000001 000000 XX=1000000 + 8437 + 8438 G30400: REPEAT ^D18,< + 8439 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8440 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8441 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8442 + 8443 SN=SN+1 + 8444 XX=XX/2 + 8445 ZZ=ZZ+1 + 8446 MOVEI AC,XX ;INITIALIZE AC + 8447 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8448 SETOM &17 ;INITIALIZE AC+1 + 8449 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8450 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8451 CAME AC,&17 ;EXAMINE AC + 8452 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8453 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8454 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8455 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8456 > + 8457 + 8458 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8459 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8460 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8461 + 8462 030401 SN=SN+1 + 8463 400000 XX=XX/2 + 8464 000022 ZZ=ZZ+1 + 8465 037363 201 14 0 00 400000 MOVEI AC,XX ;INITIALIZE AC + 8466 037364 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8467 037365 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8468 037366 243 14 0 00 037370 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8469 037367 002 14 0 00 030401 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8470 037370 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8471 037371 003 14 0 00 030401 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8472 037372 302 15 0 00 000022 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8473 037373 004 15 0 00 030401 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8474 037374 321 16 0 00 037363 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8475 + 8476 + 8477 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8478 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8479 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8480 + 8481 030402 SN=SN+1 + 8482 200000 XX=XX/2 + 8483 000023 ZZ=ZZ+1 + 8484 037375 201 14 0 00 200000 MOVEI AC,XX ;INITIALIZE AC + 8485 037376 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8486 037377 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8487 037400 243 14 0 00 037402 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8488 037401 002 14 0 00 030402 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8489 037402 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-8 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0218 + + 8490 037403 003 14 0 00 030402 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8491 037404 302 15 0 00 000023 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8492 037405 004 15 0 00 030402 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8493 037406 321 16 0 00 037375 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8494 + 8495 + 8496 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8497 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8498 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8499 + 8500 030403 SN=SN+1 + 8501 100000 XX=XX/2 + 8502 000024 ZZ=ZZ+1 + 8503 037407 201 14 0 00 100000 MOVEI AC,XX ;INITIALIZE AC + 8504 037410 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8505 037411 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8506 037412 243 14 0 00 037414 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8507 037413 002 14 0 00 030403 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8508 037414 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8509 037415 003 14 0 00 030403 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8510 037416 302 15 0 00 000024 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8511 037417 004 15 0 00 030403 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8512 037420 321 16 0 00 037407 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8513 + 8514 + 8515 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8516 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8517 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8518 + 8519 030404 SN=SN+1 + 8520 040000 XX=XX/2 + 8521 000025 ZZ=ZZ+1 + 8522 037421 201 14 0 00 040000 MOVEI AC,XX ;INITIALIZE AC + 8523 037422 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8524 037423 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8525 037424 243 14 0 00 037426 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8526 037425 002 14 0 00 030404 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8527 037426 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8528 037427 003 14 0 00 030404 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8529 037430 302 15 0 00 000025 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8530 037431 004 15 0 00 030404 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8531 037432 321 16 0 00 037421 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8532 + 8533 + 8534 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8535 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8536 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8537 + 8538 030405 SN=SN+1 + 8539 020000 XX=XX/2 + 8540 000026 ZZ=ZZ+1 + 8541 037433 201 14 0 00 020000 MOVEI AC,XX ;INITIALIZE AC + 8542 037434 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8543 037435 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8544 037436 243 14 0 00 037440 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-9 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0219 + + 8545 037437 002 14 0 00 030405 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8546 037440 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8547 037441 003 14 0 00 030405 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8548 037442 302 15 0 00 000026 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8549 037443 004 15 0 00 030405 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8550 037444 321 16 0 00 037433 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8551 + 8552 + 8553 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8554 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8555 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8556 + 8557 030406 SN=SN+1 + 8558 010000 XX=XX/2 + 8559 000027 ZZ=ZZ+1 + 8560 037445 201 14 0 00 010000 MOVEI AC,XX ;INITIALIZE AC + 8561 037446 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8562 037447 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8563 037450 243 14 0 00 037452 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8564 037451 002 14 0 00 030406 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8565 037452 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8566 037453 003 14 0 00 030406 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8567 037454 302 15 0 00 000027 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8568 037455 004 15 0 00 030406 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8569 037456 321 16 0 00 037445 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8570 + 8571 + 8572 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8573 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8574 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8575 + 8576 030407 SN=SN+1 + 8577 004000 XX=XX/2 + 8578 000030 ZZ=ZZ+1 + 8579 037457 201 14 0 00 004000 MOVEI AC,XX ;INITIALIZE AC + 8580 037460 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8581 037461 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8582 037462 243 14 0 00 037464 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8583 037463 002 14 0 00 030407 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8584 037464 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8585 037465 003 14 0 00 030407 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8586 037466 302 15 0 00 000030 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8587 037467 004 15 0 00 030407 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8588 037470 321 16 0 00 037457 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8589 + 8590 + 8591 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8592 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8593 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8594 + 8595 030410 SN=SN+1 + 8596 002000 XX=XX/2 + 8597 000031 ZZ=ZZ+1 + 8598 037471 201 14 0 00 002000 MOVEI AC,XX ;INITIALIZE AC + 8599 037472 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-10 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0220 + + 8600 037473 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8601 037474 243 14 0 00 037476 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8602 037475 002 14 0 00 030410 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8603 037476 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8604 037477 003 14 0 00 030410 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8605 037500 302 15 0 00 000031 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8606 037501 004 15 0 00 030410 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8607 037502 321 16 0 00 037471 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8608 + 8609 + 8610 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8611 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8612 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8613 + 8614 030411 SN=SN+1 + 8615 001000 XX=XX/2 + 8616 000032 ZZ=ZZ+1 + 8617 037503 201 14 0 00 001000 MOVEI AC,XX ;INITIALIZE AC + 8618 037504 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8619 037505 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8620 037506 243 14 0 00 037510 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8621 037507 002 14 0 00 030411 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8622 037510 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8623 037511 003 14 0 00 030411 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8624 037512 302 15 0 00 000032 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8625 037513 004 15 0 00 030411 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8626 037514 321 16 0 00 037503 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8627 + 8628 + 8629 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8630 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8631 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8632 + 8633 030412 SN=SN+1 + 8634 000400 XX=XX/2 + 8635 000033 ZZ=ZZ+1 + 8636 037515 201 14 0 00 000400 MOVEI AC,XX ;INITIALIZE AC + 8637 037516 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8638 037517 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8639 037520 243 14 0 00 037522 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8640 037521 002 14 0 00 030412 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8641 037522 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8642 037523 003 14 0 00 030412 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8643 037524 302 15 0 00 000033 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8644 037525 004 15 0 00 030412 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8645 037526 321 16 0 00 037515 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8646 + 8647 + 8648 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8649 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8650 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8651 + 8652 030413 SN=SN+1 + 8653 000200 XX=XX/2 + 8654 000034 ZZ=ZZ+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-11 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0221 + + 8655 037527 201 14 0 00 000200 MOVEI AC,XX ;INITIALIZE AC + 8656 037530 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8657 037531 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8658 037532 243 14 0 00 037534 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8659 037533 002 14 0 00 030413 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8660 037534 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8661 037535 003 14 0 00 030413 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8662 037536 302 15 0 00 000034 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8663 037537 004 15 0 00 030413 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8664 037540 321 16 0 00 037527 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8665 + 8666 + 8667 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8668 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8669 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8670 + 8671 030414 SN=SN+1 + 8672 000100 XX=XX/2 + 8673 000035 ZZ=ZZ+1 + 8674 037541 201 14 0 00 000100 MOVEI AC,XX ;INITIALIZE AC + 8675 037542 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8676 037543 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8677 037544 243 14 0 00 037546 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8678 037545 002 14 0 00 030414 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8679 037546 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8680 037547 003 14 0 00 030414 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8681 037550 302 15 0 00 000035 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8682 037551 004 15 0 00 030414 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8683 037552 321 16 0 00 037541 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8684 + 8685 + 8686 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8687 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8688 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8689 + 8690 030415 SN=SN+1 + 8691 000040 XX=XX/2 + 8692 000036 ZZ=ZZ+1 + 8693 037553 201 14 0 00 000040 MOVEI AC,XX ;INITIALIZE AC + 8694 037554 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8695 037555 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8696 037556 243 14 0 00 037560 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8697 037557 002 14 0 00 030415 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8698 037560 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8699 037561 003 14 0 00 030415 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8700 037562 302 15 0 00 000036 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8701 037563 004 15 0 00 030415 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8702 037564 321 16 0 00 037553 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8703 + 8704 + 8705 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8706 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8707 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8708 + 8709 030416 SN=SN+1 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-12 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0222 + + 8710 000020 XX=XX/2 + 8711 000037 ZZ=ZZ+1 + 8712 037565 201 14 0 00 000020 MOVEI AC,XX ;INITIALIZE AC + 8713 037566 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8714 037567 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8715 037570 243 14 0 00 037572 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8716 037571 002 14 0 00 030416 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8717 037572 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8718 037573 003 14 0 00 030416 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8719 037574 302 15 0 00 000037 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8720 037575 004 15 0 00 030416 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8721 037576 321 16 0 00 037565 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8722 + 8723 + 8724 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8725 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8726 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8727 + 8728 030417 SN=SN+1 + 8729 000010 XX=XX/2 + 8730 000040 ZZ=ZZ+1 + 8731 037577 201 14 0 00 000010 MOVEI AC,XX ;INITIALIZE AC + 8732 037600 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8733 037601 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8734 037602 243 14 0 00 037604 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8735 037603 002 14 0 00 030417 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8736 037604 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8737 037605 003 14 0 00 030417 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8738 037606 302 15 0 00 000040 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8739 037607 004 15 0 00 030417 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8740 037610 321 16 0 00 037577 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8741 + 8742 + 8743 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8744 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8745 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8746 + 8747 030420 SN=SN+1 + 8748 000004 XX=XX/2 + 8749 000041 ZZ=ZZ+1 + 8750 037611 201 14 0 00 000004 MOVEI AC,XX ;INITIALIZE AC + 8751 037612 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8752 037613 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8753 037614 243 14 0 00 037616 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8754 037615 002 14 0 00 030420 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8755 037616 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8756 037617 003 14 0 00 030420 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8757 037620 302 15 0 00 000041 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8758 037621 004 15 0 00 030420 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8759 037622 321 16 0 00 037611 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8760 + 8761 + 8762 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8763 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8764 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 89-13 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0223 + + 8765 + 8766 030421 SN=SN+1 + 8767 000002 XX=XX/2 + 8768 000042 ZZ=ZZ+1 + 8769 037623 201 14 0 00 000002 MOVEI AC,XX ;INITIALIZE AC + 8770 037624 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8771 037625 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8772 037626 243 14 0 00 037630 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8773 037627 002 14 0 00 030421 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8774 037630 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8775 037631 003 14 0 00 030421 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8776 037632 302 15 0 00 000042 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8777 037633 004 15 0 00 030421 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8778 037634 321 16 0 00 037623 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8779 + 8780 + 8781 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8782 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO + 8783 ;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + 8784 + 8785 030422 SN=SN+1 + 8786 000001 XX=XX/2 + 8787 000043 ZZ=ZZ+1 + 8788 037635 201 14 0 00 000001 MOVEI AC,XX ;INITIALIZE AC + 8789 037636 200 12 0 00 000014 MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + 8790 037637 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 8791 037640 243 14 0 00 037642 JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + 8792 037641 002 14 0 00 030422 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8793 037642 312 14 0 00 000012 CAME AC,&17 ;EXAMINE AC + 8794 037643 003 14 0 00 030422 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8795 037644 302 15 0 00 000043 CAIE AC+1,ZZ ;EXAMINE AC+1 + 8796 037645 004 15 0 00 030422 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + 8797 037646 321 16 0 00 037635 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH + 8798 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0224 + + 8799 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8800 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8801 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8802 + 8803 030500 SN=30500 + 8804 777777 777777 AC=-1 + 8805 + 8806 G30500: REPEAT ^D13,< + 8807 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8808 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8809 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8810 + 8811 SN=SN+1 + 8812 AC=&17 + 8813 SAVEAC (1,1) + 8814 + 8815 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8816 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8817 SETOM &17 ;INITIALIZE AC+1 + 8818 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8819 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8820 CAME AC,GSVAC ;EXAMINE AC + 8821 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8822 CAIE AC+1,AC ;EXAMINE AC+1 + 8823 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8824 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8825 > + 8826 + 8827 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8828 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8829 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8830 + 8831 030501 SN=SN+1 + 8832 000000 AC=&17 + 8833 SAVEAC (1,1)^ + 8834 037647 201 02 0 00 037647 MOVEI AC+2,. ;SAVE TEST PC + 8835 037650 202 02 0 00 030051 MOVEM AC+2,TESTPC + 8836 037651 201 02 0 00 000002 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8837 037652 202 02 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8838 + 8839 037653 205 00 0 00 400000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8840 037654 202 00 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8841 037655 476 00 0 00 000001 SETOM &17 ;INITIALIZE AC+1 + 8842 037656 243 00 0 00 037660 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8843 037657 002 00 0 00 030501 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8844 037660 312 00 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8845 037661 003 00 0 00 030501 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8846 037662 302 01 0 00 000000 CAIE AC+1,AC ;EXAMINE AC+1 + 8847 037663 004 01 0 00 030501 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8848 037664 321 02 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8849 + 8850 + 8851 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8852 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8853 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90-1 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0225 + + 8854 + 8855 030502 SN=SN+1 + 8856 000001 AC=&17 + 8857 SAVEAC (1,1)^ + 8858 037665 201 03 0 00 037665 MOVEI AC+2,. ;SAVE TEST PC + 8859 037666 202 03 0 00 030051 MOVEM AC+2,TESTPC + 8860 037667 201 03 0 00 000003 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8861 037670 202 03 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8862 + 8863 037671 205 01 0 00 200000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8864 037672 202 01 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8865 037673 476 00 0 00 000002 SETOM &17 ;INITIALIZE AC+1 + 8866 037674 243 01 0 00 037676 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8867 037675 002 01 0 00 030502 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8868 037676 312 01 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8869 037677 003 01 0 00 030502 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8870 037700 302 02 0 00 000001 CAIE AC+1,AC ;EXAMINE AC+1 + 8871 037701 004 02 0 00 030502 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8872 037702 321 03 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8873 + 8874 + 8875 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8876 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8877 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8878 + 8879 030503 SN=SN+1 + 8880 000002 AC=&17 + 8881 SAVEAC (1,1)^ + 8882 037703 201 04 0 00 037703 MOVEI AC+2,. ;SAVE TEST PC + 8883 037704 202 04 0 00 030051 MOVEM AC+2,TESTPC + 8884 037705 201 04 0 00 000004 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8885 037706 202 04 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8886 + 8887 037707 205 02 0 00 100000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8888 037710 202 02 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8889 037711 476 00 0 00 000003 SETOM &17 ;INITIALIZE AC+1 + 8890 037712 243 02 0 00 037714 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8891 037713 002 02 0 00 030503 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8892 037714 312 02 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8893 037715 003 02 0 00 030503 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8894 037716 302 03 0 00 000002 CAIE AC+1,AC ;EXAMINE AC+1 + 8895 037717 004 03 0 00 030503 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8896 037720 321 04 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8897 + 8898 + 8899 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8900 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8901 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8902 + 8903 030504 SN=SN+1 + 8904 000003 AC=&17 + 8905 SAVEAC (1,1)^ + 8906 037721 201 05 0 00 037721 MOVEI AC+2,. ;SAVE TEST PC + 8907 037722 202 05 0 00 030051 MOVEM AC+2,TESTPC + 8908 037723 201 05 0 00 000005 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90-2 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0226 + + 8909 037724 202 05 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8910 + 8911 037725 205 03 0 00 040000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8912 037726 202 03 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8913 037727 476 00 0 00 000004 SETOM &17 ;INITIALIZE AC+1 + 8914 037730 243 03 0 00 037732 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8915 037731 002 03 0 00 030504 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8916 037732 312 03 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8917 037733 003 03 0 00 030504 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8918 037734 302 04 0 00 000003 CAIE AC+1,AC ;EXAMINE AC+1 + 8919 037735 004 04 0 00 030504 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8920 037736 321 05 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8921 + 8922 + 8923 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8924 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8925 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8926 + 8927 030505 SN=SN+1 + 8928 000004 AC=&17 + 8929 SAVEAC (1,1)^ + 8930 037737 201 06 0 00 037737 MOVEI AC+2,. ;SAVE TEST PC + 8931 037740 202 06 0 00 030051 MOVEM AC+2,TESTPC + 8932 037741 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8933 037742 202 06 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8934 + 8935 037743 205 04 0 00 020000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8936 037744 202 04 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8937 037745 476 00 0 00 000005 SETOM &17 ;INITIALIZE AC+1 + 8938 037746 243 04 0 00 037750 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8939 037747 002 04 0 00 030505 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8940 037750 312 04 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8941 037751 003 04 0 00 030505 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8942 037752 302 05 0 00 000004 CAIE AC+1,AC ;EXAMINE AC+1 + 8943 037753 004 05 0 00 030505 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8944 037754 321 06 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8945 + 8946 + 8947 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8948 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8949 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8950 + 8951 030506 SN=SN+1 + 8952 000005 AC=&17 + 8953 SAVEAC (1,1)^ + 8954 037755 201 07 0 00 037755 MOVEI AC+2,. ;SAVE TEST PC + 8955 037756 202 07 0 00 030051 MOVEM AC+2,TESTPC + 8956 037757 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8957 037760 202 07 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8958 + 8959 037761 205 05 0 00 010000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8960 037762 202 05 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8961 037763 476 00 0 00 000006 SETOM &17 ;INITIALIZE AC+1 + 8962 037764 243 05 0 00 037766 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8963 037765 002 05 0 00 030506 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90-3 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0227 + + 8964 037766 312 05 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8965 037767 003 05 0 00 030506 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8966 037770 302 06 0 00 000005 CAIE AC+1,AC ;EXAMINE AC+1 + 8967 037771 004 06 0 00 030506 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8968 037772 321 07 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8969 + 8970 + 8971 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8972 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8973 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8974 + 8975 030507 SN=SN+1 + 8976 000006 AC=&17 + 8977 SAVEAC (1,1)^ + 8978 037773 201 10 0 00 037773 MOVEI AC+2,. ;SAVE TEST PC + 8979 037774 202 10 0 00 030051 MOVEM AC+2,TESTPC + 8980 037775 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8981 037776 202 10 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8982 + 8983 037777 205 06 0 00 004000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 8984 040000 202 06 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 8985 040001 476 00 0 00 000007 SETOM &17 ;INITIALIZE AC+1 + 8986 040002 243 06 0 00 040004 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 8987 040003 002 06 0 00 030507 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 8988 040004 312 06 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 8989 040005 003 06 0 00 030507 ER3 AC,SN ;C(AC) WAS CLOBBERED + 8990 040006 302 07 0 00 000006 CAIE AC+1,AC ;EXAMINE AC+1 + 8991 040007 004 07 0 00 030507 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 8992 040010 321 10 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 8993 + 8994 + 8995 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 8996 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 8997 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 8998 + 8999 030510 SN=SN+1 + 9000 000007 AC=&17 + 9001 SAVEAC (1,1)^ + 9002 040011 201 11 0 00 040011 MOVEI AC+2,. ;SAVE TEST PC + 9003 040012 202 11 0 00 030051 MOVEM AC+2,TESTPC + 9004 040013 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9005 040014 202 11 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9006 + 9007 040015 205 07 0 00 002000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 9008 040016 202 07 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 9009 040017 476 00 0 00 000010 SETOM &17 ;INITIALIZE AC+1 + 9010 040020 243 07 0 00 040022 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 9011 040021 002 07 0 00 030510 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 9012 040022 312 07 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 9013 040023 003 07 0 00 030510 ER3 AC,SN ;C(AC) WAS CLOBBERED + 9014 040024 302 10 0 00 000007 CAIE AC+1,AC ;EXAMINE AC+1 + 9015 040025 004 10 0 00 030510 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 9016 040026 321 11 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 9017 + 9018 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90-4 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0228 + + 9019 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 9020 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 9021 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 9022 + 9023 030511 SN=SN+1 + 9024 000010 AC=&17 + 9025 SAVEAC (1,1)^ + 9026 040027 201 12 0 00 040027 MOVEI AC+2,. ;SAVE TEST PC + 9027 040030 202 12 0 00 030051 MOVEM AC+2,TESTPC + 9028 040031 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9029 040032 202 12 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9030 + 9031 040033 205 10 0 00 001000 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 9032 040034 202 10 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 9033 040035 476 00 0 00 000011 SETOM &17 ;INITIALIZE AC+1 + 9034 040036 243 10 0 00 040040 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 9035 040037 002 10 0 00 030511 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 9036 040040 312 10 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 9037 040041 003 10 0 00 030511 ER3 AC,SN ;C(AC) WAS CLOBBERED + 9038 040042 302 11 0 00 000010 CAIE AC+1,AC ;EXAMINE AC+1 + 9039 040043 004 11 0 00 030511 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 9040 040044 321 12 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 9041 + 9042 + 9043 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 9044 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 9045 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 9046 + 9047 030512 SN=SN+1 + 9048 000011 AC=&17 + 9049 SAVEAC (1,1)^ + 9050 040045 201 13 0 00 040045 MOVEI AC+2,. ;SAVE TEST PC + 9051 040046 202 13 0 00 030051 MOVEM AC+2,TESTPC + 9052 040047 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9053 040050 202 13 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9054 + 9055 040051 205 11 0 00 000400 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 9056 040052 202 11 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 9057 040053 476 00 0 00 000012 SETOM &17 ;INITIALIZE AC+1 + 9058 040054 243 11 0 00 040056 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 9059 040055 002 11 0 00 030512 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 9060 040056 312 11 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 9061 040057 003 11 0 00 030512 ER3 AC,SN ;C(AC) WAS CLOBBERED + 9062 040060 302 12 0 00 000011 CAIE AC+1,AC ;EXAMINE AC+1 + 9063 040061 004 12 0 00 030512 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 9064 040062 321 13 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 9065 + 9066 + 9067 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 9068 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 9069 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 9070 + 9071 030513 SN=SN+1 + 9072 000012 AC=&17 + 9073 SAVEAC (1,1)^ +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90-5 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0229 + + 9074 040063 201 14 0 00 040063 MOVEI AC+2,. ;SAVE TEST PC + 9075 040064 202 14 0 00 030051 MOVEM AC+2,TESTPC + 9076 040065 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9077 040066 202 14 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9078 + 9079 040067 205 12 0 00 000200 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 9080 040070 202 12 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 9081 040071 476 00 0 00 000013 SETOM &17 ;INITIALIZE AC+1 + 9082 040072 243 12 0 00 040074 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 9083 040073 002 12 0 00 030513 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 9084 040074 312 12 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 9085 040075 003 12 0 00 030513 ER3 AC,SN ;C(AC) WAS CLOBBERED + 9086 040076 302 13 0 00 000012 CAIE AC+1,AC ;EXAMINE AC+1 + 9087 040077 004 13 0 00 030513 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 9088 040100 321 14 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 9089 + 9090 + 9091 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 9092 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 9093 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 9094 + 9095 030514 SN=SN+1 + 9096 000013 AC=&17 + 9097 SAVEAC (1,1)^ + 9098 040101 201 15 0 00 040101 MOVEI AC+2,. ;SAVE TEST PC + 9099 040102 202 15 0 00 030051 MOVEM AC+2,TESTPC + 9100 040103 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9101 040104 202 15 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9102 + 9103 040105 205 13 0 00 000100 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 9104 040106 202 13 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + 9105 040107 476 00 0 00 000014 SETOM &17 ;INITIALIZE AC+1 + 9106 040110 243 13 0 00 040112 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 9107 040111 002 13 0 00 030514 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 9108 040112 312 13 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 9109 040113 003 13 0 00 030514 ER3 AC,SN ;C(AC) WAS CLOBBERED + 9110 040114 302 14 0 00 000013 CAIE AC+1,AC ;EXAMINE AC+1 + 9111 040115 004 14 0 00 030514 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 9112 040116 321 15 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 9113 + 9114 + 9115 ;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING + 9116 ;ZEROS IN AC WHEN C(AC) IS NON-ZERO. + 9117 ;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + 9118 + 9119 030515 SN=SN+1 + 9120 000014 AC=&17 + 9121 SAVEAC (1,1)^ + 9122 040117 201 16 0 00 040117 MOVEI AC+2,. ;SAVE TEST PC + 9123 040120 202 16 0 00 030051 MOVEM AC+2,TESTPC + 9124 040121 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9125 040122 202 16 0 00 041210 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9126 + 9127 040123 205 14 0 00 000040 MOVSI AC,(1B<^O>) ;INITIALIZE AC + 9128 040124 202 14 0 00 041211 MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 90-6 +DAKAMM MAC 20-JAN-77 11:34 PART III - GENERAL JFFO TEST SEQ 0230 + + 9129 040125 476 00 0 00 000015 SETOM &17 ;INITIALIZE AC+1 + 9130 040126 243 14 0 00 040130 JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + 9131 040127 002 14 0 00 030515 ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + 9132 040130 312 14 0 00 041211 CAME AC,GSVAC ;EXAMINE AC + 9133 040131 003 14 0 00 030515 ER3 AC,SN ;C(AC) WAS CLOBBERED + 9134 040132 302 15 0 00 000014 CAIE AC+1,AC ;EXAMINE AC+1 + 9135 040133 004 15 0 00 030515 ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + 9136 040134 321 16 0 00 777767 JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH + 9137 + 9138 + 9139 040135 254 00 0 00 030057 LAST1: JRST BEGEND ;REPEAT DIAGNOSTIC + 9140 + 9141 IF1, + 9142 040136 BYTBLK: BLOCK ^D50 + 9143 + 9144 IF1, + 9145 040220 BLTBLK: BLOCK ^D200 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0231 + + 9146 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + 9147 + 9148 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + 9149 + 9150 040530 202 00 0 00 041216 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + 9151 IFDEF EXCASB,> + 9158 040531 202 01 0 00 041217 MOVEM 1,%ERAC1# ;SAVE AC1 + 9159 040532 202 02 0 00 041220 MOVEM 2,%ERAC2# ;SAVE AC2 + 9160 040533 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS + 9161 040534 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 9162 040535 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? + 9163 040536 350 00 0 00 041213 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT + 9164 040537 200 00 0 00 041213 MOVE 0,MICNT + 9165 040540 504 00 0 00 030114 HRL 0,$SVUPC + 9166 040541 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10 + 9167 040542 332 00 0 00 030037 SKIPE USER ;AND NOT USER? + 9168 040543 254 00 0 00 040545 JRST .+2 + 9169 040544 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT + 9170 040545 402 00 0 00 041214 SETZM PROCED# ;CLEAR PROCEED FLAG + 9171 040546 037 10 0 00 000002 SWITCH + 9172 040547 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ? + 9173 040550 254 00 0 00 040663 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN + 9174 040551 200 01 0 00 030113 MOVE 1,$SVUUO + 9175 040552 242 01 0 00 777745 LSH 1,-^D27 + 9176 040553 202 01 0 00 041215 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER + 9177 040554 200 00 0 00 041216 MOVE 0,%ERAC0 + 9178 040555 200 01 0 00 041217 MOVE 1,%ERAC1 + 9179 040556 335 00 1 00 041210 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? + 9180 040557 254 00 0 00 040715 JRST %ERRS4 ;NO, SEE IF PRINT ALL + 9181 040560 402 00 0 00 041213 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT + 9182 040561 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ? + 9183 040562 254 00 0 00 040566 JRST .+4 ;NO, DON'T NEED TITLE + 9184 040563 336 00 0 00 041221 SKIPN %ERFST# ;FIRST ERROR ? + 9185 040564 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE + 9186 040565 476 00 0 00 041221 SETOM %ERFST + 9187 040566 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ? + 9188 040567 254 00 0 00 040573 JRST .+4 ;YES + 9189 PMSG <^TEST PASS COUNT = >^ + 9190 040570 037 02 0 00 041075 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^ + 9191 040571 200 00 0 00 030047 MOVE PASCNT + 9192 040572 037 15 0 00 000000 PNTDEC + 9193 PMSG <^PC = >^ + 9194 040573 037 02 0 00 041101 PSIXM [SIXBIT\^PC = _\]^ + 9195 040574 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 9196 040575 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE + 9197 040576 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS + 9198 XLIST + 9199 IFDEF ERDIAG,^ + 9205 040577 037 02 0 00 041103 PSIXM [SIXBIT\^RESULT = _\]^ + 9206 040600 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO + 9207 040601 242 01 0 00 777751 LSH 1,-27 + 9208 040602 405 01 0 00 000017 ANDI 1,17 + 9209 040603 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 9210 040604 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ? + 9211 040605 200 00 0 01 041216 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 9212 040606 037 13 0 00 000000 PNTHW ;PRINT C(AC) + 9213 + 9214 040607 200 00 0 00 030046 MOVE CONSW + 9215 040610 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ? + 9216 040611 254 00 0 00 040660 JRST %ERMORE ;NO, RESTORE AC'S ETC. + 9217 + 9218 ;PRINT FAILURE DESCRIPTOR + 9219 + 9220 040612 200 01 0 00 041215 MOVE 1,%ACS1A ;GET UUO NUMBER + 9221 040613 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ? + 9222 040614 254 00 0 00 040620 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER + 9223 040615 037 00 0 00 030242 PCRL + 9224 040616 200 00 0 01 040644 MOVE %FLTTB(1) + 9225 040617 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR + 9226 + 9227 ;PRINT FAULT NUMBER + 9228 + 9229 040620 %ERMS3: PMSG <^FAULT NUMBER = >^ + 9230 040620 037 02 0 00 041105 PSIXM [SIXBIT\^FAULT NUMBER = _\]^ + 9231 040621 201 00 0 00 040643 MOVEI TLET + 9232 040622 037 00 0 00 000000 PNTA ;PRINT TEST LETTER +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 3 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0233 + + 9233 + 9234 040623 550 00 0 00 030113 HRRZ $SVUUO + 9235 040624 602 00 0 00 700000 TRNE 700000 + 9236 040625 254 00 0 00 040641 JRST %ER6X + 9237 040626 602 00 0 00 070000 TRNE 070000 + 9238 040627 254 00 0 00 040637 JRST %ER5X + 9239 040630 602 00 0 00 007000 TRNE 007000 + 9240 040631 254 00 0 00 040635 JRST %ER4X + 9241 040632 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER + 9242 040633 037 00 0 00 030242 %ER7X: PCRL + 9243 040634 254 00 0 00 040660 JRST %ERMORE + 9244 + 9245 040635 037 04 0 00 000000 %ER4X: PNT4 + 9246 040636 254 00 0 00 040633 JRST %ER7X + 9247 040637 037 05 0 00 000000 %ER5X: PNT5 + 9248 040640 254 00 0 00 040633 JRST %ER7X + 9249 040641 037 06 0 00 000000 %ER6X: PNT6 + 9250 040642 254 00 0 00 040633 JRST %ER7X + 9251 + 9252 ;FAILURE DESCRIPTORS + 9253 + 9254 040643 000000 000000 TLET: 0 ;TEST LETTER + 9255 040644 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE + 9256 040645 000000 041011 %NODES: [0] ;NO DESCRIPTOR + 9257 040646 000000 041011 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR + 9258 040647 000000 041110 $ACF: [ASCIZ/C(AC) FAILED/] + 9259 040650 000000 041113 %AC1F: [ASCIZ/C(AC+1) FAILED/] + 9260 040651 000000 041116 %EF: [ASCIZ/C(E) FAILED/] + 9261 040652 000000 041121 %E1F: [ASCIZ/C(E+1) FAILED/] + 9262 040653 000000 041124 %ARF: [ASCIZ/C(C(ACR)) FAILED/] + 9263 040654 000000 041130 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/] + 9264 040655 000000 041134 %ALF: [ASCIZ/C(C(ACL)) FAILED/] + 9265 040656 000000 041140 %EEF: [ASCIZ/C(C(E)) FAILED/] + 9266 040657 000000 041143 %FF: [ASCIZ/FLAG FAILED/] + 9267 > + 9268 XLIST + 9269 LIST +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 8 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0234 + + 9270 ;RESTORE AC'S AND RETURN OR HALT + 9271 + 9272 040660 256 00 0 00 030101 %ERMORE:XCT ERMORE + 9273 040661 037 16 0 00 000002 PNTMGN ;PRINT MARGINS + 9274 040662 037 10 0 00 000002 SWITCH + 9275 + 9276 040663 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK + 9277 040664 254 00 0 00 040670 JRST .+4 ;NONE + 9278 040665 201 00 0 00 040670 MOVEI .+3 ;SAVE CONT ADDRESS + 9279 040666 202 00 0 00 000130 MOVEM JOBOPC + 9280 040667 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER + 9281 040670 200 00 0 00 030046 MOVE CONSW + 9282 040671 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? + 9283 040672 037 14 0 00 000004 ERRHLT ;YES + 9284 040673 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? + 9285 040674 476 00 0 00 041214 SETOM PROCED ;NO, SET THE PROCEED FLAG + 9286 040675 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ? + 9287 040676 037 01 0 00 000007 PBELL ;YES, GO RING BELL + 9288 + 9289 040677 200 02 0 00 041220 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S + 9290 040700 200 01 0 00 041217 MOVE 1,%ERAC1 + 9291 040701 476 00 1 00 041210 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 + 9292 040702 336 00 0 00 041214 SKIPN PROCED ;LOOP ON ERROR ? + 9293 040703 254 00 0 00 040713 JRST %ERRS5 ;YES + 9294 040704 350 00 1 00 041210 AOS @ERRLOP ;NO, INC C(ERR LOOP AC) + 9295 040705 350 00 1 00 041210 AOS @ERRLOP ;SO IT ='S 1 + 9296 040706 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? + 9297 040707 254 00 0 00 040713 JRST %ERRS5 ;NO, CONTINUE PROGRAM + 9298 040710 200 00 0 00 030053 MOVE 0,ERRTLS ;YES + 9299 040711 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ? + 9300 040712 254 00 0 00 030061 JRST $BEND2 + 9301 + 9302 040713 200 00 0 00 041216 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM + 9303 IFDEF EXCASB,> + 9310 040714 254 00 0 00 030065 JRST UUOEXT + 9311 + 9312 040715 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW + 9313 040716 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ? + 9314 040717 254 00 0 00 040663 JRST %ERRS1 ;NO + 9315 040720 254 00 0 00 040560 JRST %ERMS1 ;YES +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0235 + + 9316 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 9317 + 9318 ;PROGRAM LITERALS + 9319 + 9320 XLIST + 9321 IFNDEF $LPAPER, + 9322 040721 LIT + 9323 040721 101 115 000 000 000 + 9324 040722 525252 525377 + 9325 040723 076000 000001 + 9326 040724 002525 252525 + 9327 040725 074000 000001 + 9328 040726 707070 707070 + 9329 040727 323232 232323 + 9330 040730 103 050 103 050 105 + 9331 040731 051 055 061 051 040 + 9332 040732 106 101 111 114 105 + 9333 040733 104 000 000 000 000 + 9334 040734 777777 777777 + 9335 040735 646446 464670 + 9336 040736 103 050 103 050 105 + 9337 040737 051 053 061 051 040 + 9338 040740 106 101 111 114 105 + 9339 040741 104 000 000 000 000 + 9340 040742 220600 000012 + 9341 040743 112233 445566 + 9342 040744 020000 033356 + 9343 040745 020000 033373 + 9344 040746 112270 445566 + 9345 040747 000000 033411 + 9346 040750 000000 033424 + 9347 040751 000000 033442 + 9348 040752 230703 603700 + 9349 040753 230702 103700 + 9350 040754 000000 033465 + 9351 040755 000000 033512 + 9352 040756 000000 033536 + 9353 040757 000000 033564 + 9354 040760 000000 033610 + 9355 040761 000000 033631 + 9356 040762 000000 033656 + 9357 040763 000000 033705 + 9358 040764 000000 033730 + 9359 040765 000000 033754 + 9360 040766 000000 034000 + 9361 040767 000000 034026 + 9362 040770 000000 034052 + 9363 040771 000000 034077 + 9364 040772 000000 034124 + 9365 040773 000000 034153 + 9366 040774 000000 034173 + 9367 040775 000000 034213 + 9368 040776 000000 034233 + 9369 040777 000000 034253 + 9370 041000 000000 034276 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0236 + + 9371 041001 000000 034321 + 9372 041002 000000 034344 + 9373 041003 377777 777777 + 9374 041004 000000 034370 + 9375 041005 777777 777776 + 9376 041006 000000 034414 + 9377 041007 102 114 124 040 106 + 9378 041010 101 111 114 105 104 + 9379 041011 000 000 000 000 000 + 9380 041012 000001 000001 + 9381 041013 000006 000006 + 9382 041014 040221 040221 + 9383 041015 000006 000011 + 9384 041016 252525 252525 + 9385 041017 770077 007700 + 9386 041020 070707 070707 + 9387 041021 123456 765432 + 9388 041022 552255 225522 + 9389 041023 000005 000010 + 9390 041024 000004 000007 + 9391 041025 000006 040224 + 9392 041026 000005 040224 + 9393 041027 000004 040224 + 9394 041030 040221 040224 + 9395 041031 040221 000006 + 9396 041032 040221 000005 + 9397 041033 040221 000004 + 9398 041034 000004 000004 + 9399 041035 146314 631463 + 9400 041036 036074 170360 + 9401 041037 017407 603701 + 9402 041040 007603 607062 + 9403 041041 000002 000001 + 9404 041042 036074 170630 + 9405 041043 040222 040221 + 9406 041044 000001 000002 + 9407 041045 040221 040222 + 9408 041046 146314 146314 + 9409 041047 000001 040221 + 9410 041050 007700 770077 + 9411 041051 003760 077401 + 9412 041052 001774 007760 + 9413 041053 000777 000777 + 9414 041054 000377 600077 + 9415 041055 777777 040220 + 9416 041056 777777 040233 + 9417 041057 040221 000001 + 9418 041060 777777 000000 + 9419 041061 777777 000013 + 9420 041062 525252 525252 + 9421 041063 123456 654321 + 9422 041064 041224 041230 + 9423 041065 112 106 106 117 040 + 9424 041066 116 117 055 112 125 + 9425 041067 115 120 040 106 101 +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1-2 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0237 + + 9426 041070 111 114 105 104 000 + 9427 041071 112 106 106 117 040 + 9428 041072 112 125 115 120 040 + 9429 041073 106 101 111 114 105 + 9430 041074 104 000 000 000 000 + 9431 041075 76 64 45 63 64 00 + 9432 041076 60 41 63 63 00 43 + 9433 041077 57 65 56 64 00 35 + 9434 041100 00 77 00 00 00 00 + 9435 041101 76 60 43 00 35 00 + 9436 041102 00 00 77 00 00 00 + 9437 041103 76 62 45 63 65 54 + 9438 041104 64 00 00 35 00 77 + 9439 041105 76 46 41 65 54 64 + 9440 041106 00 56 65 55 42 45 + 9441 041107 62 00 35 00 77 00 + 9442 041110 103 050 101 103 051 + 9443 041111 040 106 101 111 114 + 9444 041112 105 104 000 000 000 + 9445 041113 103 050 101 103 053 + 9446 041114 061 051 040 106 101 + 9447 041115 111 114 105 104 000 + 9448 041116 103 050 105 051 040 + 9449 041117 106 101 111 114 105 + 9450 041120 104 000 000 000 000 + 9451 041121 103 050 105 053 061 + 9452 041122 051 040 106 101 111 + 9453 041123 114 105 104 000 000 + 9454 041124 103 050 103 050 101 + 9455 041125 103 122 051 051 040 + 9456 041126 106 101 111 114 105 + 9457 041127 104 000 000 000 000 + 9458 041130 103 050 103 050 101 + 9459 041131 103 122 053 061 051 + 9460 041132 051 040 106 101 111 + 9461 041133 114 105 104 000 000 + 9462 041134 103 050 103 050 101 + 9463 041135 103 114 051 051 040 + 9464 041136 106 101 111 114 105 + 9465 041137 104 000 000 000 000 + 9466 041140 103 050 103 050 105 + 9467 041141 051 051 040 106 101 + 9468 041142 111 114 105 104 000 + 9469 041143 106 114 101 107 040 + 9470 041144 106 101 111 114 105 + 9471 041145 104 000 000 000 000 + 9472 LIST + 9473 041147 000000 000000 ENDSLD: 0 + 9474 + 9475 IFDEF DEBUG,< + 9476 041150 PATCH: BLOCK DEBUG ;PATCHING AREA + 9477 > + 9478 + 9479 ;PROGRAM VARIABLES + 9480 041210 VAR +DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) 0,2 MACRO %52(537) 15:23 20-JAN-77 PAGE 1-3 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0238 + + 9481 + 9482 IFDEF PGMEND,< + 9483 041222 000000 000000 END: 0 + 9484 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 041223 +CPU TIME USED 00:42.173 + +11K CORE USED diff --git a/apps/pdp10/diags/ka10/dakam/DAKAM.MAC.txt b/apps/pdp10/diags/ka10/dakam/DAKAM.MAC.txt new file mode 100644 index 000000000..e7526f881 --- /dev/null +++ b/apps/pdp10/diags/ka10/dakam/DAKAM.MAC.txt @@ -0,0 +1,5654 @@ +;DAKAM + + + MCNVER==0 + DECVER==2 + + + XLIST +DEFINE NAME (MCNVER,DECVER)< + +TITLE DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) MCNVER,DECVER +> + LIST + LALL + + NAME \MCNVER,\DECVER + +;(BYTE, BLOCK TRANSFER, JFFO AND OTHER BASIC MISCELLANEOUS INSTRUCTIONS) + +;COPYRIGHT 1975,1977 +;DIGITAL EQUIPMENT CORPORATION +;MARLBORO, MASS. 01752 + +;JOHN R. KIRCHOFF + + LOC 137 + MCNVER,,DECVER + + NOSYM +SUBTTL DIAGNOSTIC PARAMETERS + +;OPERATOR DEFINITIONS + +OPDEF ER1 [1B8] +OPDEF ER2 [2B8] +OPDEF ER3 [3B8] +OPDEF ER4 [4B8] +OPDEF ER5 [5B8] +OPDEF ER6 [6B8] +OPDEF ER7 [7B8] +OPDEF ER10 [10B8] +OPDEF ER11 [11B8] +OPDEF ER12 [12B8] +OPDEF ER13 [13B8] + +LUUO1=ERRMES +LUUO2=ERRMES +LUUO3=ERRMES +LUUO4=ERRMES +LUUO5=ERRMES +LUUO6=ERRMES +LUUO7=ERRMES +LUUO10=ERRMES +LUUO11=ERRMES +LUUO12=ERRMES +LUUO13=ERRMES +;SUBROUTINE ASSEMBLY DEFINITIONS + +DEBUG=40 +EXCASB=1 +USRASB=1 +KA10=1 +PGMEND=1 +ERDIAG=1 + +;SPECIAL FEATURE DEFINITIONS + +SADR1=BEGIN +SADR2=BEGIN +SADR3=BEGIN +SADR4=BEGIN +SADR5=JRST BEGIN +SADR6=JRST BEGIN +SADR7=JRST BEGIN +SADR8=JRST BEGIN +SADR9=JRST BEGIN +SADR10=JRST BEGIN +SADR11=JRST BEGIN + +;SPECIAL FEATURE PARAMETERS + +PAREA0=0 +PAREA1=0 +PAREA2=0 +PAREA3=SIXBIT/DAKAM/ +PAREA4=SIXBIT/TMP/ +PAREA5=0 +PAREA6=0 +ITERAT==1000 + +;MACROS + +DEFINE SAVEAC (A,B)< + MOVEI AC+2,. ;SAVE TEST PC + MOVEM AC+2,TESTPC + MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> +;SPECIAL INSTRUCTIONS TO ASSEMBLER + +IF1, ;BYTBLK BEYOND AC RANGE FOR PASS 1 +IF1, ;BLTBLK BEYOND AC RANGE FOR PASS 1 + +;MACROS + +DEFINE GMOV (X1,DATA),< + IFLE ,< + MOVE X1,[DATA] ;PRELOAD X1 WITH DATA> + IFG ,< + MOVE AC+1,[DATA] + MOVEM AC+1,X1 ;PRELOAD X1 WITH DATA>> + +DEFINE GCAM (X1,DATA),< +SN=SN+1 + IFG ,< + MOVE AC-1,X1 + CAME AC-1,[DATA] ;IS C(X1) = DATA + IFIDN ,,< + ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + IFDIF ,,< + ER2 AC-1,SN ;C(X1) WAS CLOBBERED>> + IFLE ,< + CAME X1,[DATA] ;IS C(X1) = DATA + IFIDN ,,< + ER2 X1,SN ;DEST NOT LOADED CORRECTLY> + IFDIF ,,< + ER2 X1,SN ;C(X1) WAS CLOBBERED>>> +DEFINE BLTM1 (A1,C1,S1,D1,SC)< +;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA +;WHERE SOURCE AND DESTINATION ARE DIFFERENT +;SOURCE DATA = SC + + AC=C1 + SAVEAC (1,1) +SN=A1 + SRCE=S1 ;1ST LOC OF SOURCE = S1 + DEST=D1 ;1ST LOC OF DESTINATION = D1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G'A1: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + GMOV (SRCE-1,<252525252525>) + GMOV (SRCE,) + GMOV (SRCE+1,<770077007700>) + GMOV (DEST-1,<070707070707>) + GMOV (DEST,<123456765432>) + GMOV (DEST+1,<552255225522>) + BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + GCAM (SRCE-1,<252525252525>) + GCAM (SRCE,) + GCAM (SRCE+1,<770077007700>) + GCAM (DEST-1,<070707070707>) + GCAM (DEST,) + GCAM (DEST+1,<552255225522>) + JUMPL AC+2,G'A1 ;LOOP ON ERROR> + +SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979 + +DEFINE S,<; *********************************************************************> + +; ********************************************************************** +;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) +;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE +;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS +; ********************************************************************** + +ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION +RSTART==200000 ;RESTART TEST, PRINT TOTALS +TOTALS==100000 ;PRINT TOTALS, CONTINUE + +NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) +PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) +DING== 010000 ;RING BELL ON ERROR + +LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR +ERSTOP==002000 ;HALT ON TEST ERROR +PALERS==001000 ;PRINT ALL ERRORS + +RELIAB==000400 ;RELIABILITY MODE +TXTINH==000200 ;INHIBIT ERROR TEXT +INHPAG==000100 ;INHIBIT PAGING + +MODDVC==000040 ;MODIFY DEVICE CODE +INHCSH==000020 ;INHIBIT CACHE +OPRSEL==000010 ;OPERATOR SELECTION + +CHAIN== 000004 ;CHAIN CONTROL SWITCH + +KAHZ50==000002 ;KA10 50 HERTZ POWER + + ;SWITCH 17 RESERVED !!! +SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 + +; ********************************************************************** +;*SPECIAL SUBPROGRAM LINKAGES +; ********************************************************************** + +FSELNK= 27772 ;FILE SELECT LINK +FRDLNK= 27773 ;FILE READ LINK +LDLNK= 27774 ;LOAD LINKAGE ADDRESS +DDTLNK= 27775 ;DDT LINKAGE ADDRESS +MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS +SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + +; ********************************************************************** +;*SPECIAL SUBROUTINE FATAL HALTS +;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE +; ********************************************************************** + +;ADDRESS TAG REASON +;--------------------- + +; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION +; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR +; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR +; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT +; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL +; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET +; 1016 CPIERR ;CPU INITIALIZATION ERROR +; 1017 EOPERR ;END OF PROGRAM ERROR +; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + +; ********************************************************************** +; ********************************************************************** +;OPERATOR DEFINITIONS (NON-UUO'S) +; ********************************************************************** + +OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL +OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN +OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST +OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST +OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S +OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT +OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT +OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + +; ********************************************************************** +;SUBROUTINE INITIALIZATION CALL +; ********************************************************************** + +OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + +; ********************************************************************** +;HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). +; ********************************************************************** + +OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT +OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + +; ********************************************************************** +;TERMINAL INPUT UUO'S +;ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE +;CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. +; ********************************************************************** + +OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER +OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y +OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N +OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD +OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD +OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD +OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK +OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK +OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD +OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT +;TERMINAL OUTPUT UUO'S. + +OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD +OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED +OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE +OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED +OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE +OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED +OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE +OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED +OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE +OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED +OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE +OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED +OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER +OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED +OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT +OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED +OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS +OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED +OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS +OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED +OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS +OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED +OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS +OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED +OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS +OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED +OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS +OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED +OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS +OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. +OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS +OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED +OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL +OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED +OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 +OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED +OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S +OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED +OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S +OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED +OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S +OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED +OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME +OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD +OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED +OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE +OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD +OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED +OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED +OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED +OPDEF PSP [37B8!0B12!40] ;PRINT SPACE +OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED +OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED +OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + +OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + +DEFINE PMSG (ARG),< + PSIXM [SIXBIT\ARG'_\]> + +DEFINE PMSGF (ARG),< + PSIXMF [SIXBIT\ARG'_\]> + +;SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING +; CONSERVES CORE OVER ASCIZ + +DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + +;CONSOLE SWITCH INPUT UUO. +;READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF +; USER MODE. + +OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + +;CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION +;EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + +OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK +OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + +;KL10 ONLY CACHE OPERATION UUO'S + +OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE +OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH +OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +;END OF PASS/PROGRAM UUOS + +;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, +;DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + +OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS +OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + +;MEMORY MANAGEMENT UUO'S +;UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, +;ADDRESS CONVERSION, ETC... + +OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY +OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY +OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT +OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT +OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK +OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP +OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + +;DEVICE CODE MODIFICATION UUO +;ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO +;IOT'S TO A DIFFERENT DEVICE CODE. + +OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER +OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + + IFNDEF MODDVL, + IFNDEF MODDVU, + +;"DIAMON" FILE SELECTION AND READ UUOS + +OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION +OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA +OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA +OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + +;KI10 ONLY UUO FOR PRINTING MARGIN VALUES + +OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + + XLIST +IFNDEF KLOLD, + +;A MACRO TO REPORT AN ERROR AND NOT LOOP + + DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + SALL + ERUUO FORMAT,[T,,[SIXBIT\F'_\] + CORECT,,ACTUAL + [SIXBIT\D'_\],,ERR] + XALL> + +>;END OF KLOLD CONDITIONAL + + XLIST +IFDEF $PAPER, +SUBTTL STANDARD PROGRAM ASSIGNMENTS + +; ********************************************************************** +;ACCUMULATORS +; ********************************************************************** + +P= 17 ;PUSHDOWN POINTER AC (IF PUSH LIST USED) +REPT== 15 ;ERROR HANDLER REPEAT AC +REPT1== 16 ; " + +; ********************************************************************** +;PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..) +; ********************************************************************** + +AROV== 400000 ;ARITHMETIC OVERFLOW +CRY0== 200000 ;CARRY 0 +CRY1== 100000 ;CARRY 1 +FOV== 40000 ;FLOATING POINT OVERFLOW +BIS== 20000 ;BYTE INTERRUPT +USERF== 10000 ;USER MODE +EXIOT== 4000 ;USER PRIV I/O +FXU== 100 ;FLOATING POINT UNDERFLOW +DCK== 40 ;DIVIDE CHECK + +; ********************************************************************** +;PDP-10 STANDARD ADDRESS ASSIGNMENTS +; ********************************************************************** + +LUUO== 40 ;UUO STORAGE, UUO 1-37 +LUUOI== 41 ;UUO SERVICE INSTRUCTION + +; ********************************************************************** +;JOB DATA AREA EXTERNALS (OLD DEFINITIONS) +; ********************************************************************** + +JOBUUO==40 +JOB41== 41 +JOBREL==44 +JOBDDT==74 +JOBSYM==116 +JOBUSY==117 +JOBSA== 120 +JOBFF== 121 +JOBREN==124 +JOBAPR==125 +JOBCNI==126 +JOBTPC==127 +JOBOPC==130 +JOBVER==137 +; ********************************************************************** +;JOB DATA AREA EXTERNALS (NEW DEFINITIONS) +; ********************************************************************** + +.JBUUO==40 +.JB41== 41 +.JBREL==44 +.JBDDT==74 +.JBSYM==116 +.JBUSY==117 +.JBSA== 120 +.JBFF== 121 +.JBREN==124 +.JBAPR==125 +.JBCNI==126 +.JBTPC==127 +.JBOPC==130 +.JBVER==137 + +; ********************************************************************** +;USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL) +; ********************************************************************** + +PDLOVU==200000 ;PUSHDOWN LIST OVERFLOW +MPVU== 20000 ;MEMORY PROTECTION VIOLATION +NXMU== 10000 ;NON-X-MEMORY +PARU== 4000 ;PARITY ERROR +CLKU== 1000 ;CLOCK +FOVU== 100 ;FLOATING OVERFLOW +AROVU== 10 ;ARITHMETIC OVERFLOW + +; ********************************************************************** +;USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE) +;THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN +;USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS. +; ********************************************************************** + +$DEVCH==17 ;LOGICAL DEVICE CHANNEL +$DVCH1==16 ;LOGICAL DEV UPDATE INPUT CHANNEL + +; ********************************************************************** +;PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS +; ********************************************************************** + +PAG== 010 ;PAGING I/O DEVICE CODE, KI/KL + +CCA== 014 ;CACHE I/O DEVICE CODE, KL10 +; ********************************************************************** +;PDP-10 STANDARD APR CONO ASSIGNMENTS +; ********************************************************************** + +IOCLR== 200000 ;CLEAR ALL I/O DEVICES +CLKDIS==4000 ;DISABLE CLOCK INTERRUPTS +CLKENB==2000 ;ENABLE CLOCK INTERRUPTS +CLKCLR==1000 ;CLEAR CLOCK FLAG + +; ********************************************************************** +;PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF +; ********************************************************************** + +CLKENB==2000 ;CLOCK INTERRUPT ENABLED +CLK== 1000 ;CLOCK FLAG +ANXM== 10000 ;KA10, NON-X-MEMORY +INXM== 100 ;KI10 + +; ********************************************************************** +;PDP-10 STANDARD PI CONO ASSIGNMENTS +; ********************************************************************** + +PWFCLR==400000 ;CLEAR POWER FAIL FLAG +PARCLR==200000 ;CLEAR PARITY ERROR FLAG +PARDIS==100000 ;DISABLE PARITY INTERRUPTS +PARENB==40000 ;ENABLE PARITY INTERRUPTS +PICLR== 10000 ;CLEAR PI SYSTEM +REQSET==4000 ;SET PROGRAM PI REQUEST +CHNON== 2000 ;TURN ON CHANNEL +CHNOFF==1000 ;TURN OFF CHANNEL +PIOFF== 400 ;TURN OFF PI SYSTEM +PION== 200 ;TURN ON PI SYSTEM + +; ********************************************************************** +;PDP-10 STANDARD PI CONI ASSIGNMENTS +; ********************************************************************** + +PION== 200 ;PI SYSTEM ON + +; ********************************************************************** +;PDP-10 STANDARD PI CHANNEL ASSIGNMENTS +; ********************************************************************** + +PICHN1==100 ;PI CHANNEL 1 +PICHN2==40 ;PI CHANNEL 2 +PICHN3==20 ;PI CHANNEL 3 +PICHN4==10 ;PI CHANNEL 4 +PICHN5==4 ;PI CHANNEL 5 +PICHN6==2 ;PI CHANNEL 6 +PICHN7==1 ;PI CHANNEL 7 +PICHNA==177 ;ALL PI CHANNELS, 1 THRU 7 + XLIST + IFDEF KA10,< +IFDEF $PAPER, +; ********************************************************************** +;KA10 APR CHANNEL ASSIGNMENTS +; ********************************************************************** + +AAPRC1==1 ;APR INTERRUPT CHANNEL + +; ********************************************************************** +;KA10 APR CONO ASSIGNMENTS +; ********************************************************************** + +APDCLR==400000 ;CLEAR PUSHDOWN OVERFLOW +AABCLR==40000 ;CLEAR ADDRESS BREAK +AMPCLR==20000 ;CLEAR MEMORY PROTECTION +ANXCLR==10000 ;CLEAR NON-X-MEMORY +AFODIS==400 ;DISABLE FLOATING POINT OVERFLOW +AFOENB==200 ;ENABLE FLOATING POINT OVERFLOW +AFOCLR==100 ;CLEAR FLOATING POINT OVERFLOW +AOVDIS==40 ;DISABLE OVERFLOW +AOVENB==20 ;ENABLE OVERFLOW +AOVCLR==10 ;CLEAR OVERFLOW + +; ********************************************************************** +;KA10 APR CONI ASSIGNMENTS +; ********************************************************************** + +APDLOV==200000 ;PUSHDOWN OVERFLOW +AUSRIO==100000 ;USER I/O +AADRBK==40000 ;ADDRESS BREAK +AMPV== 20000 ;MEMORY PROTECTION VIOLATION +ANXM== 10000 ;NON-EXISTENT MEMORY +AFOENB==200 ;FLT PT INTERRUPT ENABLED +AFOV== 100 ;FLOATING POINT OVERFLOW +ATRPOS==40 ;TRAPS OFFSET +AOVENB==20 ;OVERFLOW INTERRUPT ENABLED +AOVFLO==10 ;ARITHMETIC OVERFLOW + +; ********************************************************************** +;KA10 PI CONI ASSIGNMENTS +; ********************************************************************** + +APWRFL==400000 ;POWER FAILURE +APARER==200000 ;PARITY ERROR +APAREN==100000 ;PARITY INTERRUPT ENABLED + +> ;END CONDITIONAL ON KA10 + XLIST + IFDEF KI10,< +IFDEF $PAPER, +; ********************************************************************** +;KI10 PC CONTROL FLAGS +; ********************************************************************** + +LIP== 2000 ;LAST INSTRUCTION PUBLIC +TN0== 400 ;TN=00, NO TRAP ;TN=01, ARITH TRAP +TN1== 200 ;TN=10, PDL OV ;TN=11, TRAP 3 + +; ********************************************************************** +;KI10 SPECIAL EXEC MODE FLAGS +; ********************************************************************** + +UOLIP== 400000 ;UUO OLD L.I.P. +UOUSR== 4000 ;UUO OLD USER + +; ********************************************************************** +;KI10 APR CHANNEL ASSIGNMENTS +; ********************************************************************** + +IAPRC1==1 ;APR CLOCK CHANNEL +IAPRE1==10 ;APR ERROR CHANNEL + +; ********************************************************************** +;KI10 APR CONO ASSIGNMENTS +; ********************************************************************** + +ITMSET==400000 ;SET TIME OUT TIMER +ITMDIS==100000 ;DISABLE TIME OUT +ITMENB==40000 ;ENABLE TIME OUT +IASRTC==20000 ;CLEAR AUTO RESTART +IASRTS==10000 ;SET AUTO RESTART +IIOPFC==200 ;CLEAR I/O PAGE FAIL +INXCLR==100 ;CLEAR NON-X-MEM + +; ********************************************************************** +;KI10 APR CONI ASSIGNMENTS, RIGHT HALF +; ********************************************************************** + +ITMOUT==400000 ;TIMER TIMED OUT +IPARER==200000 ;PARITY ERROR +IPAREN==100000 ;PARITY ENABLED +ITMOEN==40000 ;TIME OUT ENABLED +IPWRFL==20000 ;POWER FAIL +IASRTE==10000 ;AUTO RESTART ENABLED +IIOPFL==200 ;I/O PAGE FAIL +INXM== 100 ;NON-X-MEMORY +; ********************************************************************** +;KI10 APR CONI ASSIGMENTS, LEFT HALF +; ********************************************************************** + +IMLAPD==200000 ;MEMORY OVERLAP DISABLED +IFMMAN==100000 ;FAST MEMORY MANUAL +IMIPGD==40000 ;MI PROGRAM DISABLE +ICNSLR==20000 ;CONSOLE READ ONLY +ICNSLL==10000 ;CONSOLE LOCKED +IP50HZ==4000 ;50 HZ POWER +IMGINM==2000 ;MANUAL MARGINS +IMAINT==1000 ;MAINTENANCE MODE +IPWRLO==400 ;POWER LOW +IMGNLO==200 ;MARGIN COMPARATOR LOW +SENSE1==40 ;SENSE SWITCHES 1 +SENSE2==20 ; 2 +SENSE3==10 ; 3 +SENSE4==4 ; 4 +SENSE5==2 ; 5 +SENSE6==1 ; 6 + +; ********************************************************************** +;KI10 APR DATAO ASSIGNMENTS +; ********************************************************************** + +IEVNPR==20000 ;WRITE EVEN PARITY +ISPDOF==10000 ;SPEED MARGINS OFF +ISPDON==4000 ;SPEED MARGINS ON +IMGNOF==2000 ;MARGINS OFF - LH +IMGNON==1000 ;MARGINS ON - LH + +; ********************************************************************** +;KI10 PI CONO ASSIGNMENTS +; ********************************************************************** + +IRQCLR==20000 ;CLEAR PROGRAM PI REQUEST +; ********************************************************************** +;KI10 PI CONI ASSIGNMENTS +; ********************************************************************** + +IINSTF==400000 ;ADDRESS CONDITIONS, INST FETCH +IDATAF==200000 ; DATA FETCH +IWRITE==100000 ; WRITE +IADSTP==40000 ;ADDRESS STOP +IADBRK==20000 ;ADDRESS BREAK +IADEXC==10000 ;ADDRESS SWITCHES EXEC +IADUSR==4000 ; " " USER +IPRSTP==2000 ;PARITY STOP +INXSTP==1000 ;NON-X-MEM STOP + +; ********************************************************************** +;KI10 PAG CONI ASSIGNMENTS +; ********************************************************************** + +EXCMEM==400 ;EXEC MEMORY SPACE +AMCLRB==40 ;ASSOCIATIVE MEMORY CLEAR BIT + +; ********************************************************************** +;KI10 PAG DATAO ASSIGNMENTS, LEFT HALF +; ********************************************************************** + +LDUSRB==400000 ;LOAD USER BASE REGISTER +SMLUSR==40000 ;SMALL USER, 32K OR UNDER +USRCMP==20000 ;USER ADR COMPARE ENABLE + +; ********************************************************************** +;KI10 PAG DATAO ASSIGNMENTS, RIGHT HALF +; ********************************************************************** + +LDEXCB==400000 ;LOAD EXEC BASE REGISTER +TRPENB==20000 ;ENABLE TRAPS + +; ********************************************************************** +;KI10 PAG DATAI ASSIGNMENTS +; ********************************************************************** + +SMLUSR==40000 ;SMALL USER +USRCMP==20000 ;USER ADR COMPARE ENABLED +TRPENB==20000 ;RH, TRAPS ENABLED + +; ********************************************************************** +;KI10 PTR DATAO ASSIGNMENTS +; ********************************************************************** + + ;ADDRESS CONDITIONS, ADDRESS BREAK ;AS ABOVE, PI CONI + ;ADDRESS SWITCHES, 14-35 +; ********************************************************************** +;KI10 EXEC PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +PGFTRP==420 ;PAGE FAULT TRAP +AROVTP==421 ;ARITHMETIC TRAP +PDOVTP==422 ;PUSHDOWN OVERFLOW TRAP +TRP3TP==423 ;TRAP 3 TRAP + +; ********************************************************************** +;KI10 USER PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +PGFTRP==420 ;PAGE FAULT TRAP +AROVTP==421 ;ARITHMETIC TRAP +PDOVTP==422 ;PUSHDOWN OVERFLOW TRAP +TRP3TP==423 ;TRAP 3 TRAP + +MUUO== 424 ;MUUO STORAGE +MUUOPC==425 ;C(PC) OF MUUO STORAGE + +EXCPFW==426 ;EXEC PAGE FAIL WORD +USRPFW==427 ;USER PAGE FAIL WORD + +KNTRP== 430 ;KERNAL NO TRAP - NEW PC'S- +KTRP== 431 ;" TRAP +SNTRP== 432 ;SUPERVISOR NO TRAP +STRP== 433 ;" TRAP +CNTRP== 434 ;CONCEAL NO TRAP +CTRP== 435 ;" TRAP +PNTRP== 436 ;PUBLIC NO TRAP +PTRP== 437 ;" TRAP + +> ;END CONDITIONAL ON KI10 + XLIST + IFDEF KL10,< + IFNDEF KL10P0,< +IFDEF $PAPER, +;KL10 CONO APR 000 ASSIGMENTS +; ********************************************************************** + +LIOCLR==200000 ;CLEAR ALL I/O DEVICES +LFLGEN==100000 ;ENABLE SELECTED FLAG +LFLGDS==40000 ;DISABLE SELECTED FLAG +LFLGCL==20000 ;CLEAR SELECTED FLAG +LFLGST==10000 ;SET SELECTED FLAG +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LPARER==1000 ;PARITY ERROR FLAG +LIOPFE==400 ;I/O PAGE FAIL FLAG +LPWRFL==100 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LESBER==104000 ;ENABLE SBUS ERRORS +LDSBER==044000 ;DISABLE SBUS ERRORS +LCSBER==024000 ;CLR SBUS ERRORS +LSSBER==014000 ;SET SBUS ERROR +LENXER==102000 ;ENABLE NON-EXISTENT MEMORY +LDNXER==042000 ;DISABLE NON-EXISTENT MEORY +LCNXER==022000 ;CLR NON-EXISTENT MEMORY +LSNXER==012000 ;SET NON-EXISTENT MEMORY +LEPAER==101000 ;ENABLE PARITY ERRORS +LDPAER==041000 ;DISABLE PARITY ERRORS +LCPAER==021000 ;CLR PARITY ERROR +LSPAER==011000 ;SET PARITY ERROR +LEIOPF==100400 ;ENABLE I/O PAGE FAILS +LDIOPF==040400 ;DISABLE I/O PAGE FAILS +LCIOPF==020400 ;CLR I/O PAGE FAIL +LSIOPF==010400 ;SET I/O PAGE FAIL +LEPWRF==100100 ;ENABLE POWER FAIL +LDPWRF==040100 ;DISABLE POWER FAIL +LCPWRF==020100 ;CLR POWER FAIL +LSPWRF==010100 ;SET POWER FAIL +LECASD==100020 ;ENABLE CACHE SWEEP DONE +LDCASD==040020 ;DISABLE CACHE SWEEP DONE +LCCASD==020020 ;CLR CACHE SWEEP DONE +LSCASD==010020 ;SET CACHE SWEEP DONE +LAPRAL==127520 ;CLR ALL ERROR FLAGS & ENABLE +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LSBSEN==4000 ;SBUS ERRORS ENABLED +LNXMEN==2000 ;NON-EXISTENT MEMORY ERRORS ENABLED +LPAREN==1000 ;PARITY ERRORS ENABLED +LIOPFE=400 ;I/O PAFE FAILURES ENABLED +LPWRFE==100 ;POWER FAILURES ENABLED +LCASDE==20 ;CACHE SWEEP DONE ENABLED + +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +LCASWB==200000 ;CACHE SWEEP BUSY +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LPARER==1000 ;PARITY ERROR FLAG +LIOPFE==400 ;I/O PAGE FAIL FLAG +LPWRFL==100 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LINT==10 ;APR INTERRUPT + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH +LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH +LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE +LUSCMP==40 ;USER ADDRESS COMPARE +LEXCMP==0 ;EXEC ADDRESS COMPARE + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;DATAO APR,ADDRESS SWITCHES=13-35 +> + XLIST + IFDEF KL10P0,< +IFDEF $PAPER, +;KL10 CONO APR 000 ASSIGMENTS +; ********************************************************************** +LIOCLR==200000 ;CLEAR ALL I/O DEVICES +LFLGEN==100000 ;ENABLE SELECTED FLAG +LFLGDS==40000 ;DISABLE SELECTED FLAG +LFLGCL==20000 ;CLEAR SELECTED FLAG +LFLGST==10000 ;SET SELECTED FLAG +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LIOPFE==1000 ;I/O PAGE FAIL FLAG +LPARER==400 ;MB PARITY ERROR FLAG +LCADRP==200 ;CACHE ADDRESS PARITY ERROR FLAG +LSADRP==100 ;S-BUS ADDRESS PARITY ERROR FLAG +LPWRFL==40 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LESBER==104000 ;ENABLE SBUS ERRORS +LDSBER==044000 ;DISABLE SBUS ERRORS +LCSBER==024000 ;CLR SBUS ERRORS +LSSBER==014000 ;SET SBUS ERROR +LENXER==102000 ;ENABLE NON-EXISTENT MEMORY +LDNXER==042000 ;DISABLE NON-EXISTENT MEORY +LCNXER==022000 ;CLR NON-EXISTENT MEMORY +LSNXER==012000 ;SET NON-EXISTENT MEMORY +LEIOPF==101000 ;ENABLE I/O PAGE FAILS +LDIOPF==041000 ;DISABLE I/O PAGE FAILS +LCIOPF==021000 ;CLR I/O PAGE FAIL +LSIOPF==011000 ;SET I/O PAGE FAIL +LEPAER==100400 ;ENABLE PARITY ERRORS +LDPAER==040400 ;DISABLE PARITY ERRORS +LCPAER==020400 ;CLR PARITY ERROR +LSPAER==010400 ;SET PARITY ERROR +LECAER==100200 ;ENABLE CACHE ADR PARITY ERRORS +LDCAER==040200 ; " DISABLE +LCCAER==020200 ; " CLR +LSCAER==010200 ; " SET +LESAER==100100 ;ENABLE S-BUS ADR PARITY ERRORS +LDSAER==040100 ; " DISABLE +LCSAER==020100 ; " CLR +LSSAER==010100 ; " SET +LEPWRF==100040 ;ENABLE POWER FAIL +LDPWRF==040400 ;DISABLE POWER FAIL +LCPWRF==020040 ;CLR POWER FAIL +LSPWRF==010040 ;SET POWER FAIL +LECASD==100020 ;ENABLE CACHE SWEEP DONE +LDCASD==040020 ;DISABLE CACHE SWEEP DONE +LCCASD==020020 ;CLR CACHE SWEEP DONE +LSCASD==010020 ;SET CACHE SWEEP DONE +LAPRAL==127760 ;CLR ALL ERROR FLAGS & ENABLE +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LSBSEN==4000 ;SBUS ERRORS ENABLED +LNXMEN==2000 ;NON-EXISTENT MEMORY ERRORS ENABLED +LIOPFE==1000 ;I/O PAGE FAILURES ENABLED +LPAREN==400 ;PARITY ERRORS ENABLED +LCADEN==200 ;CACHE ADR PARITY ERRORS ENABLED +LSADEN==100 ;S-BUS ADR PARITY ERRORS ENABLED +LPWRFE==40 ;POWER FAILURES ENABLED +LCASDE==20 ;CACHE SWEEP DONE ENABLED + +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +LCASWB==200000 ;CACHE SWEEP BUSY +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LIOPFE==1000 ;I/O PAGE FAIL FLAG +LPARER==400 ;PARITY ERROR FLAG +LCADRP==200 ;CACHE ADR PARITY ERROR FLAG +LSADRP==100 ;S-BUS ADR PARITY ERROR FLAG +LPWRFL==40 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LINT==10 ;APR INTERRUPT + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH +LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH +LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE +LUSCMP==40 ;USER ADDRESS COMPARE +LEXCMP==0 ;EXEC ADDRESS COMPARE + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;DATAO APR,ADDRESS SWITCHES=13-35 +> + XLIST +IFDEF $PAPER, +; ********************************************************************** +;KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH +LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH +LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE +LUSCMP==40 ;USER ADDRESS COMPARE +LEXCMP==0 ;EXEC ADDRESS COMPARE + +; ********************************************************************** +;KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;DATAI APR,ADDRESS SWITCHES=13-35 + +; ********************************************************************** +;KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE) +; ********************************************************************** + +;REFILL ALGORITHM BITS 18-20 +;REFILL ALGORITHM ADDRESS 27-33 + +; ********************************************************************** +;KL10 BLKI APR 000 ASSIGMENTS +; ********************************************************************** + +;MICRO-CODE OPTIONS = 0-8 +;MICRO-CODE VERSION NUMBER = 9-17 +;HARDWARE OPTIONS =18-23 +;PROCESSOR SERIAL NUMBER = 24-35 +; ********************************************************************** +;KL10 CONO PI 004 ASSIGMENTS +; ********************************************************************** + +LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS +LEVNPD==200000 ;WRITE EVEN PARITY DATA +LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0 +LRQCLR==20000 ;DROP INTERRUPT ON SELECTED CHANNEL +LPICLR==10000 ;CLEAR PI SYSTEM +LREQSE==4000 ;REQUEST INTERRUPT ON SELECTED CHANNEL +LCHNON=2000 ;TURN ON SELECTED CHANNEL +LCHNOF==1000 ;TURN OFF SELECTED CHANNEL +LPIOFF==400 ;TURN PI SYSTEM OFF +LPION==200 ;TURN PI SYSTEM ON +LPICH1==100 ;PI CHANNEL 1 +LPICH2==40 ;PI CHANNEL 2 +LPICH3==20 ;PI CHANNEL 3 +LPICH4==10 ;PI CHANNEL 4 +LPICH5==4 ;PI CHANNEL 5 +LPICH6==2 ;PI CHANNEL 6 +LPICH7==1 ;PI CHANNEL 7 +LPICHA==177 ;ALL PI CHANNELS + +; ********************************************************************** +;KL10 CONI PI 004 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LPRCH1==100 ;PROGRAM REQUEST ON CHANNEL 1 +LPRCH2==40 ;PROGRAM REQUEST ON CHANNEL 2 +LPRCH3==20 ;PROGRAM REQUEST ON CHANNEL 3 +LPRCH4==10 ;PROGRAM REQUEST ON CHANNEL 4 +LPRCH5==4 ;PROGRAM REQUEST ON CHANNEL 5 +LPRCH6==2 ;PROGRAM REQUEST ON CHANNEL 6 +LPRCH7==1 ;PROGRAM REQUEST ON CHANNEL 7 +; ********************************************************************** +;KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS +LEVNPD==200000 ;WRITE EVEN PARITY DATA +LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0 +LPIIP1==40000 ;PI IN PROGRESS ON CHANNEL 1 +LPIIP2==20000 ;PI IN PROGRESS ON CHANNEL 2 +LPIIP3==10000 ;PI IN PROGRESS ON CHANNEL 3 +LPIIP4==4000 ;PI IN PROGRESS ON CHANNEL 4 +LPIIP5==2000 ;PI IN PROGRESS ON CHANNEL 5 +LPIIP6==1000 ;PI IN PROGRESS ON CHANNEL 6 +LPIIP7==400 ;PI IN PROGRESS ON CHANNEL 7 +LPION==200 ;PI SYSTEM ON +LPICH1==100 ;PI CHANNEL 1 ON +LPICH2==40 ;PI CHANNEL 2 ON +LPICH3==20 ;PI CHANNEL 3 ON +LPICH4==10 ;PI CHANNEL 4 ON +LPICH5==4 ;PI CHANNEL 5 ON +LPICH6==2 ;PI CHANNEL 6 ON +LPICH7==1 ;PI CHANNEL 7 ON +; ********************************************************************** +;KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LLACBL==400000 ;LOAD AC BLOCKS +LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION +LLDUSB==100000 ;LOAD USER BASE REGISTER +LCWSX==40 ; + +;CURRENT AC BLOCKS BITS 6 - 8 +;PREVIOUS AC BLOCKS BITS 9 - 11 +;PREVIOUS CONTEXT SECTION BITS 13 - 17 + +; ********************************************************************** +;KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;USER BASE REGISTER BITS 23 - 35 + +; ********************************************************************** +;KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LLACBL==400000 ;LOAD AC BLOCKS +LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION +LLDUSB==100000 ;LOAD USER BASE REGISTER +LCWSX==40 ; + +;CURRENT AC BLOCKS BITS 6 - 8 +;PREVIOUS AC BLOCKS BITS 9 - 11 +;PREVIOUS CONTEXT SECTION BITS 13 - 17 + +; ********************************************************************** +;KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;USER BASE REGISTER BITS 23 - 35 +; ********************************************************************** +;KL10 CONO PAG 010 ASSIGMENTS +; ********************************************************************** + +LCASLO==400000 ;CACHE STRATEGY LOOK +LCASLD==200000 ;CACHE STRATEGY LOAD +LSMODE==40000 ;SECTION MODE +LTRPEN==20000 ;TRAP AND PAGE ENABLE + +;EXEC BASE REGISTER = 23-35 + +; ********************************************************************** +;KL10 CONI PAG 010 ASSIGMENTS +; ********************************************************************** + + +LCSLOO==400000 ;CACHE STRATEGY LOOK +LCSLOA==200000 ;CACHE STRATEGY LOAD +LSECMO==40000 ;SECTION MODE +LTRPAE==20000 ;TRAP AND PAGE ENABLE + +;EXEC BASE REGISTER = 23-35 + +; ********************************************************************** +;KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE) +; ********************************************************************** + + XLIST + IFNDEF KL10P0,< +IFDEF $PAPER, +; ********************************************************************** +;KL10 EXEC PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +; ********************************************************************** +;KL10 USER PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LEUPFW==420 ;EXEC & USER PAGE FAIL WORD +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +LMUUO== 424 ;MUUO STORAGE +LMUUOP==425 ;C(PC) OF MUUO STORAGE + +LPFWPC==426 ;C(PC) OF PAGE FAIL WORD +LPGFTR==427 ;PAGE FAIL NEW PC TRAP + +LKNTRP==430 ;KERNAL NO TRAP - NEW PC'S- +LKTRP== 431 ;" TRAP +LSNTRP==432 ;SUPERVISOR NO TRAP +LSTRP== 433 ;" TRAP +LCNTRP==434 ;CONCEAL NO TRAP +LCTRP== 435 ;" TRAP +LPNTRP==436 ;PUBLIC NO TRAP +LPTRP== 437 ;" TRAP + +> + XLIST + IFDEF KL10P0,< +IFDEF $PAPER, +; ********************************************************************** +;KL10 EXEC PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +LTBASH==510 ;TIME-BASE, HI +LTBASL==511 ;TIME-BASE, LO +LPRFMH==512 ;PERFORMANCE ANAYLYSIS, HI +LPRFML==513 ;PERFORMANCE ANAYLYSIS, LO + +; ********************************************************************** +;KL10 USER PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +LMUUO== 424 ;MUUO STORAGE +LMUUOP==425 ;C(PC) OF MUUO STORAGE +LCNTXT==426 ;PROCESS CONTEXT WORD + +LKNTRP==430 ;KERNAL NO TRAP - NEW PC'S- +LKTRP== 431 ;" TRAP +LSNTRP==432 ;SUPERVISOR NO TRAP +LSTRP== 433 ;" TRAP +LCNTRP==434 ;CONCEAL NO TRAP +LCTRP== 435 ;" TRAP +LPNTRP==436 ;PUBLIC NO TRAP +LPTRP== 437 ;" TRAP + +LEUPFW==500 ;EXEC & USER PAGE FAIL WORD +LPFWPC==501 ;C(PC) OF PAGE FAIL WORD +LPGFTR==502 ;PAGE FAIL NEW PC + +LEBXMH==504 ;E-BOX CLOCK TICK METER, HI +LEBXML==505 ;E-BOX CLOCK TICK METER, LO +LMBXMH==506 ;M-BOX CYCLE METER, HI +LMBXML==507 ;M-BOX CYCLE METER, LO + +>> ;END CONDITIONAL ON KL10 + LIST + +SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 + + LOC 30000 + +; ********************************************************************** +;PROGRAM STARTING ADDRESSES +;THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS +;NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE +;OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER +;MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. +; ********************************************************************** + +BEGIN: JRST @MODLNK ;STAND-ALONE START +$START: JRST START ;MODE CHECK STARTING ADDRESS + +DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + +SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + +SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + +PFSTRT: JRST SADR2 ;POWER FAIL RESTART + +REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + +SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" +DDTSRT: JRST @DDTLNK ;DDT START + +BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) +SBINIT: JRST @SUBLNK ;PMGINT LINKAGE +RETURN: 0 ;RETURN ADDRESS STORAGE + +START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS +START2: SADR8 ; " +START3: SADR9 ; " +START4: SADR10 ; " +START5: SADR11 ; " +; ********************************************************************** +;PROGRAM FIXED PARAMETER AREA +; ********************************************************************** + +PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME +PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION +RANDBS: PAREA1 ;RANDOM BASE NUMBER +SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES +ITRCNT: ITERAT ;PROGRAM ITERATIONS +$PNAME: PGMNAM ;POINTER TO PROGRAMS NAME +$PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL +$MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT +$MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT +$EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED +$UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED +$DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE +$MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS +PAREA7: PAREA5 ;OPTIONAL PARAMETER +PAREA8: PAREA6 ;OPTIONAL PARAMETER + +; ********************************************************************** +;PROGRAM VARIABLE PARAMETER AREA +; ********************************************************************** + +USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG +KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 +KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 +MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG +MONCTL: 0 ;DIAG MON/SYS EXR FLAG +MONTEN: 0 ;-1= LOADED BY 10 +CLOCKF: 0 ;CLOCK TICKED FLAG +CONSW: 0 ;CONSOLE SWITCH SETTINGS +PASCNT: 0 ;PROGRAM PASS COUNT +RUNFLG: 0 ;PROGRAM RUN FLAG +TESTPC: 0 ;SUBTEST PC +ERRPC: 0 ;ERROR PC +ERRTLS: 0 ;ERROR TOTALS +TICKS: 0 ;PROGRAM RUNNING TIME +MARGIN: 0 ;KI10 MARGIN WORD VALUE +$ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +; ********************************************************************** +;SPECIAL PROGRAM DISPATCH ADDRESSES +; ********************************************************************** + +BEGEND: ENDUUO ;END OF PASS +$BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM +$BEND2: EOPUUO ;END OF PROGRAM - NO RETURN +CNTLC: SADR5 ;CONTROL C XFER ADDRESS +ALTMGO: SADR6 ;ALTMODE XFER ADDRESS +CPOPJ1: ;SKIP RETURN +UUOSKP: AOS (P) ;SKIP RETURN FROM UUO +CPOPJ: ;NON-SKIP REGULAR RETURN +UUOEXT: RTN ;UUO RETURN +UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE +$UORTX: JFCL ;ADDITIONAL UUO LINKAGE +$UUOER: JFCL ;INITED AS (JRST $UOERX) +$ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE +$ITRX1: JFCL ; " +$USRHL: JFCL ; " +$RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE +$RSRTY: JFCL ; " +RESRT1: JFCL ; INITED AS (JRST RESRTX) +RESRT2: JFCL ; " +$PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE +ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + HALT . ;IMPROPER TRANSFER HALT + +$PSHER: 0 ;INITED AS (JRST PSHERR) +ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 0 ;INITED AS (JRST $ITRC1) + +; ********************************************************************** +;PROCESSOR CONTROL STORAGE +; ********************************************************************** + +$ACC0: 0 ;INTERRUPT SAVED AC0 +$SVPI: 0 ;INTERRUPT SAVED PI +$SVAPR: 0 ;INTERRUPT SAVED APR +$SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) +$SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + +$SVUUO: 0 ;CURRENT USERS UUO +$SVUPC: 0 ;PC OF CURRENT USERS UUO + +REPTU: 0 ;REPEAT UUO ITERATIONS +SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG +%CORFLG:0 ; " CORRECT FLAG +%COREC: 0 ; " CORRECT DATA +%ACTFL: 0 ; " ACTUAL FLAG +%ACTUL: 0 ; " ACTUAL DATA +%DISCR: 0 ; " DISCREPENCY DATA +; ********************************************************************** +;UUO DISPATCH TABLE +; ********************************************************************** + XLIST +IFNDEF LUUO1, +IFNDEF LUUO2, +IFNDEF LUUO3, +IFNDEF LUUO4, +IFNDEF LUUO5, +IFNDEF LUUO6, +IFNDEF LUUO7, +IFNDEF LUUO10, +IFNDEF LUUO11, +IFNDEF LUUO12, +IFNDEF LUUO13, +IFNDEF LUUO14, +IFNDEF LUUO15, +IFNDEF LUUO16, +IFNDEF LUUO17, +IFNDEF LUUO20, +IFNDEF LUUO21, +IFNDEF LUUO22, +IFNDEF LUUO23, +IFNDEF LUUO24, +IFNDEF LUUO25, +IFNDEF LUUO26, +IFNDEF LUUO27, +IFNDEF LUUO30, +IFNDEF LUUO31, +IFNDEF LUUO32, +IFNDEF LUUO33, + LIST +UUODIS: LUUO1,,$UUOER + LUUO3,,LUUO2 + LUUO5,,LUUO4 + LUUO7,,LUUO6 + LUUO11,,LUUO10 + LUUO13,,LUUO12 + LUUO15,,LUUO14 + LUUO17,,LUUO16 + LUUO21,,LUUO20 + LUUO23,,LUUO22 + LUUO25,,LUUO24 + LUUO27,,LUUO26 + LUUO31,,LUUO30 + LUUO33,,LUUO32 + +; ********************************************************************** +;MEMORY MANAGMENT STORAGE +; ********************************************************************** + +DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT +MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING +MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) +MEMLOW: 0 ;LOWEST USABLE MEMORY +MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + +; ********************************************************************** +;PRINT CONTROL STORAGE +; ********************************************************************** + +PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE +PNTENB: 0 ;PRINT ENABLE +PDISF: 0 ;PRINT DISABLED FLAG +PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS +PNTSPC: 0 ;PRINT SPACE CONTROL +OPTIME: 0 ;TYPE-IN WAIT TIME +$TWCNT: 0 ;TIME WAITED +$DVOFF: 0 ;LOGICAL DEVICE INITED FLAG +TTYFIL: 0 ;TTY EXEC FILLERS FLAG +TTYSPD: 0 ;TTY EXEC BAUD RATE +$TTCHR: 0 ;ACTUAL TYPED IN CHAR +$CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR +$TYPNB: 0 ;TYPED IN NUMBER +$CRLF: 0 ;FREE CR/LF FLAG +$TABF: 0 ;TAB CONVERSION FLAG +$FFF: 0 ;FORM FEED CONVERSION FLAG +$VTF: 0 ;VERTICAL TAB CONVERSION FLAG +USRLFF: 0 ;USER LF FILLERS +USRCRF: 0 ;USER CR FILLERS +; ********************************************************************** +;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED +;TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: +; MOVEI NAME +; PNTA ;OR PNTAF +; ********************************************************************** + +CRLF: ASCII/ +/ +CRLF2: ASCII/ + +/ +COMMA: ASCII/,/ +PERIOD: ASCII/./ +SPACE: ASCII/ / +TAB: ASCII/ / +MINUS: +HYPEN: ASCII/-/ +PLUS: ASCII/+/ +AST: ASCII/*/ +ATSIN: ASCII/@/ +LFP: ASCII/(/ +RTP: ASCII/)/ +BELL: BYTE (7) 007 +QUEST: ASCII/?/ +SLASH: ASCII!/! +DOLLAR: ASCII/$/ +RADIX: ^D10 ;DECIMAL PRINT RADIX +RADLSP: 40 ;DECIMAL PRINT LEADING CHAR +RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + +; ********************************************************************** +;USER MODE OUTPUT FILE INFORMATION +; ********************************************************************** + +$OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER +$OUTNM: SIXBIT /PRINT/ ;FILE NAME +$OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + BLOCK 2 + +; ********************************************************************** +;DISK UPDATE MODE FILE INFORMATION +; ********************************************************************** + +$IBUF: BLOCK 3 +$INNM: SIXBIT /PRINT/ +$INEXT: SIXBIT /PNT/ + BLOCK 2 +; ********************************************************************** +;PUSHDOWN LIST CONTROL INFORMATION +; ********************************************************************** + +PLIST: PLIST-PLISTE,,PLIST +PLISTS: BLOCK 200 +PLISTE: 0 ;END OF PUSHDOWN LIST + +; ********************************************************************** +;POWER LINE CLOCK FREQUENCY FLAG +; ********************************************************************** + +CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + +; ********************************************************************** +;KL10 CACHE CONTROL FLAGS +; ********************************************************************** + +CSHFLG: 0 ;ALLOW CACHE IF 0 +CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + +; ********************************************************************** +;NUMBER INPUT DIGIT FLAG +; ********************************************************************** + +TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + +; ********************************************************************** +;KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION +; ********************************************************************** + +PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + +; ********************************************************************** +;ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS +; ********************************************************************** + +%ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO +%ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO +%ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + +; ********************************************************************** +;SPECIAL USERS UUO INTERCEPT INSTRUCTION +; ********************************************************************** + +$$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +; ********************************************************************** +;USER MODE MONITOR TYPE FLAG +; ********************************************************************** + +MONTYP: 0 ;0 = TOPS10, -1 = TOPS20 + +;*********************************************************************^ +;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD +;*********************************************************************^ + +KLTYP: 0 + +; ********************************************************************** +;SPECIAL USERS MUUO INTERCEPT INSTRUCTION +; ********************************************************************** + +$$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + +; ********************************************************************** +;SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION +; ********************************************************************** + +$$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + +; ********************************************************************** +;"SWITCH" CALL USAGE CONTROL +; ********************************************************************** + +$$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + +; ********************************************************************** +;SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS +; ********************************************************************** + +$$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL +$$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + +; ********************************************************************** +;SM10 (KS-10) PROCESSOR TYPE FLAG +; ********************************************************************** + +SM10: 0 ;IF -1 THIS IS A KS-10 + +; ********************************************************************** +;RIGHT HALF SWITCHES PROMPT TABLE ADDRESS +; ********************************************************************** + +SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE + +; ********************************************************************** +;SPECIAL FUTURE EXPANSION ROOM +; ********************************************************************** + +; ********************************************************************** +;END OF FIXED STORAGE +; ********************************************************************** + + LOC 30577 +ENDFIX: 0 ;END OF FIXED STORAGE + +SUBTTL DIAGNOSTIC SECTION + +EXIT: ;DROPDV ;CLOSE LOGICAL OUTPUT FILE + ;EXIT + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) [DAKAM] +/ + +;INITIALIZE SUBROUTINES + + LOC 30621 + +START: ;PGMINT + ;MOVE [ASCIZ/AM/] + ;MOVEM TLET ;INITIALIZE TEST LETTER + +STARTA: JRST G00 ;GO PERFORM DIAGNOSTIC + +; GENERAL DESCRIPTION +;PART IA -BTYE LOGIC TESTS +;PART IB -GENERAL BYTE TEST +;PART II -GENERAL BLOCK TRANSFER TEST +;PART III -GENERAL JFFO TEST +SUBTTL PART IA - BYTE MANIPULATION + + +;PART IA - BYTE LOGIC TESTS +;INST-IBP +;TEST ABILITY TO FCE PSE AND DECODE +;PFIELD=14 +;SFIELD=6 +;BYTEWORD=0,-1 +;DESTAC=0 +;AN ERROR WILL OCCUR IF AC DIFFERS FROM 0 +;FOLLOWING IBP + +G00: AC=5 + SAVEAC (1,1) + +G100: MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI ,-1 ;SETUP BYTE WORD + SETZ AC, ;SETUP DEST AC + IBP ,&17 ;INC PNTR WORD + SKIPE AC&17 ;TEST AC DIFFERS FROM 0 + ER3 AC,101 ;FCE PSE FAILED + JUMPL AC+2,G100 ;LOOP ON ERROR SWITCH + +;INST-IBP +;TEST ABILITY TO INCREMENT BYTE PNTR +;WITHOUT AFFECTING BYTE WORD +;PFIELD=14 +;SFIELD=6 +;BYTE ADDRESS=AC0 +;AN ERROR WILL OCCUR IF C(AC0) DIFFERS +;FROM ORIGINAL FOLLOWING IBP + + AC=14 + SAVEAC (1,1) + +G200: SETO AC-2, ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + IBP ,&17 ;INC BYTE PNTR + CAME ,&17 ;TEST BYTE WORD + ER12 ,201 ;BYTE WORD FAILED + JUMPL AC+2,G200 ;LOOP ON ERROR SWITCH +;INST-IBP +;PFIELD=22 +;SFIELD=6 +;AN ERROR WILL OCCUR IF POINTER IS NOT INCREMENTED + + AC=13 + SAVEAC (1,1) + +G300: MOVSI AC-2,060600 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PNTR INC + ER5 AC+1,301 ;POINTER FAILED + JUMPL AC+2,G300 ;LOOP ON ERROR SWITCH + +;INST - IBP +;PFIELD=16 +;SFIELD=6 + + AC=12 + SAVEAC (1,1) + +G400: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + MOVSI AC+1,160600 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,401 ;POINTER FAILED + JUMPL AC+2,G400 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO TRANSFER INCREMENTED +;PFIELD +;TEST JAM-ZERO'S +;PFIELD=77 +;SFIELD=1,2,4,10,20,40 +;TEST JAM-ONE'S +;PFIELD=6,14,30,60,40 +;SFIELD=3,6,14,30,20 + + AC=10 + SAVEAC (1,1) + +SN=600 + ZZ=40 + YY=4000 + +G600: REPEAT ^D6,< +SN=SN+1 + ZZ=ZZ+ZZ + YY=YY+YY + MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,SN ;BIT UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + AC=11 + SAVEAC (1,1) + + ;TEST AR1(1) +G700: MOVSI AC-2,202000 ;SETUP FOR COMPARISON + MOVSI AC+1,402000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,701 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G700 ;LOOP ON ERROR SWITCH + + ;TEST AR2(1) +G1000: MOVSI AC-2,303000 ;SETUP FOR COMPARISON + MOVSI AC+1,603000 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1001 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1000 ;LOOP ON ERROR SWITCH + +G1100: MOVSI AC-2,141400 ;SETUP FOR COMPARISON + MOVSI AC+1,301400 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1101 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1100 ;LOOP ON ERROR SWITCH + + ;TEST AR4(1) +G1200: MOVSI AC-2,060600 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1201 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1200 ;LOOP ON ERROR SWITCH + + ;TEST AR5(1) +G1300: MOVSI AC-2,030300 ;SETUP FOR COMPARISON + MOVSI AC+1,060300 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST P FIELD + ER5 AC+1,1301 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1300 ;LOOP ON ERROR SWITCH +;INST-IBP +;PFIELD=5 +;SFIELD=10 + + AC=5 + SAVEAC (1,1) + +G1400: MOVSI AC-2,341000 ;SETUP FOR COMPARISON + MOVSI AC+1,051000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNPR + TRZ AC+1,1 ;CREAR ADDRESS FIELD OF POINTER + CAME AC+1,&17 ;TEST P FIELD + ER5 AC+1,1401 ;POINTER FAILED + JUMPL AC+2,G1400 ;LOOP ON ERROR SWITCH +PAGE +;INST - IBP +;TEST ABILITY TO TRANSFER PFIELD +;PRELIMINARY - TEST FOR PRESENCE +; OF PULSE +;PFIELD=16 +;SFIELD=6 + + AC=5 + SAVEAC (1,1) + +G1500: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + MOVSI AC+1,160600 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1501 ;POINTER FAILED + JUMPL AC+2,G1500 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO TRANSFER PFIELD +;TEST ABILITY TO SET INDIVIDUAL +;SC BITS 3-8 +;PFIELD=1,2,4,10,20,40 +;SFIELD=1,2,4,10,20,40 + + AC=14 + SAVEAC (1,1) + ;TEST SC BIT 8 SET +G1600: MOVSI AC-2,000100 ;SETUP FOR COMPARISON + MOVSI AC+1,010100 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 8 + ER5 AC+1,1601 ;POINTER FAILED + JUMPL AC+2,G1600 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 7 SET +G1700: MOVSI AC-2,000200 ;SETUP FOR COMPARISON + MOVSI AC+1,020200 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 7 + ER5 AC+1,1701 ;POINTER FAILED + JUMPL AC+2,G1700 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 6 SET +G2000: MOVSI AC-2,000400 ;SETUP FOR COMPARISON + MOVSI AC+1,040400 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 6 + ER5 AC+1,2001 ;POINTER FAILED + JUMPL AC+2,G2000 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 5 SET +G2100: MOVSI AC-2,001000 ;SETUP FOR COMPARISON + MOVSI AC+1,101000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 5 + ER5 AC+1,2101 ;POINTER FAILED + JUMPL AC+2,G2100 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 4 SET +G2200: MOVSI AC-2,002000 ;SETUP FOR COMPARISON + MOVSI AC+1,202000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 4 + ER5 AC+1,2201 ;POINTER FAILED + JUMPL AC+2,G2200 ;LOOP ON ERROR SWITCH + ;TEST SC BIT 3 SET +G2300: MOVSI AC-2,004000 ;SETUP FOR COMPARISON + MOVSI AC+1,404000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 3 + ER5 AC+1,2301 ;POINTER FAILED + JUMPL AC+2,G2300 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO SET SC BITS 3,6 +;PFIELD=6 +;SFIELD=10 +;FAILURE OF BIT 3 TO SET RESULTS IN A +;PFIELD=74 +;FAILURE OF BIT 6 TO SET RESULTS IN +;A PFEILD=30 +;SC BIT2 IS NOT TESTED-FAILURE TO SET +;BIT 2 RESULTS IN LOOPING + + AC=13 + SAVEAC (1,1) + +G2400: MOVSI AC-2,341000 ;SETUP FOR COMPARISON + MOVSI AC+1,061000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST SC3 (1) + ER5 AC+1,2401 ;POINTER FAILED + JUMPL AC+2,G2400 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO CLEAR INDIVIDUAL +;SC BITS +;PFIELD=20,10,2,1 +;SFIELD=21,11,3,2 +;FAILURE TO CLEAR SC BITS 4,5,7 +;OR 8 RESULTS IN A PFIELD=43 +;FAILURE TO CLEAR SC BITS 3 OR 6 +;WILL NOT BE APPARENT + + AC=11 + SAVEAC (1,1) + + ;TEST SC4 CLEARING +G2600: MOVSI AC-2,232100 ;SETUP FOR COMPARISON + MOVSI AC+1,202100 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=43 + ER5 AC+1,2601 ;POINTER FAILED + JUMPL AC+2,G2600 ;LOOP ON ERROR SWITCH + + ;TEST SC5 CLEARING +G2700: MOVSI AC-2,331100 ;SETUP FOR COMPARISON + MOVSI AC+1,101100 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=45 + ER5 AC+1,2701 ;POINTER FAILED + JUMPL AC+2,G2700 ;LOOP ON ERROR SWITCH + + ;TEST SC 7 CLEARING +G3000: MOVSI AC-2,410300 ;SETUP FOR COMPARISON + MOVSI AC+1,020300 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=43 + ER5 AC+1,3001 ;POINTER FAILED + JUMPL AC+2,G3000 ;LOOP ON ERROR SWITCH + + ;TEST SC8 CLEARING +G3100: MOVSI AC-2,420200 ;SETUP FOR COMPARISON + MOVSI AC+1,010200 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=43 + ER5 AC+1,3101 ;POINTER FAILED + JUMPL AC+2,G3100 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO INCREMENT ADDRESS +;FIELD OF PNTR WORD +;PFIELD=6 +;SFIELD=10 +;LOSS OF THE SFIELD AND AN ADDRESS=1 + + AC=12 + SAVEAC (1,1) + +G3200: MOVSI AC-2,341000 ;SETUP AC-2 + AOJ AC-2,.+1 ;FOR COMPARISON + MOVSI AC+1,061000 ;SETUP PNTR WORD + IBP ,&17 ;INC PNTR WORD + CAME AC+1,&17 ;TEST FOR ERROR PNTR + ER5 AC+1,3201 ;POINTER FAILED + JUMPL AC+2,G3200 ;LOOP ON ERROR SWITCH + +;INST-IBP +;TEST ABILITY TO INCREMENT +;ADDRESS FIELD OF PNTR WORD +;PFIELD=6 +;SFIELD=10 + + AC=11 + SAVEAC (1,1) + +G3300: HRLI AC-2,341000 ;SETUP AC-2 FOR + HRRI AC-2,&17 ;COMPARISON + HRLI AC+1,061000 ;SETUP BYTE + HRRI AC+1,AC&17 ;PNTR WORD + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST ADDRESS + ER5 AC+1,3301 ;POINTER FAILED + JUMPL AC+2,G3300 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO FCE (2ND PART) +;FAILURE TO FCE RESULTS IN LOSS +;OF DATA WORD +;PFIELD=0 +;SFIELD=6 +;BYTE WORD=0,777777 +;DEST AC=0 + + AC=14 + SAVEAC (1,1) + +G3400: HRLI AC+1,000600 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 5,-1 ;SETUP BYTE WORD + SETZ AC, ;CLEAR DEST AC + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST DEST AC=0,,77 + ER3 AC,3401 ;AC FAILED + JUMPL AC+2,G3400 ;LOOP ON ERROR SWITCH + +;INST-LDB +;P FIELD =14 +;S FIELD =6 +;BYTE WORD =-1 + + AC=11 + SAVEAC (1,1) + +G3500: HRRZI AC-2,77 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR + SETO ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,77 + ER3 AC,3501 ;AC FAILED + JUMPL AC+2,G3500 ;LOOP ON ERROR SWITCH +;INST-LDB +;PFIELD=14 +;SFIELD=6 +;BYTE WORD = 777777 + + AC=6 + SAVEAC (1,1) + +G3600: MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI ,-1 ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST DEST AC + ER3 AC,3601 ;AC FAILED + JUMPL AC+2,G3600 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO TRANSFER 2'S COMP +;SFIELD +;TEST ABILITY TO SET INDIVIDUAL +;BITS OF SC +;PFIELD=0 +;SFIELD=40,20,10,4,2,1 +;BYTE WORD=-1 + + AC=5 + SAVEAC (1,1) + ;TEST SC 1,2,3 SET +G3700: HRLOI AC-2,37777 ;SETUP FOR COMPARISON + MOVSI AC+1,4000 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=37777,,777777 + ER3 AC,3701 ;AC FAILED + JUMPL AC+2,G3700 ;LOOP ON ERROR SWITCH + + ;TEST SC4 SET +G4000: HRRZI AC-2,177777 ;SETUP FOR COMPARISON + MOVSI AC+1,2000 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,177777 + ER3 AC,4001 ;AC FAILED + JUMPL AC+2,G4000 ;LOOP ON ERROR SWITCH + + ;TEST SC5 SET +G4100: MOVEI AC-2,377 ;SETUP FOR COMPARISON + MOVSI AC+1,1000 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE = 0,,377 + ER3 AC,4101 ;AC FAILED + JUMPL AC+2,G4100 ;LOOP ON ERROR SWITCH + + ;TEST SC6 SET +G4200: MOVEI AC-2,17 ;SETUP FOR COMPARISON + MOVSI AC+1,400 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,17 + ER3 AC,4201 ;AC FAILED + JUMPL AC+2,G4200 ;LOOP ON ERROR SWITCH + ;TEST SC 7 SET +G4300: MOVEI AC-2,3 ;SETUP FOR COMPARISON + MOVSI AC+1,200 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,3 + ER3 AC,4301 ;AC FAILED + JUMPL AC+2,G4300 ;LOOP ON ERROR SWITCH + + ;TEST SC 8 SET +G4400: MOVEI AC-2,1 ;SETUP FOR COMPARISON + MOVSI AC+1,100 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,1 + ER3 AC,4401 ;AC FAILED + JUMPL AC+2,G4400 ;LOOP ON ERROR SWITCH +;INST-LDB +;PFIELD=6 +;SFIELD=14 +;BYTE WORD=000000007700 + + AC=14 + SAVEAC (1,1) + +G4600: MOVEI AC-2,77 ;SETUP FOR COMPARISON + MOVSI AC+1,061400 ;SETUP PNTR WORD + MOVEI ,7700 ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE =77 + ER3 AC,4601 ;AC FAILED + JUMPL AC+2,G4600 ;LOOP ON ERROR SWITCH +;INST-LDB +;PFIELD=6 +;SFIELD=6 +;BYTEWORD=-1 + + AC=13 + SAVEAC (1,1) + +G4700: MOVEI AC-2,77 ;SETUP FOR COMPARISON + MOVSI AC+1,060600 ;SETUP PNTR + SETO ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,77 + ER3 AC,4701 ;AC FAILED + JUMPL AC+2,G4700 ;LOOP ON ERROR SWITCH + +;INST-LDB +;TEST IR 134-7 +;PFIELD=14 +;SFIELD=6 +;BYTE WORD=-1 +;AN ERROR WILL OCCUR IF PC IS INCREMENTED +;TWICE DURING EXECUTION OF LDB + + AC=10 + SAVEAC (1,1) + +G5000: MOVSI AC+1,140600 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + JRST ,.+2 ;PC+1 INH ASSERTED + ER3 AC,5001 ;AC FAILED + JUMPL AC+2,G5000 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO CLEAR BYF6 +;PFIELD=14 +;SFIELD=6 +;BYTE WORD=-1 +;AN ERROR WILL OCCUR IF BYF6(1) WHEN STORED +;BY JSP + + AC=7 + SAVEAC (1,1) + +G5100: MOVSI AC+1,140600 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + JSP AC,.+1 ;STORE FLAGS + TLNE AC,020000 ;TEST BIT 4 + ER3 AC,5101 ;AC FAILED + JUMPL AC+2,G5100 ;LOOP ON ERROR SWITCH + +;INST-LDB +;TEST ABILITY TO DEFER (INDIRECT) BYTE +;PNTR ADDRESS +;FAILURE TO INDIRECTLY ADDRESS BYTE +;PNTR RESULTS IN AN ERROR BYTE +;PFIELD=0 +;SFIELD=6 +;ERROR BYTE=14 +;CORRECT BYTE=44 +;AN ERROR WILL OCCUR IF DEST AC=14 +;FOLLOWING LOAD BYTE INDIRECTLY ADDRESSED + + AC=6 + SAVEAC (1,1) + +G5200: MOVSI AC+1,600 ;SETUP PNTR WORD + HRLI ,600 ;SETUP INDIRECT ADDRESS + HRRI ,14 ;PNTR WORD (AC0) + MOVEI AC+6,44 ;SETUP CORR BYTE WORD + LDB AC,@&17 ;LOAD BYTE INDIRECTLY + CAIE AC,44 ;TEST FOR CORR BYTE + ER3 AC,5201 ;INDIRECT ADDRESSING FAILED + JUMPL AC+2,G5200 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST IR RT CLR AT6 +;FURTHER TEST OF IR 134-7 +;TEST ABILITY TO CLEAR IR BITS 13-17 FOLLOWING +;DEFERRING OR INDEXING OF BYTE PNTR ADDR +;PFIELD=6 +;SFIELD=14 +;CORR BYTE WORD=222222 +;DEST AC=4 +;AN ERROR WILL OCCUR IF DEST AC +;EQUALS 5555 FOLLOWING LOAD BYTE + + AC=7 + SAVEAC (1,1) + +G5300: MOVSI AC+5,061400 ;SETUP INDEXED PNTR WORD + MOVEI AC,4 ;SETUP INDEX AC + MOVEI ,222222 ;SETUP CORR BYTE WORD + MOVEI AC-3,555555 ;SETUP CORR BYTE WORD + LDB AC,&17(AC) ;LOAD BYTE INDEXED + CAIE AC,2222 ;TEST FOR CORR BYTE + ER3 AC,5301 ;AC FAILED + JUMPL AC+2,G5300 ;LOOP ON ERROR SWITCH + +;INST-LDB +;FURTHER TEST OF IR 134-7 +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN IR14-17=0, +;NO INDEX, ERROR BYTE=55 + + AC=10 + SAVEAC (1,1) + +G5400: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 7,10 ;SETUP INDEX AC + MOVEI 5,55 ;SETUP NON INDEX BYTE WORD + MOVEI 15,77 ;SETUP INDEXED BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST BYTE=0,,77 + ER3 AC,5401 ;AC FAILED + JUMPL AC+2,G5400 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN A BYTE WORD +;ADDRESS EQUAL TO CONTENTS OF +;INDEX AC(=AC) + + AC=10 + SAVEAC (1,1) + +G5500: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + SETZB AC,5 ;CLEAR DEST AC'S + MOVEI 7,10 ;SETUP INDEX AC + MOVEI 15,77 ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST FOR BYTE + ER3 AC,5501 ;AC FAILED + JUMPL AC+2,G5500 ;LOOP ON ERROR SWITCH + +;INST-LDB +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN AN INDEX AC EQUAL +;TO INDEX AC+AC(AC7+AC10=AC17) + + AC=10 + SAVEAC (1,1) + +G5600: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 6,10 ;SETUP INDEX AC + MOVEI 15,15 ;SETUP BYTE WORD + MOVEI 16,5 ;SETUP ERROR INDEX AC + MOVEI 14,14 ;SETUP ERROR BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,15 ;TEST BYTE=15 + ER3 AC,5601 ;AC FAILED + JUMPL AC+2,G5600 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN INDEXING BY C(AC0) + + AC=10 + SAVEAC (1,1) + +G5700: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 7,10 ;SETUP INDEX AC + MOVEI 15,15 ;SETUP BYTE WORD + MOVEI ,7 ;SETUP ERROR INDEX AC + MOVEI 14,33 ;SETUP ERROR BYTE WORD + LDB AC,AC+1 ;LOAD BYTE + CAIE AC,15 ;TEST BYTE=0,,15 + ER3 AC,5701 ;AC FAILED + JUMPL AC+2,G5700 ;LOOP ON ERROR SWITCH + +;INST-ILDB +;TEST ABILITY TO ASSERT BYTE PTRINC +;P FIELD=16 +;S FIELD=6 +;FAILURE TO ASSERT MAY RESULT IN A HALT +;AT ET0 +;AN ERROR WILL OCCUR IF PNTR WORD +;EQUALS ORIGINAL FOLLOWING ILDB + + AC=5 + SAVEAC (1,1) + +G6000: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + MOVSI AC+1,160600 ;SETUP PNTR WORD + ILDB AC,&17 ;INC AND LOAD BYTE + CAME AC+1,&17 ;TEST PNTR=ORIGINAL + ER4 AC+1,6001 ;PNTR FAILED TO INCREMENT + JUMPL AC+2,G6000 ;LOOP ON ERROR SWITCH + +;INST-ILDB +;TEST LB BYTE LOAD +;TEST BYF5 SET +;P FIELD=22 +;S FIELD=22 +;BYTE WORD=000000777777 +;FAILURE RESULTS IN A BYTE EQUAL +;TO BYTE WORD. + + AC=14 + SAVEAC (1,1) + +G6100: MOVSI AC-2,002200 ;SETUP FOR COMPARISON + MOVSI AC+1,222200 ;SETUP PNTR WORD + MOVEI ,-1 ;SETUP BYTE WORD + ILDB AC,&17 ;INC AND LOAD BYTE + CAME ,AC ;TEST BYTE=000000777777 + ER12 ,6101 ;BYTE WORD FAILED + CAME AC+1,&17 ;TEST PNTR WORD + ER5 AC+1,6101 ;POINTER FAILED + JUMPL AC+2,G6100 ;LOOP ON ERROR SWITCH + +;INST-ILDB +;P FIELD=22 +;S FIELD=6 +;BYTE WORD=0000007700000 +;FAILURE RESULTS IN A BYTE +;=0 + + AC=13 + SAVEAC (1,1) + +G6200: MOVSI AC-2,140600 ;SETUP FOR COMPARISON + MOVSI AC+1,220600 ;SETUP PNTR WORD + MOVEI ,770000 ;SETUP BYTE WORD (AC0) + ILDB AC,&17 ;INC AND LOAD BYTE + CAIE AC,77 ;TEST BYTE + ER3 AC,6201 ;AC FAILED + CAME AC+1,&17 ;TEST PNTR WORD + ER5 AC+1,6201 ;POINTER FAILED + JUMPL AC+2,G6200 ;LOOP ON ERROR SWITCH + +;INST-DPB +;TEST ABILITY TO ASSERT BYF5 SET +;P FIELD +;P=14 +;S=6 +;BYTE WORD=000000000077 +;DEST WORD=000000000000 + + AC=12 + SAVEAC (1,1) + +G6300: MOVEI AC-2,770000 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,77 ;SETUP BYTE + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST=0,,770000 + ER12 ,6301 ;BYTE W0RD FAILED + JUMPL AC+2,G6300 ;LOOP ON ERROR SWITCH + +;INST-DPB +;TEST ABILITY TO ASSERT DPBYTE DEP +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=-1 +;FAILURE OF MQ TO SHIFT RESULTS IN A +;DEPOSIT BYTE=777777777700 + + AC=7 + SAVEAC (1,1) + +G6400: HRROI AC-2,557777 ;SETUP AC-2 FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST=-1,,557777 + ER12 ,6401 ;BYTE WORD FAILED + JUMPL AC+2,G6400 ;LOOP ON ERROR SWITCH +;INST-DPB +;TEST ABILITY TO AND MASK, BYTE +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=5555 +;DEST WORD=0 +;FAILURE RESULTS IN A DEPOSIT +;BYTE=000055550000 + + AC=5 + SAVEAC (1,1) + +G7000: HRRZI AC-2,550000 ;SETUP AC-2 FOR COMPARISON + HRRI AC-2,550000 ;FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,5555 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD=0,,550000 + ER12 ,7001 ;BYTE WORD FAILED + JUMPL AC+2,G7000 ;LOOP ON ERROR SWITCH + +;INST-DPB +;P FIELD = 6 +;S FIELD = 14 +;BYTE WORD=55 +;DEST WORD = -1 +;FAILURE OF ANY ONE RESULTS IN A +;BYTE = 777777 000077 + + AC=14 + SAVEAC (1,1) + +G7100: HRROI AC-2,5577 ;SETUP FOR COMPARISON + MOVSI AC+1,061400 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST BYTE=777777 005577 + ER12 ,7101 ;BYTE WORD FAILED + JUMPL AC+2,G7100 ;LOOP ON ERROR SWITCH + +;INST-DPB +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=0 +;FAILURE RESULTS IN A DEPOSIT +;BYTE=777777557777 + + AC=13 + SAVEAC (1,1) + +G7200: HRRZI AC-2,550000 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD=0,,550000 + ER12 ,7201 ;BYTE WORD FAILED + JUMPL AC+2,G7200 ;LOOP ON ERROR SWITCH +;INST-DBP +;P FIELD=22 +;S FIELD=6 +;BYTE WORD=5555 +;DEST WORD=-1 +;FAILURE RESULTS IN A DEPOSIT +;BYTE=005455777777 + + AC=11 + SAVEAC (1,1) + +G7400: HRLOI AC-2,777755 ;SETUP FOR COMPARISON + MOVSI AC+1,220600 ;SETUP PNTR WORD + MOVEI AC,5555 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD=777755,,-1 + ER12 ,7401 ;BYTE WORD FAILED + JUMPL AC+2,G7400 ;LOOP ON ERROR SWITCH +;INST-DPB +;TEST ABILITY TO CLEAR BYF6 +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=0 +;AN ERROR WILL OCCUR IF BYF6(1) WHEN +;STORED BY JSP + + AC=7 + SAVEAC (1,1) + +G7600: MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE + JSP AC,.+1 ;STORE FLAGS + TLNE AC,020000 ;TEST BIT 4 + ER13 AC,7601 ;BYF6 FAILED TO CLEAR + JUMPL AC+2,G7600 ;LOOP ON ERROR SWITCH + +;INST-IDPB +;TEST ABILITY TO ASSERT BYTE PTRINC +;TEST ABILITY TO ASSERT DB BYTE DEP +;FAILURE TO ASSERT BYTE PTR INC +;MAY CAUSE A HALT AT ET0 +;FAILURE TO ASSERT DB BYTE DEP PREVENTS +;ARMQSHLT SCT3 (2ND PART) +;P FIELD=22 +;S FIELD=6 +;DEST WORD=0 +;BYTE WORD=77 +;AN ERROR WILL OCCUR IF BYTE PNTR +;WORD EQUALS ORIGINAL +;AN ERROR WILL OCCUR IF DEST WORD +;EQUALS BYTE WORD + + AC=5 + SAVEAC (1,1) + +G7700: MOVSI AC-2,140600 ;SETUP FOR COMPARISON + MOVSI AC+1,220600 ;SETUP PNTR WORD + MOVEI AC,77 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD (AC0) + IDPB AC,&17 ;INC AND DEPOSIT BYTE + CAME AC+1,&17 ;TEST FOR INCREMENTED PNTR + ER5 AC+1,7701 ;BYTE PTR INC FAILED + CAIE ,770000 ;TEST DEST WORD + ER12 ,7701 ;DB BYTE DEP FAILED + JUMPL AC+2,G7700 ;LOOP ON ERROR SWITCH +SUBTTL PART IB-GENERAL BYTE TEST + +;PART IA- GENERAL BYTE TEST + +;INST-IBP +;DECREASING P FIELD +;P FIELD=22,20,16,14,12 +;S FIELD=6 +;RESULTANT P FIELDS=14,12,10,6,4 +;AN ERROR WILL OCCUR ON AN +;INCORRECT INCREMENTED PNTR WORD + + AC=5 + SAVEAC (1,1) + +SN=10000 + XX=160600 + ZZ=240600 + + ;TEST IBP +G10000: REPEAT ^D5,< +SN=SN+1 + XX=XX-020000 + ZZ=ZZ-020000 + MOVSI AC-2,XX ;SETUP FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + IBP ,&17 ;INC BYTE PNTR + CAME AC+1,&17 ;TEST INC PNTR + ER5 AC+1,SN ;IBP FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-IBP +;DECREASING S FIELD +;P FIELD=22 +;S FIELD=14,12,10,6,4 +;RESULTANT P FIELDS=6,10,12,14,16 +;AN ERROR WILL OCCUR ON AN +;INCORRECT INCREMENTED PNTR WORD + + AC=14 + SAVEAC (1,1) + +SN=10100 + XX=040000 + WW=001600 + ZZ=221600 + + ;TEST IBP +G10100: REPEAT ^D5,< +SN=SN+1 + XX=XX+020000 + WW=WW-000200 + ZZ=ZZ-000200 + MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + IBP ,&17 ;INC BYTE PNTR + CAME AC+1,&17 ;TEST INC PNTR + ER5 AC+1,SN ;IBP FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + +;INST-IBP +;OVERFLOW AND INC ADDRESS +;P FIELD=0 +;S FIELD=14,12,10,6,4 +;RESULTANT P FIELDS=30,32,34,36,40 +;ADDRESS FIELD INCREMENTED BY ONE +;AN ERROR WILL OCCUR ON AN INCORRECT +;INCREMENTED PNTR WORD + + AC=13 + SAVEAC (1,1) + +SN=10200 + XX=260000 + ZZ=001600 + + ;TEST IBP +G10200: REPEAT ^D5,< +SN=SN+1 + XX=XX+020000 + ZZ=ZZ-000200 + MOVSI AC-2,XX+ZZ ;SETUP AC-2 + AOJ AC-2, ;FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + IBP ,&17 ;INC BYTE PNTR + CAME AC+1,&17 ;TEST INC PNTR + ER5 AC+1,SN ;IBP FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-LDB +;INCREASING S FIELD +;P FIELD=22 +;S FIELD=1,2,3,4,5 +;BYTE WORD=777777000000 +;AN ERROR WILL OCCUR IF AN +;IN CORRECT BYTE IS LOADED +;INTO AC + + AC=12 + SAVEAC (1,1) + +SN=10300 + XX=220000 + ZZ=0 + + ;TEST LDB +G10300: REPEAT ^D5,< +SN=SN+1 + XX=XX+000100 + ZZ=ZZ*2+1 + MOVSI AC+1,XX ;SETUP PNTR WORD + HRLZI ,-1 ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST DEST AC + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;INCREASING BYTE WORD +;INCREASING P FIELD +;P FIELD=14,17,22,25,33 +;S FIELD=3 +;BYTE WORD=000000070000 SHIFTING +;LEFT BY 3 +;AN ERROR WILL OCCUR IF DEST AC +;DIFFERS FROM 7 + + AC=11 + SAVEAC (1,1) + +SN=10400 + XX=0 + ZZ=110300 + + ;TEST LDB +G10400: REPEAT ^D5,< +SN=SN+1 + XX=XX+3 + ZZ=ZZ+030000 + MOVSI AC+1,ZZ ;SETUP PNTR WORD + MOVEI ,7000 ;SETUP BYTE WORD + ROT ,XX ;ROTATE LEFT BY 3 + LDB AC,&17 ;LOAD BYTE + CAIE AC,7 ;TEST DEST AC=7 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;VARY BYTE ADDRESS +;P FIELD=22 +;S FIELD=3 +;BYTE WORD=AC NUMBER +;BYTE PNTR ADDR=AC 6,5,4,3,2 +;AN ERROR WILL OCCUR IF C(DEST AC) +;DIFFERS FROM AC UNDER TEST + + AC=7 + SAVEAC (1,1) + +SN=10500 + ZZ=7 + + ;TEST LOAD BYTE +G10500: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ-1 + HRLI AC+1,220300 ;SETUP BYTE + HRRI AC+1,ZZ ;PNTR WORD + MOVSI ZZ,ZZ ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-LDB +;BYTE PNTR INDEXED +;P FIELD=0 +;S FIELD=3 +;BYTE WORD=PNTR WORD +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT +;AC NUMBER + + AC=10 + SAVEAC (1,1) + +SN=10600 + ZZ=0 + + ;TEST LDB INDEXED +G10600: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI ,000300 ;SETUP NON IND PNTR WORD + HRLI ZZ,000300 ;SETUP INDEXED + HRRI ZZ,ZZ ;PNTR WORD + LDB AC,(ZZ) ;LOAD BYTE INDEXED + CAIE AC,ZZ ;TEST FOR AC NUMBER + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;BYTE PNTR INDIRECTLY ADDRESSED +;P FIELD=0 +;S FIELD=3 +;BYTE WORD=PNTR WORD +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT +;AC NUMBER + + AC=7 + SAVEAC (1,1) + +SN=10700 + ZZ=0 + + ;TEST LDB INDIRECTLY ADDRESSED +G10700: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + HRRI ZZ,ZZ ;PNTR WORD + SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + CAIE AC,ZZ ;TEST FOR AC NUMBER + ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH +> +;INST-LDB +;PNTR INDEXED AND INDIRECTLY ADDRESSED +;P FIELD=0 +;S FIELD=6 +;PNTR WORD IS IN AC 12,13,14 +;BYTE WORD=PNTR WORD +;LOADED BYTE SHOULD EQUAL +;12,13,14 + + AC=10 + SAVEAC (1,1) + +SN=11000 + VV=3 + WW=6 + XX=11 + ZZ=3 + + ;TEST LDB INDEXED, INDIRECTLY ADDRESSED +G11000: REPEAT ^D3,< +SN=SN+1 + VV=VV+1 + WW=WW+1 + XX=XX+1 + ZZ=ZZ+1 + MOVEI VV,WW ;SETUP INDEX AC + MOVEI WW,XX ;SETUP INDIRECT AC + HRLI XX,000600 ;SETUP INDEXED AND + HRRI XX,XX ;INDIRECT PNTR WORD + LDB AC,@(ZZ) ;LOAD BYTE INDEXED, INDIRECTLY ADDRESSED + CAIE AC,XX ;TEST LOAD BYTE=12,13,14 + ER3 AC,SN ;LDB INDEXED, INDIRECTLY ADDRESSEDD FAILED + JUMPL AC+2,^D8 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;INDEX BYTE ADDRESS +;P FIELD=0 +;S FIELD=6 +;INDEX AC=AC7 +;BYTE WORD ADDRESS=AC 7,10,11,12,13 +;AN ERROR WILL OCCUR IF LOADED BYTE +;DIFFERS CURRENT AC + + AC=4 + SAVEAC (1,1) + +SN=11100 + ZZ=6 + + ;TEST LDB BYTE ADDR INDEXED +G11100: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI AC+1,000607 ;SETUP PNTR WORD + MOVEI AC+3,ZZ ;SETUP INDEX AC + MOVEI ZZ,ZZ ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-LDB +;BYTE INDIRECTLY ADDRESSED +;P FIELD=0 +;S FIELD=6 +;BYTE WORD ADDRESS=AC7,10,11,12,13 +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT AC + + AC=4 + SAVEAC (1,1) + +SN=11200 + ZZ=6 + + ;TEST LDB, BYTE INDIRECTLY ADDRESSED +G11200: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI AC+1,000620 ;SETUP PNTR WORD + MOVEI ,ZZ ;SETUP DEFER ADDRESS + MOVEI ZZ,ZZ ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;BYTE ADDRESS INDEXED AND INDIRECT +;P FIELD=0 +;S FIELD=6 +;BYTE ADDRESS=AC13,14,15 +;BYTE WORD=13,14,15 +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT AC + + AC=4 + SAVEAC (1,1) + +SN=11300 + XX=12 + ZZ=7 + + ;TEST LDB, BYTE ADDR INDEXED AND INDIRECT +G11300: REPEAT ^D3,< +SN=SN+1 + XX=XX+1 + ZZ=ZZ+1 + MOVSI AC+1,000627 ;SETUP PNTR WORD + MOVEI AC+3,ZZ ;SETUP INDEX AC + MOVEI ZZ,XX ;SETUP INDIRECT ADDR + MOVEI XX,XX ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,XX ;TEST BYTE=13,14,15 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH +> + +;INST-ILDB +;DECREASING P FIELD +;P FIELD=44,36,30,22,14 +;S FIELD=6 +;BYTE ADDRESS=AC0 +;AN ERROR WILL OCCUR IF AC DIFFERS +;FROM 77 + + AC=5 + SAVEAC (1,1) + +SN=11400 + XX=520600 + ZZ=0 + + ;TEST ILDB +G11400: REPEAT ^D5,< +SN=SN+1 + XX=XX-060000 + ZZ=ZZ-6 + MOVSI AC+1,XX ;SETUP PNTR WORD + MOVEI ,77 ;SETUP BYTE WORD + ROT ,ZZ ;ROTATE RIGHT + ILDB AC,&17 ;INC AND LOAD BYTE + CAIE AC,77 ;TEST AC=77 + ER3 AC,SN ;ILDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-ILDB +;INCREASING S FIELD +;CALCULATE NEW P FIELD, INCREMENT +;BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6,14,22,30,36 +;AN ERROR WILL OCCUR IF AC +;DIFFERS FROM 77 + + AC=14 + SAVEAC (1,1) + +SN=11500 + XX=0 + ZZ=0 + + ;TEST ILDB +G11500: REPEAT ^D5,< +SN=SN+1 + XX=XX+600 + ZZ=ZZ-6 + MOVSI AC+1,XX ;SETUP PNTR WORD + MOVEI 1,77 ;SETUP BYTE WORD + ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + ILDB AC,&17 ;INC AND LOAD BYTE + CAIE AC,77 ;TEST AC=77 + ER3 AC,SN ;ILDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-ILDB +;TESTING SPECIAL POINTER +;WHICH SETS AC TO ZERO +;PFIELD=20 ORIG,64 AFTER +;SFIELD=60 ORIG,60 AFTER +;AN ERROR WILL OCCUR IF AC IS NOT ZEROED + + XX=206000 + +G11600: MOVSI AC+1,XX ;SETUP PNTR WORD + SETOB 0,1 ;SETUP BYTE WORD + SETOM AC ;SETUP AC FOR TEST + ILDB AC,&17 ;THIS SHOULD ZERO AC + SKIPE AC ;TEST AC=0 + ER3 AC,11601 ;ILDB FAILED + JUMPL AC+2,G11600 ;LOOP ON ERROR SWITCH +PAGE +;INST-DPB +;INCREASING P FIELD +;P FIELD=6,14,22,30,36 +;S FIELD=6 +;BYTE WORD=55 +;AN ERROR WILL OCCUR IF DPB +;FAILS TO DEPOSIT CORRECTLY + + AC=13 + SAVEAC (1,1) + +SN=11700 + XX=0 + ZZ=000600 + + ;TEST DPB +G11700: REPEAT ^D5,< +SN=SN+1 + XX=XX+6 + ZZ=ZZ+60000 + MOVEI AC-2,55 ;SETUP AC-2 + ROT AC-2,XX ;FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + SETZ ;SETUP DEST WORD + MOVEI AC,55 ;SETUP BYTE WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD + ER12 ,SN ;DPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> + +;INST-DPB +;INCREASING P FIELD +;P FIELD = 0,6,14,22,30 +;S FIELD = 6 +;BYTE WORD=55 (SHIFTING LEFT 6 PLACES) +;AN ERROR WILL OCCUR IF DPB FAILS +;TO DEPOSIT CORRECTLY + + AC=12 + SAVEAC (1,1) + +SN=12000 + XX=0 + ZZ=-60000 + + ;TEST DPB +G12000: REPEAT ^D5,< +SN=SN+1 + XX=XX+6 + ZZ=ZZ+060000 + IFE ZZ, + MOVSI AC-2,550000 ;SETUP AC=2 + ROT AC-2,XX ;FRO COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD + ER12 ,SN ;DPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> +;INST-IDPB +;INCREASING S FIELD +;CALCULATE NEW P FIELD, INCREMENT +;BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6,14,22,30,36 +;BYTE WORD=77 +;AN ERROR WILL OCCUR IF IDPB FAILS +;TO DEPOSIT CORRECTLY + + AC=11 + SAVEAC (1,1) + +SN=12100 + XX=0 + ZZ=000000 + + ;TEST IDPB +G12100: REPEAT ^D5,< +SN=SN+1 + XX=XX-6 + ZZ=ZZ+600 + MOVEI AC-2,77 ;SETUP AC-2 + ROT AC-2,XX ;FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + MOVEI AC,77 ;SETUP BYTE WORD + SETZ 1, ;SETUP DEST WORD + IDPB AC,&17 ;INC AND DEPOSIT BYTE + CAME 1,&17 ;TEST DEST WORD + ER12 1,SN ;IDPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> +;INST-IDPB +;P FIELD=44 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=-1 +;AN ERROR WILL OCCUR IF IDPB +;FAILS TO DEPOSIT CORRECTLY + + AC=10 + SAVEAC (1,1) + +SN=12200 + ZZ=0 + +G12200: MOVSI AC+1,440600 ;SETUP PNPR WORD + ;TEST IDPB + REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ-6 + HRLI AC-2,-1 ;SETUP AC-2 + HRRI AC-2,-23 ;FOR COMPARISON + ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + MOVEI AC,55 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD (AC0) + IDPB AC,&17 ;INC AND DEPOSIT BYTE + CAME ,&17 ;TEST DEST WORD + ER12 ,SN ;IDPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> +;INST-LDB-SPECIAL CASE-S GREATER THAN 44 +;P FIELD=7 +;S FIELD=60,40 +;VERIFY THAT THE BYTE PROCESSED IS, AT MOST, 44 BITS IF S GREATER THAN 44 + + AC=13 + SAVEAC (1,1) + +SN=12210 + XX=100000 + + ;TEST LDB +G12210: REPEAT 2,< +SN=SN+1 + XX=XX-2000 + SETOB 0,2 + MOVE 1,[525252,,525377] ;SETUP BYTE WORD + SETZM AC ;CLEAR DEST WORD + MOVE AC+1,[XX,,1] ;SETUP POINTER + LDB AC,&17 ;LOAD BYTE + CAME AC,[002525,,252525] ;TEST DEST WORD + ER3 AC,SN ;LDB FAILED + CAME AC+1,[XX,,1] ;CHECK POINTER + ER4 AC+1,SN ;POINTER WAS MODIFIED + JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-DPB-SPECIAL CASE-S GREATER THAN 44 +;P FIELD=7 +;S FIELD=60,40 +;VERIFY THAT THE BYTE PROCESSED IS, AT MOST, 44 BITS IF S GREATER THAN 44 + +SN=12220 + XX=100000 + + ;TEST DPB +G12220: REPEAT 2,< +SN=SN+1 + XX=XX-2000 + SETOB 0,2 + MOVE 1,[707070,,707070] ;SETUP DEST WORD + MOVE AC,[323232,,232323] ;SETUP BYTE WORD + MOVE AC+1,[XX,,1] ;SETUP POINTER + DPB AC,&17 ;DEPOSIT BYTE + MOVEI AC-2,[ASCIZ/C(C(E)-1) FAILED/] + MOVE AC-2,SPDES ;FAILURE DESCRIPTOR + CAME 0,[-1,,-1] ;CHECK DEST WORD -1 + ER2 0,SN ;DPB FAILED + CAME 1,[646446,,464670] ;CHECK DEST WORD + ER12 1,SN ;DPB FAILED + MOVEI AC-2,[ASCIZ/C(C(E)+1) FAILED/] + MOVEM AC-2,SPDES ;FAILURE DSCRIPTOR + CAME 2,[-1,,-1] ;CHECK DEST WORD +1 + ER2 2,SN ;DPB FAILED + JUMPL AC+2,.-^D15 ;LOOP ON ERROR SWITCH +> +;VERIFY THAT THE POINTER IS NOT INCREMENTED BY "ILDB" OR "IDPB" IF 'BIS' +;IS SET; AND THAT THE SECOND PART OF THE BYTE INSTRUCTION CLEARS 'BIS' + + AC=13 + SAVEAC (1,1) + +G12300: MOVE AC+1,[220600,,AC-1] ;SETUP BYTE POINTER + MOVE AC,[707070,,707070] ;SETUP AC + MOVE AC-1,[112233,,445566] ;SETUP BYTE WORD + JRSTF @[BIS,,.+1] ;SET 'BIS' FLAG + ILDB AC,AC+1 + JSP AC-2,.+1 ;SAVE FLAGS + CAIE AC,33 ;TEST DEST WORD + ER3 AC,12301 ;INCORRECT BYTE WAS LOADED + CAME AC+1,[220600,,AC-1] ;TEST POINTER + ER4 AC+1,12301 ;POINTER WAS INCREMENTED + TLNE AC-2,BIS ;EXAMINE 'BIS' + ER13 AC-2,12301 ;'BIS' WAS NOT CLEARED + JUMPE AC+2,G12300 ;LOOP ON ERROR SWITCH + +G12400: MOVE AC+1,[220600,,AC-1] ;SET-UP BYTE POINTER + MOVE AC,[707070,,707070] ;SET-UP AC + MOVE AC-1,[112233,,445566] ;SETUP BYTE WORD + JRSTF @[BIS,,.+1] ;SET 'BIS' FLAG + IDPB AC,AC+1 + JSP AC-2,.+1 ;SAVE FLAGS + CAME AC+1,[220600,,AC-1] ;TEST POINTER + ER4 AC+1,12401 ;POINTER WAS INCREMENTED + CAME AC-1,[112270,,445566] ;TEST BYTE WORD + ER12 AC-1,12401 ;INCORRECT BYTE WAS DEPOSITED + TLNE AC-2,BIS ;EXAMINE 'BIS' + ER13 AC-2,12401 ;'BIS' WAS NOT CLEARED + JUMPL AC+2,G12400 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - IBP +;VERIFY THAT IBP WORKS WHEN THE POINTER IS IN AN AC + + AC=7 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12500: MOVSI AC-2,170600 ;SETUP POINTER + MOVSI AC-1,110600 ;RESULT FOR COMPARISON + IBP &17 ;*IBP SHOULD PLACE 110600,,0 INTO PTR + CAME AC-2,&17 ;IS PTR = 110600,,0 ? + ER5 AC-2,12501 ;POINTER FAILURE + JUMPL AC+2,G12500 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - IBP +;VERIFY THAT IBP WORKS WHEN THE POINTER IS IN CORE MEMORY + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12510: MOVSI AC-2,170600 + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVSI AC-2,110600 ;RESULT FOR COMPARISON + SETZ AC-1, ;INITIALIZE FOR RESULT + IBP BYTBLK ;*IBP SHOULD PLACE 110600,,0 INTO PTR + MOVE AC-1,BYTBLK + CAME AC-1,&17 ;IS PTR = 110600,,0 ? + ER5 AC-1,12511 ;POINTER FAILURE + JUMPL AC+2,G12510 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12600: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVEI AC,654321 ;SETUP AC + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + DPB AC,&17 ;DPB SHOULD PLACE 230702.103700 INTO BYTE WORD + CAME AC-2,&17 ;WAS POINTER MODIFIED ? + ER5 AC-2,12601 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12602 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-4,12603 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12600 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=14 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12610: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC,[230703,,603700] ;SETUP BYTE WORD + MOVEM AC,BYTBLK + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + DPB AC,&17 ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,12611 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12612 ;FAILURE - AC WAS MODIFIED + MOVE AC-5,BYTBLK + CAME AC-1,BYTBLK ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-5,12613 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12610 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY + + AC=13 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12620: MOVSI AC-2,170600 + HRRI AC-2,&17 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + DPB AC,BYTBLK ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-3,12621 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12622 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-4,12523 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+12,G12620 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + + AC=12 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12630: MOVSI AC-2,170600 + HRRI AC-2,BYTBLK+3 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + DPB AC,BYTBLK ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-4,12631 ;FAILURE - POINTER WAS MODIFIED + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-3,12632 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12633 ;FAILURE - AC WAS MODIFIED + JUMPL AC+2,G12630 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - IDPB +;VERIFY THAT IDPB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S + + AC=11 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12700: MOVSI AC-2,250600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 + HRLI AC-3,170600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVEI AC,654321 ;SETUP AC + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + IDPB AC,&17 ;IDPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY + ER5 AC-2,12701 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED + ER3 AC,12700 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-4,12703 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12700 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - IDPB +;VERIFY THAT DPB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=10 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12710: MOVSI AC-2,250600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 + HRLI AC-3,170600 ;POINTER FOR COMPARISON + MOVE AC,[230703,,603700] ;SETUP BYTE WORD + MOVEM AC,BYTBLK + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + IDPB AC,&17 ;IDPB SHOULD PLACE 230702,,103700 INTO + ;BYTE WORD AND INCREMENT POINTER + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTED + ER12 AC-2,12713 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12710 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - IDPB +;VERIFY THAT IDPB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY + + AC=7 + SAVEAC (1,1) + + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12720: MOVSI AC-2,250600 + HRRI AC-2,&17 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,170600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;;SETUP AC + IDPB AC,BYTBLK ;IDPB SHOULD PLACE 230702,,103700 INTO + ;BYTE WORD AND INCREMENT POINTER + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY + ER5 AC-3,12721 ;FAILURE - POINTER WAS NOT INCREMENTED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12722 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-4,12723 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12720 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - IDPB +;VERIFY THAT IDPB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12730: MOVSI AC-2,250600 + HRRI AC-2,BYTBLK+3 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,170600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + IDPB AC,BYTBLK ;IDPB SHOULD PLACE 230702,,103700 INTO + ;BYTE WORD AND INCREMENT POINTER + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-4,12731 ;FAILURE - POINTER WAS MODIFIED + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-3,12732 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED + ER3 AC,12733 ;FAILURE - AC WAS MODIFIED + JUMPL AC+2,G12730 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13000: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + MOVE AC-1,&17 ;BYTE WORD FOR COMPARISON + LDB AC,&17 ;LDB SHOULD PLACE 0,,36 INTO THE AC + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13001 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13002 ;FAILURE - BYTE NOT LOADED CORRECTLY. + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13003 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13000 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=14 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13010: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + MOVEM AC-1,BYTBLK ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + LDB AC,&17 ;LDB SHOULD PLACE 0,,36 INTO THE AC + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13011 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13012 ;FAILURE - BYTE NOT LOADED CORRECTLY + MOVE AC-5,BYTBLK + CAME AC-1,BYTBLK ;WAS BYTE WORD MODIFIED? + ER12 AC-5,13013 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13010 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY. + + AC=13 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13020: MOVSI AC-2,170600 + HRRI AC-2,&17 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC, ;SETUP AC + LDB AC,BYTBLK ;LDB SHOULD PLACE 20,,36 INTO THE AC + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-3,13021 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13022 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13023 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13020 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY. + + AC=12 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13030: MOVSI AC-2,170600 + HRRI AC-2,BYTBLK+3 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC, ;SETUP AC + LDB AC,BYTBLK ;LDB SHOULD PLACE 20,,36 INTO THE AC + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-4,13031 ;FAILURE - POINTER WAS MODIFIED + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE WORD MODIFIED? + ER12 AC-3,13032 ;FAILURE - BYTE WORD WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13033 ;FAILURE - BYTE NOT LOADED CORRECTLY + JUMPL AC+2,G13030 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S. + + AC=11 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13100: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 + HRLI AC-3,110600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + MOVE AC-1,&17 ;BYTE WORD FOR COMPARISON + ILDB AC,&17 ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT POINTER + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-2,3101 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13102 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13103 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13100 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=10 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13110: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 + HRLI AC-3,110600 ;POINTER FOR COMPARISON + MOVE AC-1,[230703,,603700] ;BYTEWORD FOR COMPARISON + MOVEM AC,BYTBLK ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + ILDB AC,&17 ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT POINTER + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-2,13111 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13012 ;FAILURE - BYTE NOT LOADED CORRECTLY + MOVE AC-5,BYTBLK + CAME AC-1,BYTBLK ;WAS BYTE WORD MODIFIED? + ER12 AC-5,13113 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13110 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY + + AC=7 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13120: MOVSI AC-2,170600 + HRRI AC-2,&17 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,110600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC ;SETUP AC + ILDB AC,BYTBLK ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT POINTER + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-3,13121 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13122 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13123 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13120 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13130: MOVSI AC-2,170600 + HRRI AC-2,BYTBLK+3 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,110600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC, ;SETUP AC + ILDB AC,BYTBLK ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT THE POINTER + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-4,13131 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE WORD MODIFIED? + ER12 AC-3,13132 ;FAILURE - BYTE WORD WAS MODIFIED + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13133 ;FAILURE - BYTE NOT LOADED CORRECTLY + JUMPL AC+2,G13130 ;LOOP ON ERROR SWITCH +;TEST LDB WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD BE CLEARED + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13200: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + LDB AC,&17 ;LDB SHOULD CLEAR THE AC + CAIE AC,0 ;WAS AC CLEARED? + ER3 AC,13201 ;FAILURE - AC WAS NOT CLEARED + CAIE AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13202 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13203 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13200 ;LOOP ON ERROR SWITCH + +;TEST ILDB WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD BE CLEARED + + AC=14 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13210: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + ILDB AC,&17 ;ILDB SHOULD CLEAR THE AC + CAIE AC,0 ;WAS AC CLEARED + ER3 AC,13211 ;FAILURE - AC WAS NOT CLEARED + CAIE AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13212 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13213 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13210 ;LOOP ON ERROR SWITCH +;TEST DPB WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD NOT BE AFFECTED + + AC=13 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13220: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + DPB AC,&17 ;DPB SHOULD NOT MODIFY ANYTHING + CAME AC,[-1] ;WAS AC MODIFIED? + ER3 AC,13221 ;FAILURE - AC WAS MODIFIED + CAIE AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13222 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13223 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13220 ;LOOP ON ERROR SWITCH + +;TEST IDPB WHEN SIZE OF BYTE IS ZERO BITS +;TITE AC SHOULD NOT BE AFFECTED + + AC=12 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13230: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + IDPB AC,&17 ;IDPB SHOULD NOT MODIFY ANYTHING + CAME AC,[-1] ;WAS AC MODIFIED? + ER3 AC,13231 ;FAILURE - AC WAS MODIFIED + CAIE AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13232 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13233 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13230 ;LOOP ON ERROR SWITCH +;TEST IBP WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD NOT BE AFFECTED + + AC=11 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13240: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + SKIPN KLFLG + IBP AC,&17 ;IBP SHOULD NOT MODIFY ANYTHING + SKIPE KLFLG + IBP 0,&17 ;KL10, DON'T DO ADJBP ! + CAME AC,[-1] ;WAS AC MODIFIED? + ER3 AC,13241 ;FAILURE - AC WAS MODIFIED + CAIE AC-2,&17 ;WASPOINTER MODIFIED? + ER5 AC-2,13242 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13243 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13240 ;LOOP ON ERROR SWITCH +;TEST LDB WHEN SIZE OF BYTE IS ONE BIT + + AC=10 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13300: MOVSI AC-2,430100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,0 ;SETUP AC + HRLZI AC-4,-1 ;SETUP BYTE WORD + MOVE AC-3,&17 ;BYTE OWRD FOR COMPARISON + LDB AC,&17 ;LDB SHOULD PLACE 0,,1 INTO THE AC + CAIE AC,1 ;LOOP ON ERROR SWITCH + ER3 AC,13301 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13302 ;FAILURE POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13303 ;FAILURE - BYTE OWRD WAS MODIFIED + JUMPL AC+2,G13300 ;LOOP ON ERROR SWITCH + +;TEST LDB WHEN SIZE OF BYTE IS ONE BIT + + AC=7 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13310: MOVSI AC-2,100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,0 ;SETUP AC + HRLOI AC-4,0 ;SETUP BYTE WORD + MOVE AC-3,&17 ;BYTE WORD FOR COMPARISON + LDB AC,&17 ;LDB SHOULD PLACE 0,,1 INTO THE AC + CAIE AC,1 ;LOOP ON ERROR SWITCH + ER3 AC,13311 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13312 ;FAILURE - POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13313 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13310 ;LOOP ON ERROR SWITCH +;TEST DPB WHEN SIZE OF BYTE IS ONE BIT + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13320: MOVSI AC-2,430100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,76 ;SETUP AC + MOVEM AC,&17 ;AC FOR COMPARISON + SETO AC-4, ;SETUP BYTE WORD + MOVE AC-3,[377777,,-1] ;BYTE WORD FOR COMPARISON + DPB AC,&17 ;DPB SHOULD PLACE 377777,,-1 INTO BYTE WORD + CAME AC,&17 ;WAS AC MODIFIED? + ER3 AC,13321 ;FAILURE - AC WAS MODIFIED + CAME AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13322 ;FAILURE - POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-4,13323 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G13320 ;LOOP ON ERROR SWITCH + +;TEST DPB WHEN SIZE OF BYTE IS ONE BIT + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13330: MOVSI AC-2,100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,76 ;SETUP AC + MOVEM AC,&17 ;AC FOR COMPARISON + SETO AC-4, ;SETUP BYTE WORD + MOVE AC-3,[-2] ;BYTE WORD FOR COMPARISON + DPB AC,&17 ;DPB SHOULD PLACE -1,,-2 INTO BYTE WORD + CAME AC,&17 ;WAS AC MODIFIED + ER3 AC,13331 ;FAILURE - AC WAS MODIFIED + CAME AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13332 ;FAILURE - POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-4,13333 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G13330 ;LOOP ON ERROR SWITCH +;TEST IBP WHEN S IS GREATER THAN P AND THE ADDRESS FIELD OF THE POINTER IS 777777 +;IBP SHOULD CAUSE THE ADDRESS FIELD TO CLEAR AND P SHOULD BECOME 44-S + + AC=4 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13400: HRLOI AC-2,000100 ;SETUP POINTER + HRLZI AC-3,430101 ;RESULT FOR COMPARISON (KA) + IBP &17 ;IBP SHOULD PLACE 430100,,0 INTO PTR + CAME AC-2,&17 ;PASS IF POINTER UPATED CORRECTLY + ER5 AC-2,13400 ;POINTER NOT UPDATED CORRECTLY + JUMPL AC+2,G13400 ;LOOP ON ERROR SWITCH +SUBTTL PART II - GENERAL BLOCK TRANSFER TEST + + MOVEI [ASCIZ/BLT FAILED/] + MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTOR + +;VERFIY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ZEROS +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND WITHIN THE AC ADDRESS RANGE. + AC=7 + SAVEAC (1,1) +SN=22100 + SRCE=&17 ;SOURCE BLOCK=AC-6 + DEST=&17 ;DESTINATION BLOCK=AC-6 + SIZ=1 ;BLOCK SIZE = 1 OWRD + +G22100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETOB SRCE-1,SRCE+1 ;PRELOAD SRCE-1 AND SRCE+1 WITH ONES + SETZM SRCE ;LOAD SRCE WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD CLEAR DEST BLOCK +SN=SN+1 + CAME DEST-1,[-1] ;WAS DEST-1 CLOBBERRED? + ER2 DEST-1,SN ;DEST -1 WAS CLOBBERRED +SN=SN+1 + SKIPE DEST ;DID BLT LOAD DEST FROM SRCE? + ER2 DEST,SN ;FAIL IF C(DEST) NON-ZERO +SN=SN+1 + CAME DEST+1,[-1] ;WAS DEST+1 CLOBBERRED? + ER2 DEST+1,SN ;DEST +1 WAS CLOBBERRED + JUMPL AC+2,G22100 ;LOOP ON ERROR SWITCH +PAGE +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ONES +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND WITHIN THE AC ADDRESS RANGE. + AC=14 + SAVEAC (1,1) +SN=22200 + SRCE=&17 ;SOURCE BLOCK = AC-6 + DEST=&17 ;DESTINATION BLOCK = AC-6 + SIZ=1 ;BLOCK = 1 WORD + +G22200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETZB SRCE-1,SRCE+1 ;PRELOAD SRCE-1 AND SRCE+1 WITH ZEROS + SETOM SRCE ;LOAD SRCE WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DEST WITH ONES +SN=SN+1 + SKIPE DEST-1 ;WAS DEST-1 CLOBBERRED? + ER2 DEST-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + CAME DEST,[-1] ;DID BLT LOAD DEST FROM SRCE? + ER2 DEST,SN ;FAIL IF C(DEST) NOT ALL ONES +SN=SN+1 + SKIPE DEST+1 ;WAS DEST+1 CLOBBERRED? + ER2 DEST+1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+2,G22200 ;LOOP ON ERROR SWITCH +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF DATA +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND WITHIN THE AC ADDRESS RANGE. + + AC=14 + SAVEAC (1,1) +SN=22300 + SRCE=&17 ;SOURCE BLOCK = AC-6 + DEST=&17 ;DESTINATION BLOCK = AC-6 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF ARCE AND DEST + SETZB SRCE-1,SRCE+1 ;CLEAR SRCE-1 AND SRCE+1 + MOVE SRCE,[230703,,603700] ;PRELOAD SOURCE BLOCK + BLT AC,DEST+SIZ-1 ;*BLT SHOULD PLACE C(SRCE) INTO DEST +SN=SN+1 + SKIPE DEST-1 ;WAS DEST-1 CLOBBERRED? + ER2 DEST-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + CAME DEST,[230703,,603700] ;DID BLT LOAD DEST FROM SRCE + ER2 DEST,SN ;FAIL IF C(DEST) NOT 230703,,603700 +SN=SN+1 + SKIPE DEST+1 ;WAS DEST+1 CLOBBERRED? + ER2 DEST+1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+2,G22300 ;LOOP ON ERROR SWITCH +PAGE +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ZEROS +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND BEYOND THE AC ADDRESS RANGE. + AC=14 + SAVEAC (1,1) +SN=22400 + SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETOM SRCE-1 ;PRELOAD SRCE-1 WITH ONES + SETZM SRCE ;LOAD SRCE WITH ZEROS + SETOM SRCE+1 ;PRELOAD SRCE+1 WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD CLEAR DEST BLOCK +SN=SN+1 + MOVE AC-1,DEST-1 + CAME AC-1,[-1] ;WAS DEST-1 CLOBBERRED? + ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + MOVE AC-1,DEST + SKIPE AC-1 ;DID BLT LOAD DEST FROM SRCE? + ER2 AC-1,SN ;FAIL IF C(DEST) NOT ZERO +SN=SN+1 + MOVE AC-1,DEST+1 + CAME AC-1,[-1] ;WAS DEST+1 CLOBBERRED? + ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+1,G22400 ;LOOP ON ERROR SWITCH +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ONES +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND BEYOND THE AC ADDRESS RANGE. + + AC=13 + SAVEAC (1,1) +SN=22500 + SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETZM SRCE-1 ;PRELOAD SRCE-1 WITH ZEROS + SETOM SRCE ;LOAD SRCE WITH ONES + SETZM SRCE+1 ;PRELOAD SRCE+1 WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DEST BLOCK WITH ONES +SN=SN+1 + MOVE AC-1,DEST-1 + SKIPE AC-1 ;WAS DEST-1 CLOBBERRED? + ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + MOVE AC-1,DEST + CAME AC-1,[-1] ;DID BLT LOAD DEST FROM SRCE? + ER2 AC-1,SN ;FAIL IF C(DEST) NOT ALL ONES +SN=SN+1 + MOVE AC-1,DEST+1 + SKIPE AC-1 ;WAS DEST+1 CLOBBERRED? + ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+2,G22500 ;LOOP ON ERROR SWITCH +PAGE +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF DATA +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND BEYOND THE AC ADDRESS RANGE. + + AC=12 + SAVEAC (1,1) +SN=22600 + SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETZM SRCE-1 ;PRELOAD SRCE-1 WITH ZEROS + MOVE AC+1,[230703,,603700] ;LOAD SRCE BLOCK + MOVEM AC+1,SRCE + SETZM SRCE+1 ;PRELOAD SRCE+1 WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD PLACE C(SRCE) INTO DEST +SN=SN+1 + MOVE AC-1,DEST-1 + SKIPE AC-1 ;WAS DEST-1 CLOBBERRED? + ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + MOVE AC-1,DEST + CAME AC-1,[230703,,603700] ;DID BLT LOAD DEST FROM SRCE? + ER2 AC-1,SN ;FAIL IF C(DEST) NOT 230703,,603700 +SN=SN+1 + MOVE AC-1,DEST+1 + SKIPE AC-1 ;WAS DEST+1 CLOBBERRED? + ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+1,G22600 ;LOOP ON ERROR SWITCH +;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + + BLTM1 (22700,14,<&17>,<&17>,0) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + + BLTM1 (23000,13,<&17>,<&17>,-1) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + + BLTM1 (23100,12,<&17>,<&17>,<230703,,603700>) +PAGE +;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + + BLTM1 (23200,14,<&17>,,0) +PAGE +;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + + BLTM1 (23300,13,<&17>,,-1) +PAGE +;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + + BLTM1 (23400,12,<&17>,,<230703,,603700>) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + + BLTM1 (23500,11,,,0) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + + BLTM1 (23600,10,,,-1) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + + BLTM1 (23700,7,,,<230703,,603700>) +PAGE +;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + + BLTM1 (24000,14,,<&17>,0) +PAGE +;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + + BLTM1 (24100,13,,<&17>,-1) +PAGE +;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + + BLTM1 (24200,12,,<&17>,<230703,,603700>) +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - ZEROS + + AC=14 + SAVEAC (1,1) + +SN=20100 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF SOURCE + ;AND DESTINATION BLOCKS + SETOB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF + ;SOURCE BLOCK +1 WITH ONES + SETZB SRCE,SRCE+1 ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH ZEROS + SETZB SRCE+2,SRCE+3 + SETZM SRCE+4 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + SKIPE DEST ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+1 ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+2 ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+3 ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+4 ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20100 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - ONES + + AC=14 + SAVEAC (1,1) + +SN=20200 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF SOURCE + ;AND DESTINATION BLOCKS + SETZB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF SOURCE + ;BLOCK +1 WITH ZEROS + SETOB SRCE,SRCE+1 ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH ONES + SETOB SRCE+2,SRCE+3 + SETOM SRCE+4 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + SKIPE DEST-1 ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[-1,,-1] ;WAS FIRST WORD OF DESTINATION BLOCK LOAED CORRECTLY + ;FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[-1,,-1] ;WAS SECOND WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[-1,,-1] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[-1,,-1] ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[-1,,-1] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+SIZ ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20200 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - SINGLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=20300 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF SOURCE + ;BLOCK +1 WITH ONES + MOVE SRCE,[230703,,603700] ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH + ;230703,,603700 + MOVE SRCE+1,[230703,,603700] + MOVE SRCE+2,[230703,,603700] + MOVE SRCE+3,[230703,,603700] + MOVE SRCE+4,[230703,,603700] + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[230703,,603700] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[230703,,603700] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[230703,,603700] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[230703,,603700] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[230703,,603700] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;NOT LOADED CORRECTLY FROM SOURCE + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20300 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=20400 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + ;OF SOURCE BLOCK WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170360] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170360 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[036074,,170360] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20400 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + ;- NON-AC RANGE - ZEROS + + AC=13 + SAVEAC (1,1) + +SN=20500 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH ONES + SETZM SRCE ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK WITH + ;ZEROS + SETZM SRCE+1 + SETZM SRCE+2 + SETZM SRCE+3 + SETZM SRCE+4 + SETOM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + SKIPE &17 ;WAS FIRST WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + SKIPE &17 ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + SKIPE &17 ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + SKIPE &17 ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + SKIPE &17 ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G20500 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- NON-AC RANGE - ONES + + AC=12 + SAVEAC (1,1) + +SN=20600 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETZM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH ZEROS + SETOM SRCE ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK WITH + ;ONES + SETOM SRCE+1 + SETOM SRCE+2 + SETOM SRCE+3 + SETOM SRCE+4 + SETZM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + SKIPE &17 ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[-1,,-1] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[-1,,-1] ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[-1,,-1] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[-1,,-1] ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[-1,,-1] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + SKIPE &17 ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G20600 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- NON-AC RANGE - SINGLE PATTERN + + AC=11 + SAVEAC (1,1) + +SN=20700 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20700: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH ONES + MOVE [230703,,603700] + MOVEM SRCE ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH 230703,,603700 + MOVEM SRCE+1 + MOVEM SRCE+2 + MOVEM SRCE+3 + MOVEM SRCE+4 + SETOM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[230703,,603700] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[230703,,603700] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[230703,,603700] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[230703,,603700] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FOURTH WORD OF DESTINATION BLOCK NOT LOADED CORRECTLY + ;FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[230703,,603700] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC+2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G20700 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- NON-AC RANGE - MULTIPLE PATTERN + + AC=10 + SAVEAC (1,1) + +SN=21000 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21000: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE [230703,,603700] + MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH 230703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,631463] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170360] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170360 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[036074,,170360] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21000 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS MINUS ONE - AC RANGE - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21100 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS= &17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH ONES + MOVE DEST,[230703,,603700] ;PRELOAD FIRST WORD OF DESTINATION BLOCK + ;WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE + +SN=SN+1 + CAME DEST+3,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION + ;BLOCK LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[017407,,603701] ;WAS LAST WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[017407,,603701] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21100 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS MINUS ONE - NON-AC RANGE - MULTIPLE PATTERN + + AC=6 + SAVEAC (1,1) + +SN=21200 + SRCE=BLTBLK+2 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+2 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS= BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH ONES + MOVE [230703,,603700] + MOVEM DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK + ;WITH 230703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,631463] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170630] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS MINUS ONE - NON-AC RANGE - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[017407,,603701] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[017407,,603701] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED +SN=SN+1 + MOVE AC-2,SRCE+SIZ + CAME AC-2,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK WAS + ;CLOBBERED + JUMPL AC+2,G21200 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS PLUS ONE - AC RANGE - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21300 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS= &17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + ;OF SOURCE BLOCK WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + SETOM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME SRCE-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + CAME SRCE,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 SRCE,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[252525,,252525] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[252525,,252525] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[252525,,252525] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[252525,,252525] ;WAS LAST WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G21300 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS PLUS ONE - NON-AC RANGE - MULTIPLE PATTERN + + AC=4 + SAVEAC (1,1) + +SN=21400 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+1 + DEST=BLTBLK+2 ;DESTINATION BLOCK STARTING ADDRESS= BLTBLK+2 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE [230703,,603700] + MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH 23703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,146314] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170630] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + SETOM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS PLUS ONE - NON-AC RANGE - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC-2,SRCE-1 + CAME AC-2,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + MOVE AC-2,SRCE + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 AC-2,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[252525,,252525] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[252525,,252525] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[252525,,252525] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[252525,,252525] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21400 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK +;HAS NON-AC ADDRESS- MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21500 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=^D10 ;BLOCK SIZE=10 WORDS + +G21500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + ;OF SOURCE BLOCK WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+5,[007700,,770077] ;PRELOAD SIXTH WORD OF SOURCE BLOCK + ;WITH 007700,,770077 + MOVE SRCE+6,[003760,,077401] ;PRELOAD SEVENTH WORD OF SOURCE BLOCK + ;WITH 003760,,077401 + MOVE SRCE+7,[001774,,007760] ;PRELOAD EIGHTH WORD OF SOURCE BLOCK + ;WITH 001774,,007760 + MOVE SRCE+^D8,[000777,,000777] ;PRELOAD NINTH WORD OF SOURCE BLOCK + ;WITH 000777,,000777 + MOVE SRCE+^D9,[000377,,600077] ;PRELOAD TENTH WORD OF SOURCE BLOCK + ;WITH 000377,,600077 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + MOVEM GSVAC0# + HRROI DEST-1 + MOVEM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH DEST-1 + HRROI DEST + MOVEM DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK WITH DEST + HRROI DEST+1 + MOVEM DEST+1 ;PRELOAD SECOND WORD OF DESTINATION BLOCK WITH DEST+1 + HRROI DEST+2 + MOVEM DEST+2 ;PRELOAD THIRD WORD OF DESTINATION BLOCK WITH DEST+2 + HRROI DEST+3 + MOVEM DEST+3 ;PRELOAD FOURTH WORD OF DESTINATION BLOCK WITH DEST+3 + HRROI DEST+4 + MOVEM DEST+4 ;PRELOAD FIFTH WORD OF DESTINATION BLOCK WITH DEST+4 + HRROI DEST+5 + MOVEM DEST+5 ;PRELOAD SIXTH WORD OF DESTINATION BLOCK WITH DEST+5 + HRROI DEST+6 + MOVEM DEST+6 ;PRELOAD SEVENTH WORD OF DESTINATION BLOCK WITH DEST+6 + HRROI DEST+7 + MOVEM DEST+7 ;PRELOAD EIGHTH WORD OF DESTINATION BLOCK WITH DEST+7 + HRROI DEST+^D8 + MOVEM DEST+^D8 ;PRELOAD NINTH WORD OF DESTINATION BLOCK WITH DEST+8 + HRROI DEST+^D9 + MOVEM DEST+^D9 ;PRELOAD TENTH WORD OF DESTINATION BLOCK WITH DEST+9 + HRROI DEST+SIZ + MOVEM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WITH DEST+SIZ + MOVE GSVAC0 + + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK +;HAS NON-AC ADDRESS- MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + CAME SRCE-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + CAME SRCE,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 SRCE,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+1,[146314,,631463] ;WAS SECOND WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+1,SN ;FAIL IF SECOND WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+2,[070707,,070707] ;WAS THIRD WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+2,SN ;FAIL IF THIRD WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+3,[036074,,170630] ;WAS FOURTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+3,SN ;FAIL IF FOURTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+4,[017407,,603701] ;WAS FIFTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+4,SN ;FAIL IF FIFTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+5,[007700,,770077] ;WAS SIXTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+5,SN ;FAIL IF SIXTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+6,[003760,,077401] ;WAS SEVENTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+6,SN ;FAIL IF SEVENTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+7,[001774,,007760] ;WAS EIGHTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+7,SN ;FAIL IF EIGHTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+^D8,[000777,,000777] ;WAS NINTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+^D8,SN ;FAIL IF NINTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+^D9,[000377,,600077] ;WAS LAST WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+^D9,SN ;FAIL IF LAST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK +;HAS NON-AC ADDRESS- MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC+1,DEST-1 + CAME AC+1,[-1,,DEST-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC+1,DEST + CAME AC+1,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+1 + CAME AC+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+2 + CAME AC+1,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+3 + CAME AC+1,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+4 + CAME AC+1,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+5 + CAME AC+1,[007700,,770077] ;WAS SIXTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF SIXTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+6 + CAME AC+1,[003760,,077401] ;WAS SEVENTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF SEVENTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+7 + CAME AC+1,[001774,,007760] ;WAS EIGHTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF EIGHTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+^D8 + CAME AC+1,[000777,,000777] ;WAS NINTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF NINTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+^D9 + CAME AC+1,[000377,,600077] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+SIZ + CAME AC+1,[-1,,DEST+SIZ] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21500 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK +;HAS AC ADDRESS - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21600 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+1 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + SIZ=^D10 ;BLOCK SIZE=10 WORDS + +G21600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE [230703,,603700] + MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH 230703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,631463] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170630] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD + ;FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007700,,770077] + MOVEM SRCE+5 ;PRELOAD SIXTH WORD OF SOURCE BLOCK WITH 007700,,770077 + MOVE [003760,,077401] + MOVEM SRCE+6 ;PRELOAD SEVENTH WORD OF SOURCE BLOCK + ;WITH 003760,,077401 + MOVE [001774,,007760] + MOVEM SRCE+7 ;PRELOAD EIGHTH WORD OF SOURCE BLOCK + ;WITH 001774,,007760 + MOVE [000777,,000777] + MOVEM SRCE+^D8 ;PRELOAD NINTH WORD OF SOURCE BLOCK WITH 000777,,000777 + MOVE [000377,,600077] + MOVEM SRCE+^D9 ;PRELOAD TENTH WORD OF SOURCE BLOCK WITH 000377,,600077 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + HRROI DEST-1,DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH DEST-1 + HRROI DEST,DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK WITH DEST + HRROI DEST+1,DEST+1 ;PRELOAD SECOND WORD OF DESTINATION BLOCK + ;WITH DEST+1,DEST+1 + HRROI DEST+2,DEST+2 ;PRELOAD THIRD WORD OF DESTINATION BLOCK WITH DEST+2 + HRROI DEST+3,DEST+3 ;PRELOAD FOURTH WORD OF DESTINATION BLOCK WITH DEST+3 + HRROI DEST+4,DEST+4 ;PRELOAD FIFTH WORD OF DESTINATION BLOCK WITH DEST+4 + HRROI DEST+5,DEST+5 ;PRELOAD SIXTH WORD OF DESTINATION BLOCK WITH DEST+5 + HRROI DEST+6,DEST+6 ;PRELOAD SEVENTH WORD OF DESTINATION BLOCK WITH DEST+6 + HRROI DEST+7,DEST+7 ;PRELOAD EIGHTH WORD OF DESTINATION BLOCK WITH DEST+7 + HRROI DEST+^D8,DEST+^D8 ;PRELOAD NINTH WORD OF DESTINATION BLOCK WITH DEST+8 + HRROI DEST+^D9,DEST+^D9 ;PRELOAD TENTH WORD OF DESTINATION BLOCK WITH DEST+9 + HRROI DEST+SIZ,DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WITH DEST+SIZ + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK +;HAS AC ADDRESS - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC+1,SRCE-1 + CAME AC+1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE + CAME AC+1,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 AC+1,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+1 + CAME AC+1,[146314,,631463] ;WAS SECOND WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF SECOND WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+2 + CAME AC+1,[070707,,070707] ;WAS THIRD WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF THIRD WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+3 + CAME AC+1,[036074,,170630] ;WAS FOURTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF FOURTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+4 + CAME AC+1,[017407,,603701] ;WAS FIFTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF FIFTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+5 + CAME AC+1,[007700,,770077] ;WAS SIXTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF SIXTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+6 + CAME AC+1,[003760,,077401] ;WAS SEVENTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF SEVENTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+7 + CAME AC+1,[001774,,007760] ;WAS EIGHTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF EIGTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+^D8 + CAME AC+1,[000777,,000777] ;WAS NINTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF NINTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+^D9 + CAME AC+1,[000377,,600077] ;WAS LAST WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF LAST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+SIZ + CAME AC+1,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK WAS + ;CLOBBERED +;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK +;HAS AC ADDRESS - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + CAME DEST-1,[-1,,DEST-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+5,[007700,,770077] ;WAS SIXTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+5,SN ;FAIL IF SIXTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+6,[003760,,077401] ;WAS SEVENTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+6,SN ;FAIL IF SEVENTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+7,[001774,,007760] ;WAS EIGHTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+7,SN ;FAIL IF EIGHTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+^D8,[000777,,000777] ;WAS NINTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+^D8,SN ;FAIL IF NINTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+^D9,[000377,,600077] ;WAS LAST WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+^D9,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,DEST+SIZ] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G21600 ;LOOP ON ERROR SWITCH +;TEST BLT WITH 'E' LESS THAN RH(AC) +;SUCH THAT THE BLT INSTR. TRANSFERS ONLY ONE WORD, THEN STOPS. + + AC=10 + SAVEAC (1,1) + SN=21700 + + BLTSRC=END+2 + BLTDST=END+6 + +G21700: MOVE AC,[252525,,252525] ; PRELOAD FOR SRC-1 + MOVEM AC,BLTSRC-1 + MOVE AC,[707070,,707070] ; PRELOAD FOR SRC + MOVEM AC,BLTSRC + MOVE AC,[525252,,525252] ;PRELOAD FOR SRC+1 + MOVEM AC,BLTSRC+1 + MOVE AC,[123456,,654321] ;PRELOAD FOR DST-1 + MOVEM AC,BLTDST-1 + MOVE AC,[070707,,070707] ;PRELOAD FOR DST + MOVEM AC,BLTDST + MOVE AC,[112233,,445566] ;PRELOAD FOR DST+1 + MOVEM AC,BLTDST+1 + + MOVE AC,[BLTSRC,,BLTDST] ;SETUP BLT PTR=FROM,,TO + BLT AC,BLTDST-1 ;*BLT SHOULD XFER ONE WORD AND STOP + +SN=SN+1 + CAME AC,[BLTSRC,,BLTDST] ;SEE IF PTR CHANGED + ER2 AC,SN ;YES, REPORT +SN=SN+1 + MOVE AC,[252525,,252525] ;GET PRELOAD FOR SRC-1 + CAME AC,BLTSRC-1 ;SEE IF OK + ER2 AC,SN ;REPORT ERROR +SN=SN+1 + MOVE AC,[707070,,707070] ;GET PRELOAD FOR SRC + CAME AC,BLTSRC ;SEE IF SRC OK + ER2 AC,SN ; REPORT ERR +SN=SN+1 + MOVE AC,[525252,,525252] ;GET PRELOAD FOR SRC+1 + CAME AC,BLTSRC+1 ;SEE IF OK + ER2 AC,SN ;REPORT ER +SN=SN+1 + MOVE AC,[123456,,654321] ;GET PRELOAD FOR DST-1 + CAME AC,BLTDST-1 ;SEE IF OK + ER2 AC,SN ;REPORT ERR +SN=SN+1 + MOVE AC,[707070,,707070] ;GET PRELOAD FOR SRC*** + CAME AC,BLTDST ;SEE IF IT XFERED A WORD + ER2 AC,SN ;REPORT ER +SN=SN+1 + MOVE AC,[112233,,445566] ;GET PRELOAD FOR DST+1 + CAME AC,BLTDST+1 ;SEE IF XFERED ONLY ONE WORD + ER2 AC,SN ;REPORT ERR + + JUMPL AC+2,G21700 ;LOOP ON ERROR SWITCH +SUBTTL PART III - GENERAL JFFO TEST + +;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0 + +G30000: SN=30100 + AC=-1 + + MOVEI [ASCIZ/JFFO NO-JUMP FAILED/] + MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTOR + +G30100: REPEAT ^D13,< +;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. +;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + +SN=SN+1 + AC=&17 + SAVEAC (1,1) + + SETZM AC ;CLEAR AC + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + JRST .+2 ;PASS IF JFFO DOES NOT JUMP + ER2 AC,SN ;ERROR IF JFFO JUMPED + SKIPE AC ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + SKIPE &17 ;EXAMINE AC+1 + ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH +> +PAGE +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO + + MOVEI [ASCIZ/JFFO JUMP FAILED/] + MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTER + +G30200: SETOB AC,&17 ;INITIALIZE AC AND AC+1 + JFFO AC,.+2 + ER2 AC,30201 ;ERROR IF JFFO DID NOT JUMP + CAME AC,[-1,,-1] ;EXAMINE AC + ER3 AC,30201 ;C(AC) WAS CLOBBERED + SKIPE &17 ;EXAMINE AC+1 + ER4 AC+1,30201 ;C(AC+1) NOT = TO NO OF LEADING ZEROS IN AC + JUMPL AC+2,G30200 ;LOOP ON ERROR SWITCH +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO +;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + +SN=30300 + XX=1000000 + ZZ=-1 + +G30300: REPEAT ^D18,< +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO +;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + +SN=SN+1 + XX=XX/2 + ZZ=ZZ+1 + MOVSI AC,XX ;INITIALIZE AC + MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + CAME AC,&17 ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + CAIE AC+1,ZZ ;EXAMINE AC+1 + ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +> +PAGE +SN=30400 + XX=1000000 + +G30400: REPEAT ^D18,< +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO +;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + +SN=SN+1 + XX=XX/2 + ZZ=ZZ+1 + MOVEI AC,XX ;INITIALIZE AC + MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + CAME AC,&17 ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + CAIE AC+1,ZZ ;EXAMINE AC+1 + ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +> +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO. +;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + +SN=30500 + AC=-1 + +G30500: REPEAT ^D13,< +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO. +;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + +SN=SN+1 + AC=&17 + SAVEAC (1,1) + + MOVSI AC,(1B<^O>) ;INITIALIZE AC + MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + CAME AC,GSVAC ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + CAIE AC+1,AC ;EXAMINE AC+1 + ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH +> + +LAST1: JRST BEGEND ;REPEAT DIAGNOSTIC + + IF1, +BYTBLK: BLOCK ^D50 + + IF1, +BLTBLK: BLOCK ^D200 + +SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + +;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + +ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + IFDEF EXCASB,> + MOVEM 1,%ERAC1# ;SAVE AC1 + MOVEM 2,%ERAC2# ;SAVE AC2 + AOS ERRTLS ;INCREMENT ERROR TOTALS + HRRZ 0,$SVUPC ;GET PC OF UUO + CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? + AOS MICNT# ;YES, ADD 1 TO ERROR COUNT + MOVE 0,MICNT + HRL 0,$SVUPC + SKIPN KLFLG ;NOT KL10 + SKIPE USER ;AND NOT USER? + JRST .+2 + DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT + SETZM PROCED# ;CLEAR PROCEED FLAG + SWITCH + TLNE NOPNT ;PRINTOUT ? + JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN + MOVE 1,$SVUUO + LSH 1,-^D27 + MOVEM 1,%ACS1A# ;SAVE UUO NUMBER + MOVE 0,%ERAC0 + MOVE 1,%ERAC1 + SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? + JRST %ERRS4 ;NO, SEE IF PRINT ALL +%ERMS1: SETZM MICNT ;CLEAR ERROR COUNT + SKIPL MONCTL ;DIAG MON OR SYS EXER ? + JRST .+4 ;NO, DON'T NEED TITLE + SKIPN %ERFST# ;FIRST ERROR ? + PNTNM ;YES, PRINT PROGRAM TITLE + SETOM %ERFST + SKIPN PASCNT ;FIRST PASS ? + JRST .+4 ;YES + PMSG <^TEST PASS COUNT = > + MOVE PASCNT + PNTDEC + PMSG <^PC = > + HRRZ 0,$SVUPC ;GET PC OF UUO + MOVEM 0,ERRPC ;SAVE FOR COMPARE + PNT6 ;PRINT UUO ADDRESS + XLIST + IFDEF ERDIAG, + MOVE 1,$SVUUO ;GET AC # OF UUO + LSH 1,-27 + ANDI 1,17 + MOVE 0,(1) ;GET C(AC) + CAIG 1,1 ;IS AC # = TO SAVE AC ? + MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + PNTHW ;PRINT C(AC) + + MOVE CONSW + TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ? + JRST %ERMORE ;NO, RESTORE AC'S ETC. + +;PRINT FAILURE DESCRIPTOR + + MOVE 1,%ACS1A ;GET UUO NUMBER + CAIG 1,1 ;PRINT DESCRIPTOR ? + JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER + PCRL + MOVE %FLTTB(1) + PNTAL ;PRINT FAULT DESCRIPTOR + +;PRINT FAULT NUMBER + +%ERMS3: PMSG <^FAULT NUMBER = > + MOVEI TLET + PNTA ;PRINT TEST LETTER + + HRRZ $SVUUO + TRNE 700000 + JRST %ER6X + TRNE 070000 + JRST %ER5X + TRNE 007000 + JRST %ER4X + PNT3 ;PRINT FAULT NUMBER +%ER7X: PCRL + JRST %ERMORE + +%ER4X: PNT4 + JRST %ER7X +%ER5X: PNT5 + JRST %ER7X +%ER6X: PNT6 + JRST %ER7X + +;FAILURE DESCRIPTORS + +TLET: 0 ;TEST LETTER +%FLTTB: 0 ;DESCRIPTOR TABLE +%NODES: [0] ;NO DESCRIPTOR +SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR +$ACF: [ASCIZ/C(AC) FAILED/] +%AC1F: [ASCIZ/C(AC+1) FAILED/] +%EF: [ASCIZ/C(E) FAILED/] +%E1F: [ASCIZ/C(E+1) FAILED/] +%ARF: [ASCIZ/C(C(ACR)) FAILED/] +%AR1F: [ASCIZ/C(C(ACR+1)) FAILED/] +%ALF: [ASCIZ/C(C(ACL)) FAILED/] +%EEF: [ASCIZ/C(C(E)) FAILED/] +%FF: [ASCIZ/FLAG FAILED/] +> + XLIST + IFDEF ERRELB,< + LIST +;RELIABILITY FORMAT ERROR PRINTER + +%ERMS2: SETZM %RAND# ;CLEAR PNT C(RAN) FLAG + MOVE 1,%ACS1A + CAIL 1,11 ;UUO # 11-13 + SETOM %RAND ;YES, SET PNT C(RAN) FLAG + TRZ 1,10 ;MAKE UUO # 1-7 + MOVEM 1,%ACS1A + MOVE 2,ERRPC ;GET UUO ADDRESS + MOVE 2,-1(2) ;GET INST IN UUO-1 + CAIL 1,4 ;UUO # < THAN 4 ? + MOVE 2,$SVUUO ;YES, GET UUO + MOVEM 2,%CNTE# ;SAVE E ADDRESS + MOVE 2,%ERAC2 + MOVE 1,%ERAC1 + MOVE 0,%ERAC0 + MOVEI 1,@%CNTE ;GET ADRS FIELD OF UUO OR UUO-1 + MOVEM 1,%EE1# + MOVE 1,%ERAC1 + MOVE 1,@%EE1 ;GET C(E) + MOVEM 1,%EE1A# + MOVE 1,%ERAC1 + MOVEI 1,@$SVUUO ;GET ADDRESS FIELD OF UUO + MOVEM 1,%EE2# + MOVE 1,%ACS1A + CAIN 1,3 ;UUO # 3 ? + JRST .+4 ;YES + MOVE 1,%ERAC1 + MOVE 1,@%EE2 ;GET C(E) OF UUO + MOVEM 1,%EE2A# + MOVE 2,%ACS1A ;GET UUO # + MOVE 1,%CNTE + LSH 1,-27 ;GET AC NUMBER + ANDI 1,17 + CAIG 2,5 ;UUO # 6,7 OR 2 + CAIN 2,2 + JRST %ERR2 ;YES, GO PNT E AND C(E) +;PRINT ERROR AC + + PMSG <^AC = > + MOVE 0,1 + PNT2 ;PRINT AC NUMBER + PMSG <^C(AC)= > + MOVE 0,(1) ;GET C(AC) + CAIG 1,2 ;IS AC # = SAVED AC ? + MOVE 0,%ERAC0(1) ;YES, GET SAVED AC +%ERRB: PNTHW ;PRINT C(AC) OR UUO2 (E) + +;PRINT ERROR INFO + + CAIN 2,5 ;UUO # 5 + JRST %ERR4 ;YES, GO PNT 'TST','SKP', OR ETC. + + PMSG <^COR = > + MOVE 0,(1) ;GET C(AC) + CAIG 1,2 ;IS AC # = SAVED AC ? + MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + CAIE 2,2 + MOVE 0,%EE1A ;UUO # 2, GET C(E) + PNTHW ;PRINT C(E) OR UUO2 C(AC) + CAIL 2,4 ;UUO # >3 ? + JRST %ERRC ;YES, RESTORE AC'S AND RETURN + + PMSG <^ ORIGINAL> +%ERRB1: MOVE 1,$SVUUO + LSH 1,-27 ;GET AC # OF UUO + ANDI 1,17 + PMSG <^C(AC)= > + MOVE 0,(1) ;GET C(AC) + CAIG 1,2 ;IS AC # = SAVED AC ? + MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + SKIPE %RAND ;PRINT C(RAN) FLAG SET ? + MOVE 0,RAN# ;YES + PNTHW ;PRINT C(AC) OR C(RAN) + CAIN 2,3 ;UUO # 3 ? + JRST %ERR2 ;YES, PRINT E, RESTORE AC'S AND RETURN + CAIN 2,7 ;UUO # 7 ? + JRST %ERRC ;YES, BYPASS PRINTING C(E) + PMSG <^C(E) = > + MOVE 0,%EE2A + PNTHW ;PRINT C(E) + JRST %ERRC + +%ERR2: PMSG <^E = > + MOVE 0,%EE2 + CAIN 2,2 ;UUO # 2 ? + MOVE 0,%EE1 + PNT6 ;PRINT E OF UUO OR UUO-1 + CAIL 2,6 ;UUO 6 OR 7 ? + JRST %ERRB1 ;YES, GO PNT C(AC), C(E) AND RETURN + CAIN 2,3 ;UUO # 3 ? + JRST %ERRC ;YES, RESTORE AC'S AND RETURN + + PMSG <^C(E) = > + MOVE 0,%EE1A ;GET C(E) + JRST %ERRB +;PRINT ASCII COMMENT + +%ERR4: HRRZI 0,@$SVUUO + PNTA ;PRINT 'TST','SKP', OR ETC. + JRST %ERRC + +;COMPLETE PRINTOUT + +%ERRC: PCRL + + XLIST + IFDEF UUOTXT,< + LIST + MOVE 0,CONSW + TLNN TXTINH ;PRINT DIAGNOSTIC COMMENT ? + CAIE 2,7 ;UUO # 7 ? + JRST %ERMORE ;NO, RESTORE AC'S AND RETURN + MOVE 0,%EE2 ;YES + PNTAL ;PRINT DIAGNOSTIC COMMENT + PCRL +> + LIST + JRST %ERMORE + +> + LIST +;RESTORE AC'S AND RETURN OR HALT + +%ERMORE:XCT ERMORE + PNTMGN ;PRINT MARGINS + SWITCH + +%ERRS1: TTALTM ;ALTMODE CHECK + JRST .+4 ;NONE + MOVEI .+3 ;SAVE CONT ADDRESS + MOVEM JOBOPC + JRST @ALTMGO ;PERFORM TRANSFER + MOVE CONSW + TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? + ERRHLT ;YES + TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? + SETOM PROCED ;NO, SET THE PROCEED FLAG + TLNE 0,DING ;RING BELL SWITCH SET ? + PBELL ;YES, GO RING BELL + +%ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S + MOVE 1,%ERAC1 + SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 + SKIPN PROCED ;LOOP ON ERROR ? + JRST %ERRS5 ;YES + AOS @ERRLOP ;NO, INC C(ERR LOOP AC) + AOS @ERRLOP ;SO IT ='S 1 + SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? + JRST %ERRS5 ;NO, CONTINUE PROGRAM + MOVE 0,ERRTLS ;YES + CAIL 0,5 ;PRINTED ALLOWED ERRORS ? + JRST $BEND2 + +%ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM + IFDEF EXCASB,> + JRST UUOEXT + +%ERRS4: MOVE 0,CONSW + TLNN PALERS ;PRINT ALL ERRORS ? + JRST %ERRS1 ;NO + JRST %ERMS1 ;YES + +SUBTTL *STOR* RESERVED STORAGE, JULY 19,1977 + +;PROGRAM LITERALS + + XLIST +IFNDEF $LPAPER, + LIT + LIST +ENDSLD: 0 + +IFDEF DEBUG,< +PATCH: BLOCK DEBUG ;PATCHING AREA +> + +;PROGRAM VARIABLES + VAR + +IFDEF PGMEND,< +END: 0 + END START > + diff --git a/apps/pdp10/diags/ka10/dakam/DAKAMM.MAC.txt b/apps/pdp10/diags/ka10/dakam/DAKAMM.MAC.txt new file mode 100644 index 000000000..dc4eb4c52 --- /dev/null +++ b/apps/pdp10/diags/ka10/dakam/DAKAMM.MAC.txt @@ -0,0 +1,3738 @@ +SUBTTL DIAGNOSTIC SECTION + +EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + EXIT + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) [DAKAM] +/ + +;INITIALIZE SUBROUTINES + +START: PGMINT + MOVE [ASCIZ/AM/] + MOVEM TLET ;INITIALIZE TEST LETTER + +STARTA: JRST G00 ;GO PERFORM DIAGNOSTIC + +; GENERAL DESCRIPTION +;PART IA -BTYE LOGIC TESTS +;PART IB -GENERAL BYTE TEST +;PART II -GENERAL BLOCK TRANSFER TEST +;PART III -GENERAL JFFO TEST +SUBTTL PART IA - BYTE MANIPULATION + + +;PART IA - BYTE LOGIC TESTS +;INST-IBP +;TEST ABILITY TO FCE PSE AND DECODE +;PFIELD=14 +;SFIELD=6 +;BYTEWORD=0,-1 +;DESTAC=0 +;AN ERROR WILL OCCUR IF AC DIFFERS FROM 0 +;FOLLOWING IBP + +G00: AC=5 + SAVEAC (1,1) + +G100: MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI ,-1 ;SETUP BYTE WORD + SETZ AC, ;SETUP DEST AC + IBP ,&17 ;INC PNTR WORD + SKIPE AC&17 ;TEST AC DIFFERS FROM 0 + ER3 AC,101 ;FCE PSE FAILED + JUMPL AC+2,G100 ;LOOP ON ERROR SWITCH + +;INST-IBP +;TEST ABILITY TO INCREMENT BYTE PNTR +;WITHOUT AFFECTING BYTE WORD +;PFIELD=14 +;SFIELD=6 +;BYTE ADDRESS=AC0 +;AN ERROR WILL OCCUR IF C(AC0) DIFFERS +;FROM ORIGINAL FOLLOWING IBP + + AC=14 + SAVEAC (1,1) + +G200: SETO AC-2, ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + IBP ,&17 ;INC BYTE PNTR + CAME ,&17 ;TEST BYTE WORD + ER12 ,201 ;BYTE WORD FAILED + JUMPL AC+2,G200 ;LOOP ON ERROR SWITCH +;INST-IBP +;PFIELD=22 +;SFIELD=6 +;AN ERROR WILL OCCUR IF POINTER IS NOT INCREMENTED + + AC=13 + SAVEAC (1,1) + +G300: MOVSI AC-2,060600 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PNTR INC + ER5 AC+1,301 ;POINTER FAILED + JUMPL AC+2,G300 ;LOOP ON ERROR SWITCH + +;INST - IBP +;PFIELD=16 +;SFIELD=6 + + AC=12 + SAVEAC (1,1) + +G400: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + MOVSI AC+1,160600 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,401 ;POINTER FAILED + JUMPL AC+2,G400 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO TRANSFER INCREMENTED +;PFIELD +;TEST JAM-ZERO'S +;PFIELD=77 +;SFIELD=1,2,4,10,20,40 +;TEST JAM-ONE'S +;PFIELD=6,14,30,60,40 +;SFIELD=3,6,14,30,20 + + AC=10 + SAVEAC (1,1) + +SN=600 + ZZ=40 + YY=4000 + +G600: REPEAT ^D6,< +SN=SN+1 + ZZ=ZZ+ZZ + YY=YY+YY + MOVSI AC-2,770000+ZZ-YY ;SETUP FOR COMPARISON + MOVSI AC+1,770000+ZZ ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,SN ;BIT UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + AC=11 + SAVEAC (1,1) + + ;TEST AR1(1) +G700: MOVSI AC-2,202000 ;SETUP FOR COMPARISON + MOVSI AC+1,402000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,701 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G700 ;LOOP ON ERROR SWITCH + + ;TEST AR2(1) +G1000: MOVSI AC-2,303000 ;SETUP FOR COMPARISON + MOVSI AC+1,603000 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1001 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1000 ;LOOP ON ERROR SWITCH + +G1100: MOVSI AC-2,141400 ;SETUP FOR COMPARISON + MOVSI AC+1,301400 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1101 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1100 ;LOOP ON ERROR SWITCH + + ;TEST AR4(1) +G1200: MOVSI AC-2,060600 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1201 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1200 ;LOOP ON ERROR SWITCH + + ;TEST AR5(1) +G1300: MOVSI AC-2,030300 ;SETUP FOR COMPARISON + MOVSI AC+1,060300 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST P FIELD + ER5 AC+1,1301 ;POINTER FAILED TO INCREMENT CORRECTLY + JUMPL AC+2,G1300 ;LOOP ON ERROR SWITCH +;INST-IBP +;PFIELD=5 +;SFIELD=10 + + AC=5 + SAVEAC (1,1) + +G1400: MOVSI AC-2,341000 ;SETUP FOR COMPARISON + MOVSI AC+1,051000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNPR + TRZ AC+1,1 ;CREAR ADDRESS FIELD OF POINTER + CAME AC+1,&17 ;TEST P FIELD + ER5 AC+1,1401 ;POINTER FAILED + JUMPL AC+2,G1400 ;LOOP ON ERROR SWITCH +PAGE +;INST - IBP +;TEST ABILITY TO TRANSFER PFIELD +;PRELIMINARY - TEST FOR PRESENCE +; OF PULSE +;PFIELD=16 +;SFIELD=6 + + AC=5 + SAVEAC (1,1) + +G1500: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + MOVSI AC+1,160600 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD + ER5 AC+1,1501 ;POINTER FAILED + JUMPL AC+2,G1500 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO TRANSFER PFIELD +;TEST ABILITY TO SET INDIVIDUAL +;SC BITS 3-8 +;PFIELD=1,2,4,10,20,40 +;SFIELD=1,2,4,10,20,40 + + AC=14 + SAVEAC (1,1) + ;TEST SC BIT 8 SET +G1600: MOVSI AC-2,000100 ;SETUP FOR COMPARISON + MOVSI AC+1,010100 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 8 + ER5 AC+1,1601 ;POINTER FAILED + JUMPL AC+2,G1600 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 7 SET +G1700: MOVSI AC-2,000200 ;SETUP FOR COMPARISON + MOVSI AC+1,020200 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 7 + ER5 AC+1,1701 ;POINTER FAILED + JUMPL AC+2,G1700 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 6 SET +G2000: MOVSI AC-2,000400 ;SETUP FOR COMPARISON + MOVSI AC+1,040400 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 6 + ER5 AC+1,2001 ;POINTER FAILED + JUMPL AC+2,G2000 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 5 SET +G2100: MOVSI AC-2,001000 ;SETUP FOR COMPARISON + MOVSI AC+1,101000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 5 + ER5 AC+1,2101 ;POINTER FAILED + JUMPL AC+2,G2100 ;LOOP ON ERROR SWITCH + + ;TEST SC BIT 4 SET +G2200: MOVSI AC-2,002000 ;SETUP FOR COMPARISON + MOVSI AC+1,202000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 4 + ER5 AC+1,2201 ;POINTER FAILED + JUMPL AC+2,G2200 ;LOOP ON ERROR SWITCH + ;TEST SC BIT 3 SET +G2300: MOVSI AC-2,004000 ;SETUP FOR COMPARISON + MOVSI AC+1,404000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT BYTE PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST BIT 3 + ER5 AC+1,2301 ;POINTER FAILED + JUMPL AC+2,G2300 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO SET SC BITS 3,6 +;PFIELD=6 +;SFIELD=10 +;FAILURE OF BIT 3 TO SET RESULTS IN A +;PFIELD=74 +;FAILURE OF BIT 6 TO SET RESULTS IN +;A PFEILD=30 +;SC BIT2 IS NOT TESTED-FAILURE TO SET +;BIT 2 RESULTS IN LOOPING + + AC=13 + SAVEAC (1,1) + +G2400: MOVSI AC-2,341000 ;SETUP FOR COMPARISON + MOVSI AC+1,061000 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST SC3 (1) + ER5 AC+1,2401 ;POINTER FAILED + JUMPL AC+2,G2400 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO CLEAR INDIVIDUAL +;SC BITS +;PFIELD=20,10,2,1 +;SFIELD=21,11,3,2 +;FAILURE TO CLEAR SC BITS 4,5,7 +;OR 8 RESULTS IN A PFIELD=43 +;FAILURE TO CLEAR SC BITS 3 OR 6 +;WILL NOT BE APPARENT + + AC=11 + SAVEAC (1,1) + + ;TEST SC4 CLEARING +G2600: MOVSI AC-2,232100 ;SETUP FOR COMPARISON + MOVSI AC+1,202100 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=43 + ER5 AC+1,2601 ;POINTER FAILED + JUMPL AC+2,G2600 ;LOOP ON ERROR SWITCH + + ;TEST SC5 CLEARING +G2700: MOVSI AC-2,331100 ;SETUP FOR COMPARISON + MOVSI AC+1,101100 ;SETUP PNTR WORD + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=45 + ER5 AC+1,2701 ;POINTER FAILED + JUMPL AC+2,G2700 ;LOOP ON ERROR SWITCH + + ;TEST SC 7 CLEARING +G3000: MOVSI AC-2,410300 ;SETUP FOR COMPARISON + MOVSI AC+1,020300 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=43 + ER5 AC+1,3001 ;POINTER FAILED + JUMPL AC+2,G3000 ;LOOP ON ERROR SWITCH + + ;TEST SC8 CLEARING +G3100: MOVSI AC-2,420200 ;SETUP FOR COMPARISON + MOVSI AC+1,010200 ;SETUP PNTR + IBP ,&17 ;INCREMENT PNTR + TRZ AC+1,1 ;CLEAR BIT 35 + CAME AC+1,&17 ;TEST PFIELD=43 + ER5 AC+1,3101 ;POINTER FAILED + JUMPL AC+2,G3100 ;LOOP ON ERROR SWITCH +;INST-IBP +;TEST ABILITY TO INCREMENT ADDRESS +;FIELD OF PNTR WORD +;PFIELD=6 +;SFIELD=10 +;LOSS OF THE SFIELD AND AN ADDRESS=1 + + AC=12 + SAVEAC (1,1) + +G3200: MOVSI AC-2,341000 ;SETUP AC-2 + AOJ AC-2,.+1 ;FOR COMPARISON + MOVSI AC+1,061000 ;SETUP PNTR WORD + IBP ,&17 ;INC PNTR WORD + CAME AC+1,&17 ;TEST FOR ERROR PNTR + ER5 AC+1,3201 ;POINTER FAILED + JUMPL AC+2,G3200 ;LOOP ON ERROR SWITCH + +;INST-IBP +;TEST ABILITY TO INCREMENT +;ADDRESS FIELD OF PNTR WORD +;PFIELD=6 +;SFIELD=10 + + AC=11 + SAVEAC (1,1) + +G3300: HRLI AC-2,341000 ;SETUP AC-2 FOR + HRRI AC-2,&17 ;COMPARISON + HRLI AC+1,061000 ;SETUP BYTE + HRRI AC+1,AC&17 ;PNTR WORD + IBP ,&17 ;INCREMENT PNTR + CAME AC+1,&17 ;TEST ADDRESS + ER5 AC+1,3301 ;POINTER FAILED + JUMPL AC+2,G3300 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO FCE (2ND PART) +;FAILURE TO FCE RESULTS IN LOSS +;OF DATA WORD +;PFIELD=0 +;SFIELD=6 +;BYTE WORD=0,777777 +;DEST AC=0 + + AC=14 + SAVEAC (1,1) + +G3400: HRLI AC+1,000600 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 5,-1 ;SETUP BYTE WORD + SETZ AC, ;CLEAR DEST AC + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST DEST AC=0,,77 + ER3 AC,3401 ;AC FAILED + JUMPL AC+2,G3400 ;LOOP ON ERROR SWITCH + +;INST-LDB +;P FIELD =14 +;S FIELD =6 +;BYTE WORD =-1 + + AC=11 + SAVEAC (1,1) + +G3500: HRRZI AC-2,77 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR + SETO ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,77 + ER3 AC,3501 ;AC FAILED + JUMPL AC+2,G3500 ;LOOP ON ERROR SWITCH +;INST-LDB +;PFIELD=14 +;SFIELD=6 +;BYTE WORD = 777777 + + AC=6 + SAVEAC (1,1) + +G3600: MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI ,-1 ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST DEST AC + ER3 AC,3601 ;AC FAILED + JUMPL AC+2,G3600 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO TRANSFER 2'S COMP +;SFIELD +;TEST ABILITY TO SET INDIVIDUAL +;BITS OF SC +;PFIELD=0 +;SFIELD=40,20,10,4,2,1 +;BYTE WORD=-1 + + AC=5 + SAVEAC (1,1) + ;TEST SC 1,2,3 SET +G3700: HRLOI AC-2,37777 ;SETUP FOR COMPARISON + MOVSI AC+1,4000 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=37777,,777777 + ER3 AC,3701 ;AC FAILED + JUMPL AC+2,G3700 ;LOOP ON ERROR SWITCH + + ;TEST SC4 SET +G4000: HRRZI AC-2,177777 ;SETUP FOR COMPARISON + MOVSI AC+1,2000 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,177777 + ER3 AC,4001 ;AC FAILED + JUMPL AC+2,G4000 ;LOOP ON ERROR SWITCH + + ;TEST SC5 SET +G4100: MOVEI AC-2,377 ;SETUP FOR COMPARISON + MOVSI AC+1,1000 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE = 0,,377 + ER3 AC,4101 ;AC FAILED + JUMPL AC+2,G4100 ;LOOP ON ERROR SWITCH + + ;TEST SC6 SET +G4200: MOVEI AC-2,17 ;SETUP FOR COMPARISON + MOVSI AC+1,400 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,17 + ER3 AC,4201 ;AC FAILED + JUMPL AC+2,G4200 ;LOOP ON ERROR SWITCH + ;TEST SC 7 SET +G4300: MOVEI AC-2,3 ;SETUP FOR COMPARISON + MOVSI AC+1,200 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,3 + ER3 AC,4301 ;AC FAILED + JUMPL AC+2,G4300 ;LOOP ON ERROR SWITCH + + ;TEST SC 8 SET +G4400: MOVEI AC-2,1 ;SETUP FOR COMPARISON + MOVSI AC+1,100 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,1 + ER3 AC,4401 ;AC FAILED + JUMPL AC+2,G4400 ;LOOP ON ERROR SWITCH +;INST-LDB +;PFIELD=6 +;SFIELD=14 +;BYTE WORD=000000007700 + + AC=14 + SAVEAC (1,1) + +G4600: MOVEI AC-2,77 ;SETUP FOR COMPARISON + MOVSI AC+1,061400 ;SETUP PNTR WORD + MOVEI ,7700 ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE =77 + ER3 AC,4601 ;AC FAILED + JUMPL AC+2,G4600 ;LOOP ON ERROR SWITCH +;INST-LDB +;PFIELD=6 +;SFIELD=6 +;BYTEWORD=-1 + + AC=13 + SAVEAC (1,1) + +G4700: MOVEI AC-2,77 ;SETUP FOR COMPARISON + MOVSI AC+1,060600 ;SETUP PNTR + SETO ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAME AC,&17 ;TEST BYTE=0,,77 + ER3 AC,4701 ;AC FAILED + JUMPL AC+2,G4700 ;LOOP ON ERROR SWITCH + +;INST-LDB +;TEST IR 134-7 +;PFIELD=14 +;SFIELD=6 +;BYTE WORD=-1 +;AN ERROR WILL OCCUR IF PC IS INCREMENTED +;TWICE DURING EXECUTION OF LDB + + AC=10 + SAVEAC (1,1) + +G5000: MOVSI AC+1,140600 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + JRST ,.+2 ;PC+1 INH ASSERTED + ER3 AC,5001 ;AC FAILED + JUMPL AC+2,G5000 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO CLEAR BYF6 +;PFIELD=14 +;SFIELD=6 +;BYTE WORD=-1 +;AN ERROR WILL OCCUR IF BYF6(1) WHEN STORED +;BY JSP + + AC=7 + SAVEAC (1,1) + +G5100: MOVSI AC+1,140600 ;SETUP PNTR WORD + SETO ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + JSP AC,.+1 ;STORE FLAGS + TLNE AC,020000 ;TEST BIT 4 + ER3 AC,5101 ;AC FAILED + JUMPL AC+2,G5100 ;LOOP ON ERROR SWITCH + +;INST-LDB +;TEST ABILITY TO DEFER (INDIRECT) BYTE +;PNTR ADDRESS +;FAILURE TO INDIRECTLY ADDRESS BYTE +;PNTR RESULTS IN AN ERROR BYTE +;PFIELD=0 +;SFIELD=6 +;ERROR BYTE=14 +;CORRECT BYTE=44 +;AN ERROR WILL OCCUR IF DEST AC=14 +;FOLLOWING LOAD BYTE INDIRECTLY ADDRESSED + + AC=6 + SAVEAC (1,1) + +G5200: MOVSI AC+1,600 ;SETUP PNTR WORD + HRLI ,600 ;SETUP INDIRECT ADDRESS + HRRI ,14 ;PNTR WORD (AC0) + MOVEI AC+6,44 ;SETUP CORR BYTE WORD + LDB AC,@&17 ;LOAD BYTE INDIRECTLY + CAIE AC,44 ;TEST FOR CORR BYTE + ER3 AC,5201 ;INDIRECT ADDRESSING FAILED + JUMPL AC+2,G5200 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST IR RT CLR AT6 +;FURTHER TEST OF IR 134-7 +;TEST ABILITY TO CLEAR IR BITS 13-17 FOLLOWING +;DEFERRING OR INDEXING OF BYTE PNTR ADDR +;PFIELD=6 +;SFIELD=14 +;CORR BYTE WORD=222222 +;DEST AC=4 +;AN ERROR WILL OCCUR IF DEST AC +;EQUALS 5555 FOLLOWING LOAD BYTE + + AC=7 + SAVEAC (1,1) + +G5300: MOVSI AC+5,061400 ;SETUP INDEXED PNTR WORD + MOVEI AC,4 ;SETUP INDEX AC + MOVEI ,222222 ;SETUP CORR BYTE WORD + MOVEI AC-3,555555 ;SETUP CORR BYTE WORD + LDB AC,&17(AC) ;LOAD BYTE INDEXED + CAIE AC,2222 ;TEST FOR CORR BYTE + ER3 AC,5301 ;AC FAILED + JUMPL AC+2,G5300 ;LOOP ON ERROR SWITCH + +;INST-LDB +;FURTHER TEST OF IR 134-7 +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN IR14-17=0, +;NO INDEX, ERROR BYTE=55 + + AC=10 + SAVEAC (1,1) + +G5400: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 7,10 ;SETUP INDEX AC + MOVEI 5,55 ;SETUP NON INDEX BYTE WORD + MOVEI 15,77 ;SETUP INDEXED BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST BYTE=0,,77 + ER3 AC,5401 ;AC FAILED + JUMPL AC+2,G5400 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN A BYTE WORD +;ADDRESS EQUAL TO CONTENTS OF +;INDEX AC(=AC) + + AC=10 + SAVEAC (1,1) + +G5500: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + SETZB AC,5 ;CLEAR DEST AC'S + MOVEI 7,10 ;SETUP INDEX AC + MOVEI 15,77 ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,77 ;TEST FOR BYTE + ER3 AC,5501 ;AC FAILED + JUMPL AC+2,G5500 ;LOOP ON ERROR SWITCH + +;INST-LDB +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN AN INDEX AC EQUAL +;TO INDEX AC+AC(AC7+AC10=AC17) + + AC=10 + SAVEAC (1,1) + +G5600: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 6,10 ;SETUP INDEX AC + MOVEI 15,15 ;SETUP BYTE WORD + MOVEI 16,5 ;SETUP ERROR INDEX AC + MOVEI 14,14 ;SETUP ERROR BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,15 ;TEST BYTE=15 + ER3 AC,5601 ;AC FAILED + JUMPL AC+2,G5600 ;LOOP ON ERROR SWITCH +;INST-LDB +;TEST ABILITY TO INDEX BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6 +;FAILURE RESULTS IN INDEXING BY C(AC0) + + AC=10 + SAVEAC (1,1) + +G5700: HRLI AC+1,000607 ;SETUP BYTE + HRRI AC+1,5 ;PNTR WORD + MOVEI 7,10 ;SETUP INDEX AC + MOVEI 15,15 ;SETUP BYTE WORD + MOVEI ,7 ;SETUP ERROR INDEX AC + MOVEI 14,33 ;SETUP ERROR BYTE WORD + LDB AC,AC+1 ;LOAD BYTE + CAIE AC,15 ;TEST BYTE=0,,15 + ER3 AC,5701 ;AC FAILED + JUMPL AC+2,G5700 ;LOOP ON ERROR SWITCH + +;INST-ILDB +;TEST ABILITY TO ASSERT BYTE PTRINC +;P FIELD=16 +;S FIELD=6 +;FAILURE TO ASSERT MAY RESULT IN A HALT +;AT ET0 +;AN ERROR WILL OCCUR IF PNTR WORD +;EQUALS ORIGINAL FOLLOWING ILDB + + AC=5 + SAVEAC (1,1) + +G6000: MOVSI AC-2,100600 ;SETUP FOR COMPARISON + MOVSI AC+1,160600 ;SETUP PNTR WORD + ILDB AC,&17 ;INC AND LOAD BYTE + CAME AC+1,&17 ;TEST PNTR=ORIGINAL + ER4 AC+1,6001 ;PNTR FAILED TO INCREMENT + JUMPL AC+2,G6000 ;LOOP ON ERROR SWITCH + +;INST-ILDB +;TEST LB BYTE LOAD +;TEST BYF5 SET +;P FIELD=22 +;S FIELD=22 +;BYTE WORD=000000777777 +;FAILURE RESULTS IN A BYTE EQUAL +;TO BYTE WORD. + + AC=14 + SAVEAC (1,1) + +G6100: MOVSI AC-2,002200 ;SETUP FOR COMPARISON + MOVSI AC+1,222200 ;SETUP PNTR WORD + MOVEI ,-1 ;SETUP BYTE WORD + ILDB AC,&17 ;INC AND LOAD BYTE + CAME ,AC ;TEST BYTE=000000777777 + ER12 ,6101 ;BYTE WORD FAILED + CAME AC+1,&17 ;TEST PNTR WORD + ER5 AC+1,6101 ;POINTER FAILED + JUMPL AC+2,G6100 ;LOOP ON ERROR SWITCH + +;INST-ILDB +;P FIELD=22 +;S FIELD=6 +;BYTE WORD=0000007700000 +;FAILURE RESULTS IN A BYTE +;=0 + + AC=13 + SAVEAC (1,1) + +G6200: MOVSI AC-2,140600 ;SETUP FOR COMPARISON + MOVSI AC+1,220600 ;SETUP PNTR WORD + MOVEI ,770000 ;SETUP BYTE WORD (AC0) + ILDB AC,&17 ;INC AND LOAD BYTE + CAIE AC,77 ;TEST BYTE + ER3 AC,6201 ;AC FAILED + CAME AC+1,&17 ;TEST PNTR WORD + ER5 AC+1,6201 ;POINTER FAILED + JUMPL AC+2,G6200 ;LOOP ON ERROR SWITCH + +;INST-DPB +;TEST ABILITY TO ASSERT BYF5 SET +;P FIELD +;P=14 +;S=6 +;BYTE WORD=000000000077 +;DEST WORD=000000000000 + + AC=12 + SAVEAC (1,1) + +G6300: MOVEI AC-2,770000 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,77 ;SETUP BYTE + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST=0,,770000 + ER12 ,6301 ;BYTE W0RD FAILED + JUMPL AC+2,G6300 ;LOOP ON ERROR SWITCH + +;INST-DPB +;TEST ABILITY TO ASSERT DPBYTE DEP +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=-1 +;FAILURE OF MQ TO SHIFT RESULTS IN A +;DEPOSIT BYTE=777777777700 + + AC=7 + SAVEAC (1,1) + +G6400: HRROI AC-2,557777 ;SETUP AC-2 FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST=-1,,557777 + ER12 ,6401 ;BYTE WORD FAILED + JUMPL AC+2,G6400 ;LOOP ON ERROR SWITCH +;INST-DPB +;TEST ABILITY TO AND MASK, BYTE +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=5555 +;DEST WORD=0 +;FAILURE RESULTS IN A DEPOSIT +;BYTE=000055550000 + + AC=5 + SAVEAC (1,1) + +G7000: HRRZI AC-2,550000 ;SETUP AC-2 FOR COMPARISON + HRRI AC-2,550000 ;FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,5555 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD=0,,550000 + ER12 ,7001 ;BYTE WORD FAILED + JUMPL AC+2,G7000 ;LOOP ON ERROR SWITCH + +;INST-DPB +;P FIELD = 6 +;S FIELD = 14 +;BYTE WORD=55 +;DEST WORD = -1 +;FAILURE OF ANY ONE RESULTS IN A +;BYTE = 777777 000077 + + AC=14 + SAVEAC (1,1) + +G7100: HRROI AC-2,5577 ;SETUP FOR COMPARISON + MOVSI AC+1,061400 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST BYTE=777777 005577 + ER12 ,7101 ;BYTE WORD FAILED + JUMPL AC+2,G7100 ;LOOP ON ERROR SWITCH + +;INST-DPB +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=0 +;FAILURE RESULTS IN A DEPOSIT +;BYTE=777777557777 + + AC=13 + SAVEAC (1,1) + +G7200: HRRZI AC-2,550000 ;SETUP FOR COMPARISON + MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD=0,,550000 + ER12 ,7201 ;BYTE WORD FAILED + JUMPL AC+2,G7200 ;LOOP ON ERROR SWITCH +;INST-DBP +;P FIELD=22 +;S FIELD=6 +;BYTE WORD=5555 +;DEST WORD=-1 +;FAILURE RESULTS IN A DEPOSIT +;BYTE=005455777777 + + AC=11 + SAVEAC (1,1) + +G7400: HRLOI AC-2,777755 ;SETUP FOR COMPARISON + MOVSI AC+1,220600 ;SETUP PNTR WORD + MOVEI AC,5555 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD=777755,,-1 + ER12 ,7401 ;BYTE WORD FAILED + JUMPL AC+2,G7400 ;LOOP ON ERROR SWITCH +;INST-DPB +;TEST ABILITY TO CLEAR BYF6 +;P FIELD=14 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=0 +;AN ERROR WILL OCCUR IF BYF6(1) WHEN +;STORED BY JSP + + AC=7 + SAVEAC (1,1) + +G7600: MOVSI AC+1,140600 ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE + JSP AC,.+1 ;STORE FLAGS + TLNE AC,020000 ;TEST BIT 4 + ER13 AC,7601 ;BYF6 FAILED TO CLEAR + JUMPL AC+2,G7600 ;LOOP ON ERROR SWITCH + +;INST-IDPB +;TEST ABILITY TO ASSERT BYTE PTRINC +;TEST ABILITY TO ASSERT DB BYTE DEP +;FAILURE TO ASSERT BYTE PTR INC +;MAY CAUSE A HALT AT ET0 +;FAILURE TO ASSERT DB BYTE DEP PREVENTS +;ARMQSHLT SCT3 (2ND PART) +;P FIELD=22 +;S FIELD=6 +;DEST WORD=0 +;BYTE WORD=77 +;AN ERROR WILL OCCUR IF BYTE PNTR +;WORD EQUALS ORIGINAL +;AN ERROR WILL OCCUR IF DEST WORD +;EQUALS BYTE WORD + + AC=5 + SAVEAC (1,1) + +G7700: MOVSI AC-2,140600 ;SETUP FOR COMPARISON + MOVSI AC+1,220600 ;SETUP PNTR WORD + MOVEI AC,77 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD (AC0) + IDPB AC,&17 ;INC AND DEPOSIT BYTE + CAME AC+1,&17 ;TEST FOR INCREMENTED PNTR + ER5 AC+1,7701 ;BYTE PTR INC FAILED + CAIE ,770000 ;TEST DEST WORD + ER12 ,7701 ;DB BYTE DEP FAILED + JUMPL AC+2,G7700 ;LOOP ON ERROR SWITCH +SUBTTL PART IB-GENERAL BYTE TEST + +;PART IA- GENERAL BYTE TEST + +;INST-IBP +;DECREASING P FIELD +;P FIELD=22,20,16,14,12 +;S FIELD=6 +;RESULTANT P FIELDS=14,12,10,6,4 +;AN ERROR WILL OCCUR ON AN +;INCORRECT INCREMENTED PNTR WORD + + AC=5 + SAVEAC (1,1) + +SN=10000 + XX=160600 + ZZ=240600 + + ;TEST IBP +G10000: REPEAT ^D5,< +SN=SN+1 + XX=XX-020000 + ZZ=ZZ-020000 + MOVSI AC-2,XX ;SETUP FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + IBP ,&17 ;INC BYTE PNTR + CAME AC+1,&17 ;TEST INC PNTR + ER5 AC+1,SN ;IBP FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-IBP +;DECREASING S FIELD +;P FIELD=22 +;S FIELD=14,12,10,6,4 +;RESULTANT P FIELDS=6,10,12,14,16 +;AN ERROR WILL OCCUR ON AN +;INCORRECT INCREMENTED PNTR WORD + + AC=14 + SAVEAC (1,1) + +SN=10100 + XX=040000 + WW=001600 + ZZ=221600 + + ;TEST IBP +G10100: REPEAT ^D5,< +SN=SN+1 + XX=XX+020000 + WW=WW-000200 + ZZ=ZZ-000200 + MOVSI AC-2,XX+WW ;SETUP FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + IBP ,&17 ;INC BYTE PNTR + CAME AC+1,&17 ;TEST INC PNTR + ER5 AC+1,SN ;IBP FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + +;INST-IBP +;OVERFLOW AND INC ADDRESS +;P FIELD=0 +;S FIELD=14,12,10,6,4 +;RESULTANT P FIELDS=30,32,34,36,40 +;ADDRESS FIELD INCREMENTED BY ONE +;AN ERROR WILL OCCUR ON AN INCORRECT +;INCREMENTED PNTR WORD + + AC=13 + SAVEAC (1,1) + +SN=10200 + XX=260000 + ZZ=001600 + + ;TEST IBP +G10200: REPEAT ^D5,< +SN=SN+1 + XX=XX+020000 + ZZ=ZZ-000200 + MOVSI AC-2,XX+ZZ ;SETUP AC-2 + AOJ AC-2, ;FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + IBP ,&17 ;INC BYTE PNTR + CAME AC+1,&17 ;TEST INC PNTR + ER5 AC+1,SN ;IBP FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-LDB +;INCREASING S FIELD +;P FIELD=22 +;S FIELD=1,2,3,4,5 +;BYTE WORD=777777000000 +;AN ERROR WILL OCCUR IF AN +;IN CORRECT BYTE IS LOADED +;INTO AC + + AC=12 + SAVEAC (1,1) + +SN=10300 + XX=220000 + ZZ=0 + + ;TEST LDB +G10300: REPEAT ^D5,< +SN=SN+1 + XX=XX+000100 + ZZ=ZZ*2+1 + MOVSI AC+1,XX ;SETUP PNTR WORD + HRLZI ,-1 ;SETUP BYTE WORD (AC0) + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST DEST AC + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;INCREASING BYTE WORD +;INCREASING P FIELD +;P FIELD=14,17,22,25,33 +;S FIELD=3 +;BYTE WORD=000000070000 SHIFTING +;LEFT BY 3 +;AN ERROR WILL OCCUR IF DEST AC +;DIFFERS FROM 7 + + AC=11 + SAVEAC (1,1) + +SN=10400 + XX=0 + ZZ=110300 + + ;TEST LDB +G10400: REPEAT ^D5,< +SN=SN+1 + XX=XX+3 + ZZ=ZZ+030000 + MOVSI AC+1,ZZ ;SETUP PNTR WORD + MOVEI ,7000 ;SETUP BYTE WORD + ROT ,XX ;ROTATE LEFT BY 3 + LDB AC,&17 ;LOAD BYTE + CAIE AC,7 ;TEST DEST AC=7 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;VARY BYTE ADDRESS +;P FIELD=22 +;S FIELD=3 +;BYTE WORD=AC NUMBER +;BYTE PNTR ADDR=AC 6,5,4,3,2 +;AN ERROR WILL OCCUR IF C(DEST AC) +;DIFFERS FROM AC UNDER TEST + + AC=7 + SAVEAC (1,1) + +SN=10500 + ZZ=7 + + ;TEST LOAD BYTE +G10500: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ-1 + HRLI AC+1,220300 ;SETUP BYTE + HRRI AC+1,ZZ ;PNTR WORD + MOVSI ZZ,ZZ ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST DEST AC=AC NUMBER + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-LDB +;BYTE PNTR INDEXED +;P FIELD=0 +;S FIELD=3 +;BYTE WORD=PNTR WORD +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT +;AC NUMBER + + AC=10 + SAVEAC (1,1) + +SN=10600 + ZZ=0 + + ;TEST LDB INDEXED +G10600: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI ,000300 ;SETUP NON IND PNTR WORD + HRLI ZZ,000300 ;SETUP INDEXED + HRRI ZZ,ZZ ;PNTR WORD + LDB AC,(ZZ) ;LOAD BYTE INDEXED + CAIE AC,ZZ ;TEST FOR AC NUMBER + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;BYTE PNTR INDIRECTLY ADDRESSED +;P FIELD=0 +;S FIELD=3 +;BYTE WORD=PNTR WORD +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT +;AC NUMBER + + AC=7 + SAVEAC (1,1) + +SN=10700 + ZZ=0 + + ;TEST LDB INDIRECTLY ADDRESSED +G10700: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI AC+1,440300 ;SETUP DIRECTLY ADDRESSED PNTR WORD + HRRI AC+1,ZZ ;SETUP INDIRECT ADDRESS + HRLI ZZ,000300 ;SETUP INDIRECTLY ADDRESSED + HRRI ZZ,ZZ ;PNTR WORD + SETZ ;SETUP DIRECTLY ADDRESSED BYTE WORD + LDB AC,@&17 ;LOAD BYTE INDIRECTLY ADDRESSED + CAIE AC,ZZ ;TEST FOR AC NUMBER + ER3 AC,SN ;LDB INDIRECTLY ADDRESSED FAILED + JUMPL AC+2,.-10 ;LOOP ON ERROR SWITCH +> +;INST-LDB +;PNTR INDEXED AND INDIRECTLY ADDRESSED +;P FIELD=0 +;S FIELD=6 +;PNTR WORD IS IN AC 12,13,14 +;BYTE WORD=PNTR WORD +;LOADED BYTE SHOULD EQUAL +;12,13,14 + + AC=10 + SAVEAC (1,1) + +SN=11000 + VV=3 + WW=6 + XX=11 + ZZ=3 + + ;TEST LDB INDEXED, INDIRECTLY ADDRESSED +G11000: REPEAT ^D3,< +SN=SN+1 + VV=VV+1 + WW=WW+1 + XX=XX+1 + ZZ=ZZ+1 + MOVEI VV,WW ;SETUP INDEX AC + MOVEI WW,XX ;SETUP INDIRECT AC + HRLI XX,000600 ;SETUP INDEXED AND + HRRI XX,XX ;INDIRECT PNTR WORD + LDB AC,@(ZZ) ;LOAD BYTE INDEXED, INDIRECTLY ADDRESSED + CAIE AC,XX ;TEST LOAD BYTE=12,13,14 + ER3 AC,SN ;LDB INDEXED, INDIRECTLY ADDRESSEDD FAILED + JUMPL AC+2,^D8 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;INDEX BYTE ADDRESS +;P FIELD=0 +;S FIELD=6 +;INDEX AC=AC7 +;BYTE WORD ADDRESS=AC 7,10,11,12,13 +;AN ERROR WILL OCCUR IF LOADED BYTE +;DIFFERS CURRENT AC + + AC=4 + SAVEAC (1,1) + +SN=11100 + ZZ=6 + + ;TEST LDB BYTE ADDR INDEXED +G11100: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI AC+1,000607 ;SETUP PNTR WORD + MOVEI AC+3,ZZ ;SETUP INDEX AC + MOVEI ZZ,ZZ ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-LDB +;BYTE INDIRECTLY ADDRESSED +;P FIELD=0 +;S FIELD=6 +;BYTE WORD ADDRESS=AC7,10,11,12,13 +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT AC + + AC=4 + SAVEAC (1,1) + +SN=11200 + ZZ=6 + + ;TEST LDB, BYTE INDIRECTLY ADDRESSED +G11200: REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ+1 + MOVSI AC+1,000620 ;SETUP PNTR WORD + MOVEI ,ZZ ;SETUP DEFER ADDRESS + MOVEI ZZ,ZZ ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,ZZ ;TEST BYTE=7,10,11,12,13 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-LDB +;BYTE ADDRESS INDEXED AND INDIRECT +;P FIELD=0 +;S FIELD=6 +;BYTE ADDRESS=AC13,14,15 +;BYTE WORD=13,14,15 +;AN ERROR WILL OCCUR IF LOADED +;BYTE DIFFERS FROM CURRENT AC + + AC=4 + SAVEAC (1,1) + +SN=11300 + XX=12 + ZZ=7 + + ;TEST LDB, BYTE ADDR INDEXED AND INDIRECT +G11300: REPEAT ^D3,< +SN=SN+1 + XX=XX+1 + ZZ=ZZ+1 + MOVSI AC+1,000627 ;SETUP PNTR WORD + MOVEI AC+3,ZZ ;SETUP INDEX AC + MOVEI ZZ,XX ;SETUP INDIRECT ADDR + MOVEI XX,XX ;SETUP BYTE WORD + LDB AC,&17 ;LOAD BYTE + CAIE AC,XX ;TEST BYTE=13,14,15 + ER3 AC,SN ;LDB FAILED + JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH +> + +;INST-ILDB +;DECREASING P FIELD +;P FIELD=44,36,30,22,14 +;S FIELD=6 +;BYTE ADDRESS=AC0 +;AN ERROR WILL OCCUR IF AC DIFFERS +;FROM 77 + + AC=5 + SAVEAC (1,1) + +SN=11400 + XX=520600 + ZZ=0 + + ;TEST ILDB +G11400: REPEAT ^D5,< +SN=SN+1 + XX=XX-060000 + ZZ=ZZ-6 + MOVSI AC+1,XX ;SETUP PNTR WORD + MOVEI ,77 ;SETUP BYTE WORD + ROT ,ZZ ;ROTATE RIGHT + ILDB AC,&17 ;INC AND LOAD BYTE + CAIE AC,77 ;TEST AC=77 + ER3 AC,SN ;ILDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-ILDB +;INCREASING S FIELD +;CALCULATE NEW P FIELD, INCREMENT +;BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6,14,22,30,36 +;AN ERROR WILL OCCUR IF AC +;DIFFERS FROM 77 + + AC=14 + SAVEAC (1,1) + +SN=11500 + XX=0 + ZZ=0 + + ;TEST ILDB +G11500: REPEAT ^D5,< +SN=SN+1 + XX=XX+600 + ZZ=ZZ-6 + MOVSI AC+1,XX ;SETUP PNTR WORD + MOVEI 1,77 ;SETUP BYTE WORD + ROT 1,ZZ ;ROTATE RIGHT BYTE WORD + ILDB AC,&17 ;INC AND LOAD BYTE + CAIE AC,77 ;TEST AC=77 + ER3 AC,SN ;ILDB FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +;INST-ILDB +;TESTING SPECIAL POINTER +;WHICH SETS AC TO ZERO +;PFIELD=20 ORIG,64 AFTER +;SFIELD=60 ORIG,60 AFTER +;AN ERROR WILL OCCUR IF AC IS NOT ZEROED + + XX=206000 + +G11600: MOVSI AC+1,XX ;SETUP PNTR WORD + SETOB 0,1 ;SETUP BYTE WORD + SETOM AC ;SETUP AC FOR TEST + ILDB AC,&17 ;THIS SHOULD ZERO AC + SKIPE AC ;TEST AC=0 + ER3 AC,11601 ;ILDB FAILED + JUMPL AC+2,G11600 ;LOOP ON ERROR SWITCH +PAGE +;INST-DPB +;INCREASING P FIELD +;P FIELD=6,14,22,30,36 +;S FIELD=6 +;BYTE WORD=55 +;AN ERROR WILL OCCUR IF DPB +;FAILS TO DEPOSIT CORRECTLY + + AC=13 + SAVEAC (1,1) + +SN=11700 + XX=0 + ZZ=000600 + + ;TEST DPB +G11700: REPEAT ^D5,< +SN=SN+1 + XX=XX+6 + ZZ=ZZ+60000 + MOVEI AC-2,55 ;SETUP AC-2 + ROT AC-2,XX ;FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + SETZ ;SETUP DEST WORD + MOVEI AC,55 ;SETUP BYTE WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD + ER12 ,SN ;DPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> + +;INST-DPB +;INCREASING P FIELD +;P FIELD = 0,6,14,22,30 +;S FIELD = 6 +;BYTE WORD=55 (SHIFTING LEFT 6 PLACES) +;AN ERROR WILL OCCUR IF DPB FAILS +;TO DEPOSIT CORRECTLY + + AC=12 + SAVEAC (1,1) + +SN=12000 + XX=0 + ZZ=-60000 + + ;TEST DPB +G12000: REPEAT ^D5,< +SN=SN+1 + XX=XX+6 + ZZ=ZZ+060000 + IFE ZZ, + MOVSI AC-2,550000 ;SETUP AC=2 + ROT AC-2,XX ;FRO COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + MOVEI AC,55 ;SETUP BYTE WORD + SETZ ;SETUP DEST WORD + DPB AC,&17 ;DEPOSIT BYTE (AC0) + CAME ,&17 ;TEST DEST WORD + ER12 ,SN ;DPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> +;INST-IDPB +;INCREASING S FIELD +;CALCULATE NEW P FIELD, INCREMENT +;BYTE WORD ADDRESS +;P FIELD=0 +;S FIELD=6,14,22,30,36 +;BYTE WORD=77 +;AN ERROR WILL OCCUR IF IDPB FAILS +;TO DEPOSIT CORRECTLY + + AC=11 + SAVEAC (1,1) + +SN=12100 + XX=0 + ZZ=000000 + + ;TEST IDPB +G12100: REPEAT ^D5,< +SN=SN+1 + XX=XX-6 + ZZ=ZZ+600 + MOVEI AC-2,77 ;SETUP AC-2 + ROT AC-2,XX ;FOR COMPARISON + MOVSI AC+1,ZZ ;SETUP PNTR WORD + MOVEI AC,77 ;SETUP BYTE WORD + SETZ 1, ;SETUP DEST WORD + IDPB AC,&17 ;INC AND DEPOSIT BYTE + CAME 1,&17 ;TEST DEST WORD + ER12 1,SN ;IDPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> +;INST-IDPB +;P FIELD=44 +;S FIELD=6 +;BYTE WORD=55 +;DEST WORD=-1 +;AN ERROR WILL OCCUR IF IDPB +;FAILS TO DEPOSIT CORRECTLY + + AC=10 + SAVEAC (1,1) + +SN=12200 + ZZ=0 + +G12200: MOVSI AC+1,440600 ;SETUP PNPR WORD + ;TEST IDPB + REPEAT ^D5,< +SN=SN+1 + ZZ=ZZ-6 + HRLI AC-2,-1 ;SETUP AC-2 + HRRI AC-2,-23 ;FOR COMPARISON + ROT AC-2,ZZ ;ROTATE RIGHT BY 6 + MOVEI AC,55 ;SETUP BYTE WORD + SETO ;SETUP DEST WORD (AC0) + IDPB AC,&17 ;INC AND DEPOSIT BYTE + CAME ,&17 ;TEST DEST WORD + ER12 ,SN ;IDPB FAILED + JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH +> +;INST-LDB-SPECIAL CASE-S GREATER THAN 44 +;P FIELD=7 +;S FIELD=60,40 +;VERIFY THAT THE BYTE PROCESSED IS, AT MOST, 44 BITS IF S GREATER THAN 44 + + AC=13 + SAVEAC (1,1) + +SN=12210 + XX=100000 + + ;TEST LDB +G12210: REPEAT 2,< +SN=SN+1 + XX=XX-2000 + SETOB 0,2 + MOVE 1,[525252,,525377] ;SETUP BYTE WORD + SETZM AC ;CLEAR DEST WORD + MOVE AC+1,[XX,,1] ;SETUP POINTER + LDB AC,&17 ;LOAD BYTE + CAME AC,[002525,,252525] ;TEST DEST WORD + ER3 AC,SN ;LDB FAILED + CAME AC+1,[XX,,1] ;CHECK POINTER + ER4 AC+1,SN ;POINTER WAS MODIFIED + JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +> +PAGE +;INST-DPB-SPECIAL CASE-S GREATER THAN 44 +;P FIELD=7 +;S FIELD=60,40 +;VERIFY THAT THE BYTE PROCESSED IS, AT MOST, 44 BITS IF S GREATER THAN 44 + +SN=12220 + XX=100000 + + ;TEST DPB +G12220: REPEAT 2,< +SN=SN+1 + XX=XX-2000 + SETOB 0,2 + MOVE 1,[707070,,707070] ;SETUP DEST WORD + MOVE AC,[323232,,232323] ;SETUP BYTE WORD + MOVE AC+1,[XX,,1] ;SETUP POINTER + DPB AC,&17 ;DEPOSIT BYTE + MOVEI AC-2,[ASCIZ/C(C(E)-1) FAILED/] + MOVE AC-2,SPDES ;FAILURE DESCRIPTOR + CAME 0,[-1,,-1] ;CHECK DEST WORD -1 + ER2 0,SN ;DPB FAILED + CAME 1,[646446,,464670] ;CHECK DEST WORD + ER12 1,SN ;DPB FAILED + MOVEI AC-2,[ASCIZ/C(C(E)+1) FAILED/] + MOVEM AC-2,SPDES ;FAILURE DSCRIPTOR + CAME 2,[-1,,-1] ;CHECK DEST WORD +1 + ER2 2,SN ;DPB FAILED + JUMPL AC+2,.-^D15 ;LOOP ON ERROR SWITCH +> +;VERIFY THAT THE POINTER IS NOT INCREMENTED BY "ILDB" OR "IDPB" IF 'BIS' +;IS SET; AND THAT THE SECOND PART OF THE BYTE INSTRUCTION CLEARS 'BIS' + + AC=13 + SAVEAC (1,1) + +G12300: MOVE AC+1,[220600,,AC-1] ;SETUP BYTE POINTER + MOVE AC,[707070,,707070] ;SETUP AC + MOVE AC-1,[112233,,445566] ;SETUP BYTE WORD + JRSTF @[BIS,,.+1] ;SET 'BIS' FLAG + ILDB AC,AC+1 + JSP AC-2,.+1 ;SAVE FLAGS + CAIE AC,33 ;TEST DEST WORD + ER3 AC,12301 ;INCORRECT BYTE WAS LOADED + CAME AC+1,[220600,,AC-1] ;TEST POINTER + ER4 AC+1,12301 ;POINTER WAS INCREMENTED + TLNE AC-2,BIS ;EXAMINE 'BIS' + ER13 AC-2,12301 ;'BIS' WAS NOT CLEARED + JUMPE AC+2,G12300 ;LOOP ON ERROR SWITCH + +G12400: MOVE AC+1,[220600,,AC-1] ;SET-UP BYTE POINTER + MOVE AC,[707070,,707070] ;SET-UP AC + MOVE AC-1,[112233,,445566] ;SETUP BYTE WORD + JRSTF @[BIS,,.+1] ;SET 'BIS' FLAG + IDPB AC,AC+1 + JSP AC-2,.+1 ;SAVE FLAGS + CAME AC+1,[220600,,AC-1] ;TEST POINTER + ER4 AC+1,12401 ;POINTER WAS INCREMENTED + CAME AC-1,[112270,,445566] ;TEST BYTE WORD + ER12 AC-1,12401 ;INCORRECT BYTE WAS DEPOSITED + TLNE AC-2,BIS ;EXAMINE 'BIS' + ER13 AC-2,12401 ;'BIS' WAS NOT CLEARED + JUMPL AC+2,G12400 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - IBP +;VERIFY THAT IBP WORKS WHEN THE POINTER IS IN AN AC + + AC=7 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12500: MOVSI AC-2,170600 ;SETUP POINTER + MOVSI AC-1,110600 ;RESULT FOR COMPARISON + IBP &17 ;*IBP SHOULD PLACE 110600,,0 INTO PTR + CAME AC-2,&17 ;IS PTR = 110600,,0 ? + ER5 AC-2,12501 ;POINTER FAILURE + JUMPL AC+2,G12500 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - IBP +;VERIFY THAT IBP WORKS WHEN THE POINTER IS IN CORE MEMORY + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12510: MOVSI AC-2,170600 + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVSI AC-2,110600 ;RESULT FOR COMPARISON + SETZ AC-1, ;INITIALIZE FOR RESULT + IBP BYTBLK ;*IBP SHOULD PLACE 110600,,0 INTO PTR + MOVE AC-1,BYTBLK + CAME AC-1,&17 ;IS PTR = 110600,,0 ? + ER5 AC-1,12511 ;POINTER FAILURE + JUMPL AC+2,G12510 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12600: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVEI AC,654321 ;SETUP AC + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + DPB AC,&17 ;DPB SHOULD PLACE 230702.103700 INTO BYTE WORD + CAME AC-2,&17 ;WAS POINTER MODIFIED ? + ER5 AC-2,12601 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12602 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-4,12603 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12600 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=14 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12610: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC,[230703,,603700] ;SETUP BYTE WORD + MOVEM AC,BYTBLK + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + DPB AC,&17 ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,12611 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12612 ;FAILURE - AC WAS MODIFIED + MOVE AC-5,BYTBLK + CAME AC-1,BYTBLK ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-5,12613 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12610 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY + + AC=13 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12620: MOVSI AC-2,170600 + HRRI AC-2,&17 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + DPB AC,BYTBLK ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-3,12621 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12622 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-4,12523 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+12,G12620 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - DPB +;VERIFY THAT DPB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + + AC=12 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12630: MOVSI AC-2,170600 + HRRI AC-2,BYTBLK+3 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + DPB AC,BYTBLK ;DPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-4,12631 ;FAILURE - POINTER WAS MODIFIED + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-3,12632 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12633 ;FAILURE - AC WAS MODIFIED + JUMPL AC+2,G12630 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - IDPB +;VERIFY THAT IDPB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S + + AC=11 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12700: MOVSI AC-2,250600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 + HRLI AC-3,170600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVEI AC,654321 ;SETUP AC + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + IDPB AC,&17 ;IDPB SHOULD PLACE 230702,,103700 INTO BYTE WORD + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY + ER5 AC-2,12701 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED + ER3 AC,12700 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY? + ER12 AC-4,12703 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12700 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - IDPB +;VERIFY THAT DPB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=10 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12710: MOVSI AC-2,250600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 + HRLI AC-3,170600 ;POINTER FOR COMPARISON + MOVE AC,[230703,,603700] ;SETUP BYTE WORD + MOVEM AC,BYTBLK + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + IDPB AC,&17 ;IDPB SHOULD PLACE 230702,,103700 INTO + ;BYTE WORD AND INCREMENT POINTER + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTED + ER12 AC-2,12713 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12710 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - IDPB +;VERIFY THAT IDPB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY + + AC=7 + SAVEAC (1,1) + + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12720: MOVSI AC-2,250600 + HRRI AC-2,&17 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,170600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;;SETUP AC + IDPB AC,BYTBLK ;IDPB SHOULD PLACE 230702,,103700 INTO + ;BYTE WORD AND INCREMENT POINTER + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY + ER5 AC-3,12721 ;FAILURE - POINTER WAS NOT INCREMENTED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED? + ER3 AC,12722 ;FAILURE - AC WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-4,12723 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G12720 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - IDPB +;VERIFY THAT IDPB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G12730: MOVSI AC-2,250600 + HRRI AC-2,BYTBLK+3 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,170600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230702,,103700] ;BYTE WORD FOR COMPARISON + MOVEI AC,654321 ;SETUP AC + IDPB AC,BYTBLK ;IDPB SHOULD PLACE 230702,,103700 INTO + ;BYTE WORD AND INCREMENT POINTER + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-4,12731 ;FAILURE - POINTER WAS MODIFIED + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-3,12732 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + CAIE AC,654321 ;WAS AC MODIFIED + ER3 AC,12733 ;FAILURE - AC WAS MODIFIED + JUMPL AC+2,G12730 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13000: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + MOVE AC-1,&17 ;BYTE WORD FOR COMPARISON + LDB AC,&17 ;LDB SHOULD PLACE 0,,36 INTO THE AC + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13001 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13002 ;FAILURE - BYTE NOT LOADED CORRECTLY. + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13003 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13000 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=14 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13010: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 ;POINTER FOR COMPARISON + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + MOVEM AC-1,BYTBLK ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + LDB AC,&17 ;LDB SHOULD PLACE 0,,36 INTO THE AC + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13011 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13012 ;FAILURE - BYTE NOT LOADED CORRECTLY + MOVE AC-5,BYTBLK + CAME AC-1,BYTBLK ;WAS BYTE WORD MODIFIED? + ER12 AC-5,13013 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13010 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY. + + AC=13 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13020: MOVSI AC-2,170600 + HRRI AC-2,&17 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC, ;SETUP AC + LDB AC,BYTBLK ;LDB SHOULD PLACE 20,,36 INTO THE AC + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-3,13021 ;FAILURE - POINTER WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13022 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13023 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13020 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - LDB +;VERIFY THAT LDB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY. + + AC=12 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13030: MOVSI AC-2,170600 + HRRI AC-2,BYTBLK+3 ;POINTER FOR COMPARISON + MOVEM AC-2,BYTBLK ;SETUP POINTER + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC, ;SETUP AC + LDB AC,BYTBLK ;LDB SHOULD PLACE 20,,36 INTO THE AC + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER MODIFIED? + ER5 AC-4,13031 ;FAILURE - POINTER WAS MODIFIED + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE WORD MODIFIED? + ER12 AC-3,13032 ;FAILURE - BYTE WORD WAS MODIFIED + CAIE AC,36 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13033 ;FAILURE - BYTE NOT LOADED CORRECTLY + JUMPL AC+2,G13030 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN BOTH POINTER AND BYTE +;ARE IN AC'S. + + AC=11 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13100: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,&17 + MOVE AC-3,&17 + HRLI AC-3,110600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + MOVE AC-1,&17 ;BYTE WORD FOR COMPARISON + ILDB AC,&17 ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT POINTER + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-2,3101 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13102 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13103 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13100 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN POINTER IS IN AN AC AND +;BYTE IS IN CORE MEMORY + + AC=10 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13110: MOVSI AC-2,170600 ;SETUP POINTER + HRRI AC-2,BYTBLK + MOVE AC-3,&17 + HRLI AC-3,110600 ;POINTER FOR COMPARISON + MOVE AC-1,[230703,,603700] ;BYTEWORD FOR COMPARISON + MOVEM AC,BYTBLK ;SETUP BYTE WORD + SETZ AC, ;SETUP AC + ILDB AC,&17 ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT POINTER + CAME AC-2,&17 ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-2,13111 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13012 ;FAILURE - BYTE NOT LOADED CORRECTLY + MOVE AC-5,BYTBLK + CAME AC-1,BYTBLK ;WAS BYTE WORD MODIFIED? + ER12 AC-5,13113 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13110 ;LOOP ON ERROR SWITCH +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN BYTE IS IN AN AC AND +;POINTER IS IN CORE MEMORY + + AC=7 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13120: MOVSI AC-2,170600 + HRRI AC-2,&17 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,110600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC ;SETUP AC + ILDB AC,BYTBLK ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT POINTER + MOVE AC-3,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-3,13121 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13122 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13123 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13120 ;LOOP ON ERROR SWITCH + +;MSCL BYTE TESTS - ILDB +;VERIFY THAT ILDB WORKS WHEN BOTH POINTER AND BYTE WORD ARE IN CORE MEMORY + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13130: MOVSI AC-2,170600 + HRRI AC-2,BYTBLK+3 + MOVEM AC-2,BYTBLK ;SETUP POINTER + HRLI AC-2,110600 ;POINTER FOR COMPARISON + MOVE AC-4,[230703,,603700] + MOVEM AC-4,BYTBLK+3 ;SETUP BYTE WORD + MOVE AC-1,[230703,,603700] ;BYTE WORD FOR COMPARISON + SETZ AC, ;SETUP AC + ILDB AC,BYTBLK ;ILDB SHOULD PLACE 0,,3 INTO THE AC + ;AND INCREMENT THE POINTER + MOVE AC-4,BYTBLK + CAME AC-2,BYTBLK ;WAS POINTER INCREMENTED CORRECTLY? + ER5 AC-4,13131 ;FAILURE - POINTER NOT INCREMENTED CORRECTLY + MOVE AC-3,BYTBLK+3 + CAME AC-1,BYTBLK+3 ;WAS BYTE WORD MODIFIED? + ER12 AC-3,13132 ;FAILURE - BYTE WORD WAS MODIFIED + CAIE AC,3 ;WAS BYTE LOADED CORRECTLY? + ER3 AC,13133 ;FAILURE - BYTE NOT LOADED CORRECTLY + JUMPL AC+2,G13130 ;LOOP ON ERROR SWITCH +;TEST LDB WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD BE CLEARED + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13200: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + LDB AC,&17 ;LDB SHOULD CLEAR THE AC + CAIE AC,0 ;WAS AC CLEARED? + ER3 AC,13201 ;FAILURE - AC WAS NOT CLEARED + CAIE AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13202 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13203 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13200 ;LOOP ON ERROR SWITCH + +;TEST ILDB WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD BE CLEARED + + AC=14 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13210: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + ILDB AC,&17 ;ILDB SHOULD CLEAR THE AC + CAIE AC,0 ;WAS AC CLEARED + ER3 AC,13211 ;FAILURE - AC WAS NOT CLEARED + CAIE AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13212 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13213 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13210 ;LOOP ON ERROR SWITCH +;TEST DPB WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD NOT BE AFFECTED + + AC=13 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13220: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + DPB AC,&17 ;DPB SHOULD NOT MODIFY ANYTHING + CAME AC,[-1] ;WAS AC MODIFIED? + ER3 AC,13221 ;FAILURE - AC WAS MODIFIED + CAIE AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13222 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13223 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13220 ;LOOP ON ERROR SWITCH + +;TEST IDPB WHEN SIZE OF BYTE IS ZERO BITS +;TITE AC SHOULD NOT BE AFFECTED + + AC=12 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13230: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + IDPB AC,&17 ;IDPB SHOULD NOT MODIFY ANYTHING + CAME AC,[-1] ;WAS AC MODIFIED? + ER3 AC,13231 ;FAILURE - AC WAS MODIFIED + CAIE AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13232 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13233 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13230 ;LOOP ON ERROR SWITCH +;TEST IBP WHEN SIZE OF BYTE IS ZERO BITS +;THE AC SHOULD NOT BE AFFECTED + + AC=11 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13240: MOVEI AC-2,&17 ;SETUP POINTER + SETO AC, ;SETUP AC + HRRZI AC-4,10 ;SETUP BYTE WORD + SKIPN KLFLG + IBP AC,&17 ;IBP SHOULD NOT MODIFY ANYTHING + SKIPE KLFLG + IBP 0,&17 ;KL10, DON'T DO ADJBP ! + CAME AC,[-1] ;WAS AC MODIFIED? + ER3 AC,13241 ;FAILURE - AC WAS MODIFIED + CAIE AC-2,&17 ;WASPOINTER MODIFIED? + ER5 AC-2,13242 ;FAILURE - POINTER WAS MODIFIED + CAIE AC-4,10 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13243 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13240 ;LOOP ON ERROR SWITCH +;TEST LDB WHEN SIZE OF BYTE IS ONE BIT + + AC=10 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13300: MOVSI AC-2,430100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,0 ;SETUP AC + HRLZI AC-4,-1 ;SETUP BYTE WORD + MOVE AC-3,&17 ;BYTE OWRD FOR COMPARISON + LDB AC,&17 ;LDB SHOULD PLACE 0,,1 INTO THE AC + CAIE AC,1 ;LOOP ON ERROR SWITCH + ER3 AC,13301 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-2,&17 ;WAS POINTER MODIFIED? + ER5 AC-2,13302 ;FAILURE POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED? + ER12 AC-4,13303 ;FAILURE - BYTE OWRD WAS MODIFIED + JUMPL AC+2,G13300 ;LOOP ON ERROR SWITCH + +;TEST LDB WHEN SIZE OF BYTE IS ONE BIT + + AC=7 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13310: MOVSI AC-2,100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,0 ;SETUP AC + HRLOI AC-4,0 ;SETUP BYTE WORD + MOVE AC-3,&17 ;BYTE WORD FOR COMPARISON + LDB AC,&17 ;LDB SHOULD PLACE 0,,1 INTO THE AC + CAIE AC,1 ;LOOP ON ERROR SWITCH + ER3 AC,13311 ;FAILURE - BYTE NOT LOADED CORRECTLY + CAME AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13312 ;FAILURE - POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE WORD MODIFIED + ER12 AC-4,13313 ;FAILURE - BYTE WORD WAS MODIFIED + JUMPL AC+2,G13310 ;LOOP ON ERROR SWITCH +;TEST DPB WHEN SIZE OF BYTE IS ONE BIT + + AC=6 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13320: MOVSI AC-2,430100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,76 ;SETUP AC + MOVEM AC,&17 ;AC FOR COMPARISON + SETO AC-4, ;SETUP BYTE WORD + MOVE AC-3,[377777,,-1] ;BYTE WORD FOR COMPARISON + DPB AC,&17 ;DPB SHOULD PLACE 377777,,-1 INTO BYTE WORD + CAME AC,&17 ;WAS AC MODIFIED? + ER3 AC,13321 ;FAILURE - AC WAS MODIFIED + CAME AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13322 ;FAILURE - POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-4,13323 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G13320 ;LOOP ON ERROR SWITCH + +;TEST DPB WHEN SIZE OF BYTE IS ONE BIT + + AC=5 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13330: MOVSI AC-2,100 + HRRI AC-2,&17 ;SETUP POINTER + MOVE AC-1,&17 ;POINTER FOR COMPARISON + HRROI AC,76 ;SETUP AC + MOVEM AC,&17 ;AC FOR COMPARISON + SETO AC-4, ;SETUP BYTE WORD + MOVE AC-3,[-2] ;BYTE WORD FOR COMPARISON + DPB AC,&17 ;DPB SHOULD PLACE -1,,-2 INTO BYTE WORD + CAME AC,&17 ;WAS AC MODIFIED + ER3 AC,13331 ;FAILURE - AC WAS MODIFIED + CAME AC-2,&17 ;WAS POINTER MODIFIED + ER5 AC-2,13332 ;FAILURE - POINTER WAS MODIFIED + CAME AC-4,&17 ;WAS BYTE DEPOSITED CORRECTLY + ER12 AC-4,13333 ;FAILURE - BYTE NOT DEPOSITED CORRECTLY + JUMPL AC+2,G13330 ;LOOP ON ERROR SWITCH +;TEST IBP WHEN S IS GREATER THAN P AND THE ADDRESS FIELD OF THE POINTER IS 777777 +;IBP SHOULD CAUSE THE ADDRESS FIELD TO CLEAR AND P SHOULD BECOME 44-S + + AC=4 + SAVEAC (1,1) + JRSTF @[.+1] ;CLEAR ALL FLAGS + +G13400: HRLOI AC-2,000100 ;SETUP POINTER + HRLZI AC-3,430101 ;RESULT FOR COMPARISON (KA) + IBP &17 ;IBP SHOULD PLACE 430100,,0 INTO PTR + CAME AC-2,&17 ;PASS IF POINTER UPATED CORRECTLY + ER5 AC-2,13400 ;POINTER NOT UPDATED CORRECTLY + JUMPL AC+2,G13400 ;LOOP ON ERROR SWITCH +SUBTTL PART II - GENERAL BLOCK TRANSFER TEST + + MOVEI [ASCIZ/BLT FAILED/] + MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTOR + +;VERFIY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ZEROS +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND WITHIN THE AC ADDRESS RANGE. + AC=7 + SAVEAC (1,1) +SN=22100 + SRCE=&17 ;SOURCE BLOCK=AC-6 + DEST=&17 ;DESTINATION BLOCK=AC-6 + SIZ=1 ;BLOCK SIZE = 1 OWRD + +G22100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETOB SRCE-1,SRCE+1 ;PRELOAD SRCE-1 AND SRCE+1 WITH ONES + SETZM SRCE ;LOAD SRCE WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD CLEAR DEST BLOCK +SN=SN+1 + CAME DEST-1,[-1] ;WAS DEST-1 CLOBBERRED? + ER2 DEST-1,SN ;DEST -1 WAS CLOBBERRED +SN=SN+1 + SKIPE DEST ;DID BLT LOAD DEST FROM SRCE? + ER2 DEST,SN ;FAIL IF C(DEST) NON-ZERO +SN=SN+1 + CAME DEST+1,[-1] ;WAS DEST+1 CLOBBERRED? + ER2 DEST+1,SN ;DEST +1 WAS CLOBBERRED + JUMPL AC+2,G22100 ;LOOP ON ERROR SWITCH +PAGE +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ONES +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND WITHIN THE AC ADDRESS RANGE. + AC=14 + SAVEAC (1,1) +SN=22200 + SRCE=&17 ;SOURCE BLOCK = AC-6 + DEST=&17 ;DESTINATION BLOCK = AC-6 + SIZ=1 ;BLOCK = 1 WORD + +G22200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETZB SRCE-1,SRCE+1 ;PRELOAD SRCE-1 AND SRCE+1 WITH ZEROS + SETOM SRCE ;LOAD SRCE WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DEST WITH ONES +SN=SN+1 + SKIPE DEST-1 ;WAS DEST-1 CLOBBERRED? + ER2 DEST-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + CAME DEST,[-1] ;DID BLT LOAD DEST FROM SRCE? + ER2 DEST,SN ;FAIL IF C(DEST) NOT ALL ONES +SN=SN+1 + SKIPE DEST+1 ;WAS DEST+1 CLOBBERRED? + ER2 DEST+1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+2,G22200 ;LOOP ON ERROR SWITCH +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF DATA +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND WITHIN THE AC ADDRESS RANGE. + + AC=14 + SAVEAC (1,1) +SN=22300 + SRCE=&17 ;SOURCE BLOCK = AC-6 + DEST=&17 ;DESTINATION BLOCK = AC-6 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF ARCE AND DEST + SETZB SRCE-1,SRCE+1 ;CLEAR SRCE-1 AND SRCE+1 + MOVE SRCE,[230703,,603700] ;PRELOAD SOURCE BLOCK + BLT AC,DEST+SIZ-1 ;*BLT SHOULD PLACE C(SRCE) INTO DEST +SN=SN+1 + SKIPE DEST-1 ;WAS DEST-1 CLOBBERRED? + ER2 DEST-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + CAME DEST,[230703,,603700] ;DID BLT LOAD DEST FROM SRCE + ER2 DEST,SN ;FAIL IF C(DEST) NOT 230703,,603700 +SN=SN+1 + SKIPE DEST+1 ;WAS DEST+1 CLOBBERRED? + ER2 DEST+1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+2,G22300 ;LOOP ON ERROR SWITCH +PAGE +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ZEROS +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND BEYOND THE AC ADDRESS RANGE. + AC=14 + SAVEAC (1,1) +SN=22400 + SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETOM SRCE-1 ;PRELOAD SRCE-1 WITH ONES + SETZM SRCE ;LOAD SRCE WITH ZEROS + SETOM SRCE+1 ;PRELOAD SRCE+1 WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD CLEAR DEST BLOCK +SN=SN+1 + MOVE AC-1,DEST-1 + CAME AC-1,[-1] ;WAS DEST-1 CLOBBERRED? + ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + MOVE AC-1,DEST + SKIPE AC-1 ;DID BLT LOAD DEST FROM SRCE? + ER2 AC-1,SN ;FAIL IF C(DEST) NOT ZERO +SN=SN+1 + MOVE AC-1,DEST+1 + CAME AC-1,[-1] ;WAS DEST+1 CLOBBERRED? + ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+1,G22400 ;LOOP ON ERROR SWITCH +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF ONES +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND BEYOND THE AC ADDRESS RANGE. + + AC=13 + SAVEAC (1,1) +SN=22500 + SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETZM SRCE-1 ;PRELOAD SRCE-1 WITH ZEROS + SETOM SRCE ;LOAD SRCE WITH ONES + SETZM SRCE+1 ;PRELOAD SRCE+1 WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DEST BLOCK WITH ONES +SN=SN+1 + MOVE AC-1,DEST-1 + SKIPE AC-1 ;WAS DEST-1 CLOBBERRED? + ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + MOVE AC-1,DEST + CAME AC-1,[-1] ;DID BLT LOAD DEST FROM SRCE? + ER2 AC-1,SN ;FAIL IF C(DEST) NOT ALL ONES +SN=SN+1 + MOVE AC-1,DEST+1 + SKIPE AC-1 ;WAS DEST+1 CLOBBERRED? + ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+2,G22500 ;LOOP ON ERROR SWITCH +PAGE +;VERIFY THAT BLT WILL TRANSFER A 1 - WORD BLOCK OF DATA +;WHERE BOTH SOURCE AND DESTINATION BLOCKS ARE THE SAME +;AND BEYOND THE AC ADDRESS RANGE. + + AC=12 + SAVEAC (1,1) +SN=22600 + SRCE=BLTBLK+1 ;SOURCE BLOCK = BLTBLK+1 + DEST=BLTBLK+1 ;DEST BLOCK = BLTBLK+1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G22600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH ADR OF SRCE AND DEST + SETZM SRCE-1 ;PRELOAD SRCE-1 WITH ZEROS + MOVE AC+1,[230703,,603700] ;LOAD SRCE BLOCK + MOVEM AC+1,SRCE + SETZM SRCE+1 ;PRELOAD SRCE+1 WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD PLACE C(SRCE) INTO DEST +SN=SN+1 + MOVE AC-1,DEST-1 + SKIPE AC-1 ;WAS DEST-1 CLOBBERRED? + ER2 AC-1,SN ;DEST-1 WAS CLOBBERRED +SN=SN+1 + MOVE AC-1,DEST + CAME AC-1,[230703,,603700] ;DID BLT LOAD DEST FROM SRCE? + ER2 AC-1,SN ;FAIL IF C(DEST) NOT 230703,,603700 +SN=SN+1 + MOVE AC-1,DEST+1 + SKIPE AC-1 ;WAS DEST+1 CLOBBERRED? + ER2 AC-1,SN ;DEST+1 WAS CLOBBERRED + JUMPL AC+1,G22600 ;LOOP ON ERROR SWITCH +;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + + BLTM1 (22700,14,<&17>,<&17>,0) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + + BLTM1 (23000,13,<&17>,<&17>,-1) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE AC ADDRESSES. + + BLTM1 (23100,12,<&17>,<&17>,<230703,,603700>) +PAGE +;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + + BLTM1 (23200,14,<&17>,,0) +PAGE +;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + + BLTM1 (23300,13,<&17>,,-1) +PAGE +;SOURCE BLOCK HAS AC ADDRESS, DESTINATION BLOCK HAS NON-AC ADDRESS + + BLTM1 (23400,12,<&17>,,<230703,,603700>) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + + BLTM1 (23500,11,,,0) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + + BLTM1 (23600,10,,,-1) +PAGE +;BOTH SOURCE AND DESTINATION BLOCKS HAVE NON-AC ADDRESSES + + BLTM1 (23700,7,,,<230703,,603700>) +PAGE +;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + + BLTM1 (24000,14,,<&17>,0) +PAGE +;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + + BLTM1 (24100,13,,<&17>,-1) +PAGE +;SOURCE BLOCK HAS NON-AC ADDRESS, DESTINATION BLOCK HAS AC ADDRESS + + BLTM1 (24200,12,,<&17>,<230703,,603700>) +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - ZEROS + + AC=14 + SAVEAC (1,1) + +SN=20100 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF SOURCE + ;AND DESTINATION BLOCKS + SETOB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF + ;SOURCE BLOCK +1 WITH ONES + SETZB SRCE,SRCE+1 ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH ZEROS + SETZB SRCE+2,SRCE+3 + SETZM SRCE+4 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + SKIPE DEST ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+1 ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+2 ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+3 ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+4 ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20100 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - ONES + + AC=14 + SAVEAC (1,1) + +SN=20200 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF SOURCE + ;AND DESTINATION BLOCKS + SETZB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF SOURCE + ;BLOCK +1 WITH ZEROS + SETOB SRCE,SRCE+1 ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH ONES + SETOB SRCE+2,SRCE+3 + SETOM SRCE+4 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + SKIPE DEST-1 ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[-1,,-1] ;WAS FIRST WORD OF DESTINATION BLOCK LOAED CORRECTLY + ;FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[-1,,-1] ;WAS SECOND WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[-1,,-1] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[-1,,-1] ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[-1,,-1] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + SKIPE DEST+SIZ ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20200 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - SINGLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=20300 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOB SRCE-1,SRCE+SIZ ;PRELOAD SOURCE BLOCK -1 AND LAST WORD OF SOURCE + ;BLOCK +1 WITH ONES + MOVE SRCE,[230703,,603700] ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH + ;230703,,603700 + MOVE SRCE+1,[230703,,603700] + MOVE SRCE+2,[230703,,603700] + MOVE SRCE+3,[230703,,603700] + MOVE SRCE+4,[230703,,603700] + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[230703,,603700] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[230703,,603700] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[230703,,603700] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[230703,,603700] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[230703,,603700] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;NOT LOADED CORRECTLY FROM SOURCE + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20300 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- AC RANGE - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=20400 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS=&17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + ;OF SOURCE BLOCK WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170360] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170360 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[036074,,170360] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G20400 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS + ;- NON-AC RANGE - ZEROS + + AC=13 + SAVEAC (1,1) + +SN=20500 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH ONES + SETZM SRCE ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK WITH + ;ZEROS + SETZM SRCE+1 + SETZM SRCE+2 + SETZM SRCE+3 + SETZM SRCE+4 + SETOM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + SKIPE &17 ;WAS FIRST WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + SKIPE &17 ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + SKIPE &17 ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + SKIPE &17 ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + SKIPE &17 ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G20500 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- NON-AC RANGE - ONES + + AC=12 + SAVEAC (1,1) + +SN=20600 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETZM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH ZEROS + SETOM SRCE ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK WITH + ;ONES + SETOM SRCE+1 + SETOM SRCE+2 + SETOM SRCE+3 + SETOM SRCE+4 + SETZM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH ZEROS + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + SKIPE &17 ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[-1,,-1] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[-1,,-1] ;WAS SECOND WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[-1,,-1] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[-1,,-1] ;WAS FOURTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[-1,,-1] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED CORRECTLY + ;FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + SKIPE &17 ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G20600 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- NON-AC RANGE - SINGLE PATTERN + + AC=11 + SAVEAC (1,1) + +SN=20700 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G20700: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH ONES + MOVE [230703,,603700] + MOVEM SRCE ;PRELOAD ALL WORDS OF SOURCE BLOCK WITH 230703,,603700 + MOVEM SRCE+1 + MOVEM SRCE+2 + MOVEM SRCE+3 + MOVEM SRCE+4 + SETOM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[230703,,603700] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[230703,,603700] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[230703,,603700] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[230703,,603700] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FOURTH WORD OF DESTINATION BLOCK NOT LOADED CORRECTLY + ;FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[230703,,603700] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC+2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G20700 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE AND DESTINATION BLOCKS HAVE SAME STARTING ADDRESS +;- NON-AC RANGE - MULTIPLE PATTERN + + AC=10 + SAVEAC (1,1) + +SN=21000 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS=BLTBLK+1 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21000: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE [230703,,603700] + MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH 230703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,631463] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170360] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170360 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[036074,,170360] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21000 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS MINUS ONE - AC RANGE - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21100 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS= &17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21100: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH ONES + MOVE DEST,[230703,,603700] ;PRELOAD FIRST WORD OF DESTINATION BLOCK + ;WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME DEST-1,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE + +SN=SN+1 + CAME DEST+3,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION + ;BLOCK LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[017407,,603701] ;WAS LAST WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[017407,,603701] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21100 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS MINUS ONE - NON-AC RANGE - MULTIPLE PATTERN + + AC=6 + SAVEAC (1,1) + +SN=21200 + SRCE=BLTBLK+2 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+2 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS= BLTBLK+1 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21200: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + SETOM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH ONES + MOVE [230703,,603700] + MOVEM DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK + ;WITH 230703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,631463] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170630] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS MINUS ONE - NON-AC RANGE - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC-2,DEST-1 + CAME AC-2,[-1,,-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[017407,,603701] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[017407,,603701] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED +SN=SN+1 + MOVE AC-2,SRCE+SIZ + CAME AC-2,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK WAS + ;CLOBBERED + JUMPL AC+2,G21200 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS PLUS ONE - AC RANGE - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21300 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS= &17 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21300: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + ;OF SOURCE BLOCK WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + SETOM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +SN=SN+1 + CAME SRCE-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + CAME SRCE,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 SRCE,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[252525,,252525] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[252525,,252525] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[252525,,252525] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[252525,,252525] ;WAS LAST WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G21300 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS PLUS ONE - NON-AC RANGE - MULTIPLE PATTERN + + AC=4 + SAVEAC (1,1) + +SN=21400 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+1 + DEST=BLTBLK+2 ;DESTINATION BLOCK STARTING ADDRESS= BLTBLK+2 + SIZ=5 ;BLOCK SIZE=5 WORDS + +G21400: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE [230703,,603700] + MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH 23703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,146314] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170630] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + SETOM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WITH ONES + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE DESTINATION STARTING ADDRESS EQUALS SOURCE STARTING +;ADDRESS PLUS ONE - NON-AC RANGE - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC-2,SRCE-1 + CAME AC-2,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + MOVE AC-2,SRCE + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 AC-2,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC-2,DEST + CAME AC-2,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+1 + CAME AC-2,[252525,,252525] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+2 + CAME AC-2,[252525,,252525] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+3 + CAME AC-2,[252525,,252525] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+4 + CAME AC-2,[252525,,252525] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC-2,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC-2,DEST+SIZ + CAME AC-2,[-1,,-1] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;CLOBBERED? + ER2 AC-2,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21400 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK +;HAS NON-AC ADDRESS- MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21500 + SRCE=&17 ;SOURCE BLOCK STARTING ADDRESS=&17 + DEST=BLTBLK+1 ;DESTINATION BLOCK STARTING ADDRESS=BLTBLK+1 + SIZ=^D10 ;BLOCK SIZE=10 WORDS + +G21500: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE SRCE-1,[230703,,603700] ;PRELOAD WORD PRECEEDING FIRST WORD + ;OF SOURCE BLOCK WITH 230703,,603700 + MOVE SRCE,[252525,,252525] ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH + ;252525,,252525 + MOVE SRCE+1,[146314,,631463] ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE SRCE+2,[070707,,070707] ;PRELOAD THIRD WORD OF SOURCE BLOCK + ;WITH 070707,,070707 + MOVE SRCE+3,[036074,,170630] ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE SRCE+4,[017407,,603701] ;PRELOAD FIFTH WORD OF SOURCE BLOCK + ;WITH 017407,,603701 + MOVE SRCE+5,[007700,,770077] ;PRELOAD SIXTH WORD OF SOURCE BLOCK + ;WITH 007700,,770077 + MOVE SRCE+6,[003760,,077401] ;PRELOAD SEVENTH WORD OF SOURCE BLOCK + ;WITH 003760,,077401 + MOVE SRCE+7,[001774,,007760] ;PRELOAD EIGHTH WORD OF SOURCE BLOCK + ;WITH 001774,,007760 + MOVE SRCE+^D8,[000777,,000777] ;PRELOAD NINTH WORD OF SOURCE BLOCK + ;WITH 000777,,000777 + MOVE SRCE+^D9,[000377,,600077] ;PRELOAD TENTH WORD OF SOURCE BLOCK + ;WITH 000377,,600077 + MOVE SRCE+SIZ,[007603,,607062] ;PRELOAD WORD FOLLOWING LAST WORD + ;OF SOURCE BLOCK WITH 007603,,607062 + MOVEM GSVAC0# + HRROI DEST-1 + MOVEM DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH DEST-1 + HRROI DEST + MOVEM DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK WITH DEST + HRROI DEST+1 + MOVEM DEST+1 ;PRELOAD SECOND WORD OF DESTINATION BLOCK WITH DEST+1 + HRROI DEST+2 + MOVEM DEST+2 ;PRELOAD THIRD WORD OF DESTINATION BLOCK WITH DEST+2 + HRROI DEST+3 + MOVEM DEST+3 ;PRELOAD FOURTH WORD OF DESTINATION BLOCK WITH DEST+3 + HRROI DEST+4 + MOVEM DEST+4 ;PRELOAD FIFTH WORD OF DESTINATION BLOCK WITH DEST+4 + HRROI DEST+5 + MOVEM DEST+5 ;PRELOAD SIXTH WORD OF DESTINATION BLOCK WITH DEST+5 + HRROI DEST+6 + MOVEM DEST+6 ;PRELOAD SEVENTH WORD OF DESTINATION BLOCK WITH DEST+6 + HRROI DEST+7 + MOVEM DEST+7 ;PRELOAD EIGHTH WORD OF DESTINATION BLOCK WITH DEST+7 + HRROI DEST+^D8 + MOVEM DEST+^D8 ;PRELOAD NINTH WORD OF DESTINATION BLOCK WITH DEST+8 + HRROI DEST+^D9 + MOVEM DEST+^D9 ;PRELOAD TENTH WORD OF DESTINATION BLOCK WITH DEST+9 + HRROI DEST+SIZ + MOVEM DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WITH DEST+SIZ + MOVE GSVAC0 + + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK +;HAS NON-AC ADDRESS- MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + CAME SRCE-1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + CAME SRCE,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 SRCE,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+1,[146314,,631463] ;WAS SECOND WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+1,SN ;FAIL IF SECOND WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+2,[070707,,070707] ;WAS THIRD WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+2,SN ;FAIL IF THIRD WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+3,[036074,,170630] ;WAS FOURTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+3,SN ;FAIL IF FOURTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+4,[017407,,603701] ;WAS FIFTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+4,SN ;FAIL IF FIFTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+5,[007700,,770077] ;WAS SIXTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+5,SN ;FAIL IF SIXTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+6,[003760,,077401] ;WAS SEVENTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+6,SN ;FAIL IF SEVENTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+7,[001774,,007760] ;WAS EIGHTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+7,SN ;FAIL IF EIGHTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+^D8,[000777,,000777] ;WAS NINTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+^D8,SN ;FAIL IF NINTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+^D9,[000377,,600077] ;WAS LAST WORD OF SOURCE BLOCK CLOBBERED? + ER2 SRCE+^D9,SN ;FAIL IF LAST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + CAME SRCE+SIZ,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 SRCE+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +;DO A BLT WHERE SOURCE BLOCK HAS AC ADDRESS AND DESTINATION BLOCK +;HAS NON-AC ADDRESS- MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC+1,DEST-1 + CAME AC+1,[-1,,DEST-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + MOVE AC+1,DEST + CAME AC+1,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+1 + CAME AC+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+2 + CAME AC+1,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+3 + CAME AC+1,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+4 + CAME AC+1,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+5 + CAME AC+1,[007700,,770077] ;WAS SIXTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF SIXTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+6 + CAME AC+1,[003760,,077401] ;WAS SEVENTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF SEVENTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+7 + CAME AC+1,[001774,,007760] ;WAS EIGHTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF EIGHTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+^D8 + CAME AC+1,[000777,,000777] ;WAS NINTH WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF NINTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+^D9 + CAME AC+1,[000377,,600077] ;WAS LAST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 AC+1,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + MOVE AC+1,DEST+SIZ + CAME AC+1,[-1,,DEST+SIZ] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION BLOCK + ;WAS CLOBBERED + JUMPL AC+2,G21500 ;LOOP ON ERROR SWITCH +;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK +;HAS AC ADDRESS - MULTIPLE PATTERN + + AC=14 + SAVEAC (1,1) + +SN=21600 + SRCE=BLTBLK+1 ;SOURCE BLOCK STARTING ADDRESS= BLTBLK+1 + DEST=&17 ;DESTINATION BLOCK STARTING ADDRESS= &17 + SIZ=^D10 ;BLOCK SIZE=10 WORDS + +G21600: MOVE AC,[SRCE,,DEST] ;PRELOAD AC WITH STARTING ADDRESSES OF + ;SOURCE AND DESTINATION BLOCKS + MOVE [230703,,603700] + MOVEM SRCE-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WITH 230703,,603700 + MOVE [252525,,252525] + MOVEM SRCE ;PRELOAD FIRST WORD OF SOURCE BLOCK WITH 252525,,252525 + MOVE [146314,,631463] + MOVEM SRCE+1 ;PRELOAD SECOND WORD OF SOURCE BLOCK + ;WITH 146314,,631463 + MOVE [070707,,070707] + MOVEM SRCE+2 ;PRELOAD THIRD WORD OF SOURCE BLOCK WITH 070707,,070707 + MOVE [036074,,170630] + MOVEM SRCE+3 ;PRELOAD FOURTH WORD OF SOURCE BLOCK + ;WITH 036074,,170630 + MOVE [017407,,603701] + MOVEM SRCE+4 ;PRELOAD + ;FIFTH WORD OF SOURCE BLOCK WITH 017407,,603701 + MOVE [007700,,770077] + MOVEM SRCE+5 ;PRELOAD SIXTH WORD OF SOURCE BLOCK WITH 007700,,770077 + MOVE [003760,,077401] + MOVEM SRCE+6 ;PRELOAD SEVENTH WORD OF SOURCE BLOCK + ;WITH 003760,,077401 + MOVE [001774,,007760] + MOVEM SRCE+7 ;PRELOAD EIGHTH WORD OF SOURCE BLOCK + ;WITH 001774,,007760 + MOVE [000777,,000777] + MOVEM SRCE+^D8 ;PRELOAD NINTH WORD OF SOURCE BLOCK WITH 000777,,000777 + MOVE [000377,,600077] + MOVEM SRCE+^D9 ;PRELOAD TENTH WORD OF SOURCE BLOCK WITH 000377,,600077 + MOVE [007603,,607062] + MOVEM SRCE+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF SOURCE BLOCK + ;WITH 007603,,607062 + HRROI DEST-1,DEST-1 ;PRELOAD WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WITH DEST-1 + HRROI DEST,DEST ;PRELOAD FIRST WORD OF DESTINATION BLOCK WITH DEST + HRROI DEST+1,DEST+1 ;PRELOAD SECOND WORD OF DESTINATION BLOCK + ;WITH DEST+1,DEST+1 + HRROI DEST+2,DEST+2 ;PRELOAD THIRD WORD OF DESTINATION BLOCK WITH DEST+2 + HRROI DEST+3,DEST+3 ;PRELOAD FOURTH WORD OF DESTINATION BLOCK WITH DEST+3 + HRROI DEST+4,DEST+4 ;PRELOAD FIFTH WORD OF DESTINATION BLOCK WITH DEST+4 + HRROI DEST+5,DEST+5 ;PRELOAD SIXTH WORD OF DESTINATION BLOCK WITH DEST+5 + HRROI DEST+6,DEST+6 ;PRELOAD SEVENTH WORD OF DESTINATION BLOCK WITH DEST+6 + HRROI DEST+7,DEST+7 ;PRELOAD EIGHTH WORD OF DESTINATION BLOCK WITH DEST+7 + HRROI DEST+^D8,DEST+^D8 ;PRELOAD NINTH WORD OF DESTINATION BLOCK WITH DEST+8 + HRROI DEST+^D9,DEST+^D9 ;PRELOAD TENTH WORD OF DESTINATION BLOCK WITH DEST+9 + HRROI DEST+SIZ,DEST+SIZ ;PRELOAD WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WITH DEST+SIZ + BLT AC,DEST+SIZ-1 ;*BLT SHOULD LOAD DESTINATION BLOCK FROM SOURCE BLOCK +;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK +;HAS AC ADDRESS - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + MOVE AC+1,SRCE-1 + CAME AC+1,[230703,,603700] ;WAS WORD PRECEEDING FIRST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF SOURCE BLOCK + ;WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE + CAME AC+1,[252525,,252525] ;WAS FIRST WORD OF SOURCE BLOCK CLOBBERED + ER2 AC+1,SN ;FAIL IF FIRST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+1 + CAME AC+1,[146314,,631463] ;WAS SECOND WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF SECOND WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+2 + CAME AC+1,[070707,,070707] ;WAS THIRD WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF THIRD WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+3 + CAME AC+1,[036074,,170630] ;WAS FOURTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF FOURTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+4 + CAME AC+1,[017407,,603701] ;WAS FIFTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF FIFTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+5 + CAME AC+1,[007700,,770077] ;WAS SIXTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF SIXTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+6 + CAME AC+1,[003760,,077401] ;WAS SEVENTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF SEVENTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+7 + CAME AC+1,[001774,,007760] ;WAS EIGHTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF EIGTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+^D8 + CAME AC+1,[000777,,000777] ;WAS NINTH WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF NINTH WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+^D9 + CAME AC+1,[000377,,600077] ;WAS LAST WORD OF SOURCE BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF LAST WORD OF SOURCE BLOCK WAS CLOBBERED +SN=SN+1 + MOVE AC+1,SRCE+SIZ + CAME AC+1,[007603,,607062] ;WAS WORD FOLLOWING LAST WORD OF SOURCE + ;BLOCK CLOBBERED? + ER2 AC+1,SN ;FAIL IF WORD FOLLOWING LAST WORD OF SOURCE BLOCK WAS + ;CLOBBERED +;DO A BLT WHERE SOURCE BLOCK HAS NON-AC ADDRESS AND DESTINATION BLOCK +;HAS AC ADDRESS - MULTIPLE PATTERN (CONTINUED) + +SN=SN+1 + CAME DEST-1,[-1,,DEST-1] ;WAS WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST-1,SN ;FAIL IF WORD PRECEEDING FIRST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED? +SN=SN+1 + CAME DEST,[252525,,252525] ;WAS FIRST WORD OF DESTINATION BLOCK LOADED + ;CORRECTLY FROM SOURCE? + ER2 DEST,SN ;FAIL IF FIRST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+1,[146314,,631463] ;WAS SECOND WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+1,SN ;FAIL IF SECOND WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+2,[070707,,070707] ;WAS THIRD WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+2,SN ;FAIL IF THIRD WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+3,[036074,,170630] ;WAS FOURTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+3,SN ;FAIL IF FOURTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+4,[017407,,603701] ;WAS FIFTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+4,SN ;FAIL IF FIFTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+5,[007700,,770077] ;WAS SIXTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+5,SN ;FAIL IF SIXTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+6,[003760,,077401] ;WAS SEVENTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+6,SN ;FAIL IF SEVENTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+7,[001774,,007760] ;WAS EIGHTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+7,SN ;FAIL IF EIGHTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+^D8,[000777,,000777] ;WAS NINTH WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+^D8,SN ;FAIL IF NINTH WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+^D9,[000377,,600077] ;WAS LAST WORD OF DESTINATION BLOCK + ;LOADED CORRECTLY FROM SOURCE? + ER2 DEST+^D9,SN ;FAIL IF LAST WORD OF DESTINATION BLOCK NOT LOADED + ;CORRECTLY FROM SOURCE +SN=SN+1 + CAME DEST+SIZ,[-1,,DEST+SIZ] ;WAS WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK CLOBBERED? + ER2 DEST+SIZ,SN ;FAIL IF WORD FOLLOWING LAST WORD OF DESTINATION + ;BLOCK WAS CLOBBERED + JUMPL AC+2,G21600 ;LOOP ON ERROR SWITCH +;TEST BLT WITH 'E' LESS THAN RH(AC) +;SUCH THAT THE BLT INSTR. TRANSFERS ONLY ONE WORD, THEN STOPS. + + AC=10 + SAVEAC (1,1) + SN=21700 + + BLTSRC=END+2 + BLTDST=END+6 + +G21700: MOVE AC,[252525,,252525] ; PRELOAD FOR SRC-1 + MOVEM AC,BLTSRC-1 + MOVE AC,[707070,,707070] ; PRELOAD FOR SRC + MOVEM AC,BLTSRC + MOVE AC,[525252,,525252] ;PRELOAD FOR SRC+1 + MOVEM AC,BLTSRC+1 + MOVE AC,[123456,,654321] ;PRELOAD FOR DST-1 + MOVEM AC,BLTDST-1 + MOVE AC,[070707,,070707] ;PRELOAD FOR DST + MOVEM AC,BLTDST + MOVE AC,[112233,,445566] ;PRELOAD FOR DST+1 + MOVEM AC,BLTDST+1 + + MOVE AC,[BLTSRC,,BLTDST] ;SETUP BLT PTR=FROM,,TO + BLT AC,BLTDST-1 ;*BLT SHOULD XFER ONE WORD AND STOP + +SN=SN+1 + CAME AC,[BLTSRC,,BLTDST] ;SEE IF PTR CHANGED + ER2 AC,SN ;YES, REPORT +SN=SN+1 + MOVE AC,[252525,,252525] ;GET PRELOAD FOR SRC-1 + CAME AC,BLTSRC-1 ;SEE IF OK + ER2 AC,SN ;REPORT ERROR +SN=SN+1 + MOVE AC,[707070,,707070] ;GET PRELOAD FOR SRC + CAME AC,BLTSRC ;SEE IF SRC OK + ER2 AC,SN ; REPORT ERR +SN=SN+1 + MOVE AC,[525252,,525252] ;GET PRELOAD FOR SRC+1 + CAME AC,BLTSRC+1 ;SEE IF OK + ER2 AC,SN ;REPORT ER +SN=SN+1 + MOVE AC,[123456,,654321] ;GET PRELOAD FOR DST-1 + CAME AC,BLTDST-1 ;SEE IF OK + ER2 AC,SN ;REPORT ERR +SN=SN+1 + MOVE AC,[707070,,707070] ;GET PRELOAD FOR SRC*** + CAME AC,BLTDST ;SEE IF IT XFERED A WORD + ER2 AC,SN ;REPORT ER +SN=SN+1 + MOVE AC,[112233,,445566] ;GET PRELOAD FOR DST+1 + CAME AC,BLTDST+1 ;SEE IF XFERED ONLY ONE WORD + ER2 AC,SN ;REPORT ERR + + JUMPL AC+2,G21700 ;LOOP ON ERROR SWITCH +SUBTTL PART III - GENERAL JFFO TEST + +;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0 + +G30000: SN=30100 + AC=-1 + + MOVEI [ASCIZ/JFFO NO-JUMP FAILED/] + MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTOR + +G30100: REPEAT ^D13,< +;VERIFY THAT JFFO WILL CLEAR AC+1 AND NOT JUMP WHEN C(AC)=0. +;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + +SN=SN+1 + AC=&17 + SAVEAC (1,1) + + SETZM AC ;CLEAR AC + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD CLEAR AC+1 AND NOT JUMP + JRST .+2 ;PASS IF JFFO DOES NOT JUMP + ER2 AC,SN ;ERROR IF JFFO JUMPED + SKIPE AC ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + SKIPE &17 ;EXAMINE AC+1 + ER4 AC+1,SN ;AC+1 WAS NOT CLEARED + JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH +> +PAGE +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO + + MOVEI [ASCIZ/JFFO JUMP FAILED/] + MOVEM SPDES ;INITIALIZE SPECIAL FAILURE DESCRIPTER + +G30200: SETOB AC,&17 ;INITIALIZE AC AND AC+1 + JFFO AC,.+2 + ER2 AC,30201 ;ERROR IF JFFO DID NOT JUMP + CAME AC,[-1,,-1] ;EXAMINE AC + ER3 AC,30201 ;C(AC) WAS CLOBBERED + SKIPE &17 ;EXAMINE AC+1 + ER4 AC+1,30201 ;C(AC+1) NOT = TO NO OF LEADING ZEROS IN AC + JUMPL AC+2,G30200 ;LOOP ON ERROR SWITCH +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO +;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + +SN=30300 + XX=1000000 + ZZ=-1 + +G30300: REPEAT ^D18,< +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO +;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + +SN=SN+1 + XX=XX/2 + ZZ=ZZ+1 + MOVSI AC,XX ;INITIALIZE AC + MOVE AC-2,AC ;INITIALIZE AC-2 FOR COMPARISON + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + CAME AC,&17 ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + CAIE AC+1,ZZ ;EXAMINE AC+1 + ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +> +PAGE +SN=30400 + XX=1000000 + +G30400: REPEAT ^D18,< +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO +;RIPPLE A ONE THROUGH A FIELD OF ZEROS IN THE AC TO TEST JFFO + +SN=SN+1 + XX=XX/2 + ZZ=ZZ+1 + MOVEI AC,XX ;INITIALIZE AC + MOVE AC-2,AC ;INITIALIZE AC-2 FOR LATER COMPARISON + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD PLACE ZZ INTO AC+1 AND JUMP + ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + CAME AC,&17 ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + CAIE AC+1,ZZ ;EXAMINE AC+1 + ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ERRORS IN AC + JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH +> +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO. +;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + +SN=30500 + AC=-1 + +G30500: REPEAT ^D13,< +;VERIFY THAT JFFO WILL JUMP AND SET AC+1 TO THE NO. OF LEADING +;ZEROS IN AC WHEN C(AC) IS NON-ZERO. +;THIS TEST IS REPEATED 13 TIMES, ONCE FOR EACH USABLE AC. + +SN=SN+1 + AC=&17 + SAVEAC (1,1) + + MOVSI AC,(1B<^O>) ;INITIALIZE AC + MOVEM AC,GSVAC# ;INITIALIZE FOR LATER COMPARISON + SETOM &17 ;INITIALIZE AC+1 + JFFO AC,.+2 ;*JFFO SHOULD PLACE AC INTO AC+1 AC+1 AND JUMP + ER2 AC,SN ;ERROR IF JFFO DID NOT JUMP + CAME AC,GSVAC ;EXAMINE AC + ER3 AC,SN ;C(AC) WAS CLOBBERED + CAIE AC+1,AC ;EXAMINE AC+1 + ER4 AC+1,SN ;C(AC+1) NOT = NO. OF LEADING ZEROS IN AC + JUMPL AC+2,-^D9 ;LOOP ON ERROR SWITCH +> + +LAST1: JRST BEGEND ;REPEAT DIAGNOSTIC + + IF1, +BYTBLK: BLOCK ^D50 + + IF1, +BLTBLK: BLOCK ^D200 + diff --git a/apps/pdp10/diags/ka10/dakam/DAKAMT.MAC.txt b/apps/pdp10/diags/ka10/dakam/DAKAMT.MAC.txt new file mode 100644 index 000000000..8e21a89b5 --- /dev/null +++ b/apps/pdp10/diags/ka10/dakam/DAKAMT.MAC.txt @@ -0,0 +1,154 @@ +;DAKAM + + + MCNVER==0 + DECVER==2 + + + XLIST +DEFINE NAME (MCNVER,DECVER)< + +TITLE DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) MCNVER,DECVER +> + LIST + LALL + + NAME \MCNVER,\DECVER + +;(BYTE, BLOCK TRANSFER, JFFO AND OTHER BASIC MISCELLANEOUS INSTRUCTIONS) + +;COPYRIGHT 1975,1977 +;DIGITAL EQUIPMENT CORPORATION +;MARLBORO, MASS. 01752 + +;JOHN R. KIRCHOFF + + LOC 137 + MCNVER,,DECVER + + NOSYM +SUBTTL DIAGNOSTIC PARAMETERS + +;OPERATOR DEFINITIONS + +OPDEF ER1 [1B8] +OPDEF ER2 [2B8] +OPDEF ER3 [3B8] +OPDEF ER4 [4B8] +OPDEF ER5 [5B8] +OPDEF ER6 [6B8] +OPDEF ER7 [7B8] +OPDEF ER10 [10B8] +OPDEF ER11 [11B8] +OPDEF ER12 [12B8] +OPDEF ER13 [13B8] + +LUUO1=ERRMES +LUUO2=ERRMES +LUUO3=ERRMES +LUUO4=ERRMES +LUUO5=ERRMES +LUUO6=ERRMES +LUUO7=ERRMES +LUUO10=ERRMES +LUUO11=ERRMES +LUUO12=ERRMES +LUUO13=ERRMES +;SUBROUTINE ASSEMBLY DEFINITIONS + +DEBUG=40 +EXCASB=1 +USRASB=1 +KA10=1 +PGMEND=1 +ERDIAG=1 + +;SPECIAL FEATURE DEFINITIONS + +SADR1=BEGIN +SADR2=BEGIN +SADR3=BEGIN +SADR4=BEGIN +SADR5=JRST BEGIN +SADR6=JRST BEGIN +SADR7=JRST BEGIN +SADR8=JRST BEGIN +SADR9=JRST BEGIN +SADR10=JRST BEGIN +SADR11=JRST BEGIN + +;SPECIAL FEATURE PARAMETERS + +PAREA0=0 +PAREA1=0 +PAREA2=0 +PAREA3=SIXBIT/DAKAM/ +PAREA4=SIXBIT/TMP/ +PAREA5=0 +PAREA6=0 +ITERAT==1000 + +;MACROS + +DEFINE SAVEAC (A,B)< + MOVEI AC+2,. ;SAVE TEST PC + MOVEM AC+2,TESTPC + MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> +;SPECIAL INSTRUCTIONS TO ASSEMBLER + +IF1, ;BYTBLK BEYOND AC RANGE FOR PASS 1 +IF1, ;BLTBLK BEYOND AC RANGE FOR PASS 1 + +;MACROS + +DEFINE GMOV (X1,DATA),< + IFLE ,< + MOVE X1,[DATA] ;PRELOAD X1 WITH DATA> + IFG ,< + MOVE AC+1,[DATA] + MOVEM AC+1,X1 ;PRELOAD X1 WITH DATA>> + +DEFINE GCAM (X1,DATA),< +SN=SN+1 + IFG ,< + MOVE AC-1,X1 + CAME AC-1,[DATA] ;IS C(X1) = DATA + IFIDN ,,< + ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> + IFDIF ,,< + ER2 AC-1,SN ;C(X1) WAS CLOBBERED>> + IFLE ,< + CAME X1,[DATA] ;IS C(X1) = DATA + IFIDN ,,< + ER2 X1,SN ;DEST NOT LOADED CORRECTLY> + IFDIF ,,< + ER2 X1,SN ;C(X1) WAS CLOBBERED>>> +DEFINE BLTM1 (A1,C1,S1,D1,SC)< +;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA +;WHERE SOURCE AND DESTINATION ARE DIFFERENT +;SOURCE DATA = SC + + AC=C1 + SAVEAC (1,1) +SN=A1 + SRCE=S1 ;1ST LOC OF SOURCE = S1 + DEST=D1 ;1ST LOC OF DESTINATION = D1 + SIZ=1 ;BLOCK SIZE = 1 WORD + +G'A1: MOVE AC,[SRCE,,DEST] ;LOAD BLT AC + GMOV (SRCE-1,<252525252525>) + GMOV (SRCE,) + GMOV (SRCE+1,<770077007700>) + GMOV (DEST-1,<070707070707>) + GMOV (DEST,<123456765432>) + GMOV (DEST+1,<552255225522>) + BLT AC,DEST+SIZ-1 ;*BLOCK TRANSFER + GCAM (SRCE-1,<252525252525>) + GCAM (SRCE,) + GCAM (SRCE+1,<770077007700>) + GCAM (DEST-1,<070707070707>) + GCAM (DEST,) + GCAM (DEST+1,<552255225522>) + JUMPL AC+2,G'A1 ;LOOP ON ERROR> + diff --git a/apps/pdp10/diags/ka10/dakam/README.md b/apps/pdp10/diags/ka10/dakam/README.md new file mode 100644 index 000000000..ca61257dc --- /dev/null +++ b/apps/pdp10/diags/ka10/dakam/README.md @@ -0,0 +1,430 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #13 +permalink: /apps/pdp10/diags/ka10/dakam/ +machines: + - id: testka10 + type: pdp10 + config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a dakam.mac +--- + +PDP-10 KA10 Basic Instruction Diagnostic #13 +-------------------------------------------- + +The *PDP-10 KA10 Basic Instruction Diagnostic #13* (MAINDEC-10-DAKAM) test code has been extracted from +[DAKAMM.MAC](DAKAMM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakamm.mac.html)] and +[DAKAMT.MAC](DAKAMT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakamt.mac.html)] +for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below. + +This diagnostic "TESTS THE BYTE, BLOCK TRANSFER AND JFFO INSTRUCTIONS." + +Information regarding this diagnostic includes: + +- [Instructions](#dakamtxt) +- [History](#dakamhst) +- [Source Code](#dakammac) +- [MACRO-10 Listing](DAKAM.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakam/DAKAM.SEQ.txt) + +{% include machine.html id="testka10" %} + +The Debugger's assemble ("a") command can be used to test the new built-in +[MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js), which supports a subset +of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language. +This command: + + a DAKAM.MAC + +will automatically read the [DAKAM.MAC](DAKAM.MAC.txt) source file (a slightly modified copy of [DAKAMM.MAC](DAKAMM.MAC.txt)), +assemble it, and then load the binary image at the location specified in the file. + +--- + +DAKAM.TXT +--------- + +``` +MAINDEC-10-DAKAM.TXT + + + + + + + + IDENTIFICATION + -------------- + + PRODUCT CODE: MAINDEC-10-DAKAM-B-D + + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (13) + + FUNCTION: BYTE, BLT, JFFO + + VERSION: 0.2 + + DATE RELEASED: JANUARY 1977 + + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + + AUTHOR: JOHN R. KIRCHOFF + +COPYRIGHT(C) 1976,1977 +DIGITAL EQUIPMENT CORPORATION +MARLBORO, MASS. 01752 + +THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, +OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE +MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM +AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND +OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. + +THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT +NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL +EQUIPMENT CORPORATION. + +DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS +SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. + + MAINDEC-10-DAKAM.TXT + PAGE 2 + + TABLE OF CONTENTS + ----------------- + +1.0 ABSTRACT + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + +2.2 STORAGE + +2.3 PRELIMINARY PROGRAMS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + +3.2 STARTING PROCEDURE + +3.3 OPERATING PROCEDURE + +4.0 DATA SWITCH FUNCTIONS + +5.0 ERRORS + +6.0 ITERATION COUNTER + +7.0 CYCLE TIME + +8.0 OPERATIONAL VARIATIONS + +9.0 MISCELLANEOUS + +10.0 LISTING + + MAINDEC-10-DAKAM.TXT + PAGE 3 + +1.0 ABSTRACT + + THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE + THIRTEENTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. + THE DIAGNOSTIC TESTS THE BYTE, BLOCK TRANSFER AND + JFFO INSTRUCTIONS. + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + + A PDP-10 KA10 EQUIPPED WITH A MINIMUM OF 32K OF MEMORY + + PAPER TAPE READER + CONSOLE TELETYPE + DECTAPE + LINE PRINTER (OPTIONAL) + +2.2 STORAGE + + THE PROGRAM RUNS WITHIN 32K OF MEMORY. + +2.3 PRELIMINARY PROGRAMS + + PREVIOUS PROCESSOR DIAGNOSTICS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + + THIS DIAGNOSTIC REQUIRES THAT THE DECSYSTEM10 SUBROUTINE + PROGRAM BE RESIDENT IN THE PDP-10. + + PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104) + DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320) + TIME SHARING - RUN UNDER DIAMON. + + MAINDEC-10-DAKAM.TXT + PAGE 4 + +3.2 STARTING PROCEDURE + + A. SELECT OPERATIONAL CONSOLE DATA SWITCH SETTINGS (REFER TO + 4.0 DATA SWITCH FUNCTIONS). + + B. EXEC MODE + + STAND-ALONE STARTING ADDRESS IS 30000. + + C. USER MODE + + RUN UNDER "DIAMON". + IN USER MODE THE FOLLOWING QUESTIONS WILL BE ASKED TO + SELECT THE OPERATIONAL SWITCHES: + + TELETYPE SWITCH CONTROL ? 0,S,Y OR N (CR) - + + IF THE OPERATOR TYPES "N", THE ACTUAL CONSOLE + SWITCHES ARE USED. + + IF THE OPERATOR TYPES "Y", THE FOLLOWING QUESTIONS + ARE ASKED AND THE OPERATOR RESPONDS BY TYPING + THE ANSWER AS SIX OCTAL DIGITS REPRESENTING + THE DESIRED SWITCH SETTINGS. + + SPECIFY LH SWITCHES IN OCTAL- + + SPECIFY RH SWITCHES IN OCTAL- + + IF THE OPERATOR TYPES "0", ZERO'S ARE USED FOR + THE SWITCH SETTINGS. + + IF THE OPERATOR TYPES "S", PREVIOUSLY SET SWITCHES + ARE USED. THIS IS ONLY VALID UPON RESTARTING + OF AN INTERRUPTED PROGRAM. + + MAINDEC-10-DAKAM.TXT + PAGE 5 + +3.3 OPERATING PROCEDURE + + A. TO THROUGHLY TEST ALL HARDWARE, ALL TEST CONTROL DATA + SWITCHES SHOULD BE SET TO 0. + + B. WHEN DEBUGGING HARDWARE, SET SWITCHES TO 0. ALLOW THE + TELETYPE TO PRINT THE ERROR MESSAGES. THIS ALLOWS THE + PROGRAM TO RUN A COMPLETE PASS AND THEN THE ERROR MESSAGES + MAY BE CORRELATED TO QUICKLY DIAGNOSE THE FAILURE. IF A + HARDWARE PROBLEM IS SUCH THAT THE ERROR MESSAGES, AFTER THE + FIRST ONE, HAVE NO MEANING (FIRST ERROR CAUSES ALL FOLLOWING + TESTS TO FAIL) SET THE LOOP ON ERROR SWITCH AND RESTART THE + TEST FROM THE BEGINNING. THE FIRST FAILURE WILL THEN CAUSE + THE PROGRAM TO ENTER A LOOP SUITABLE FOR SCOPING. + + THE ERROR MESSAGE USED IN CONJUNCTION WITH THE LISTING AND + SCOPING IF NECESSARY SHOULD ALLOW THE FAILING CONPONENT + TO BE ISOLATED AND REPLACED AND/OR REPAIRED. + + C. WHEN TAKING MARGINS, SET DATA SWITCHES 'NOPNT' AND 'DING'. + THIS WILL INHIBIT PRINTOUT BUT WILL ALLOW THE TELETYPE + BELL TO BE RUNG WHEN A ERROR OCCURS. IF THE MARGIN OBTAINED + IS UNACCEPTABLE, THE OPERATOR MAY REVERT TO STANDARD SWITCH + SETTINGS FOR DEBUGGING PURPOSES. + + D. ERROR INFORMATION MAY BE OBTAINED QUICKLY BY PRINTING + ERRORS ON THE LINE PRINTER. + + E. IN THE EVENT OF A PRINT ROUTINE FAILURE THE 'NOPNT' SWITCH + AND THE 'ERSTOP' SWITCH MAY BE SET TO INHIBIT PRINTOUT + BUT HALT THE PROGRAM POINTING TO THE ERROR. + + MAINDEC-10-DAKAM.TXT + PAGE 6 + +4.0 DATA SWITCH FUNCTIONS + + SWITCH STATE FUNCTION + ------ ----- -------- + + 0 ABORT 0 NORMAL OPERATION + 1 ABORT AT END OF PASS + + 1 RSTART NOT USED + + 2 TOTALS NOT USED + + 3 NOPNT 0 NORMAL TYPEOUT + 1 INHIBIT ALL PRINT/TYPEOUT + (EXCEPT FORCED) + + 4 PNTLPT 0 NORMAL OUTPUT TO TTY + 1 PRINT ALL DATA ON LPT + (LOGICAL DEVICE, USER MODE) + + 5 DING 0 NO FUNCTION + 1 RING TTY BELL ON ERROR + + 6 LOOPER 0 PROCEED TO NEXT TEST + 1 ENTER SCOPE LOOP ON TEST ERROR + + 7 ERSTOP 0 NO FUNCTION + 1 HALT ON TEST ERROR + + 8 PALERS 0 PRINT ONLY FIRST ERROR WHEN LOOPING + 1 PRINT ALL ERRORS, EVEN IF SAME ERROR + + 9 RELIAB NOT USED + + 10 TXTINH 0 PRINT FULL ERROR MESSAGES. + 1 INHIBIT COMMENT PORTION OF + ERROR MESSAGES. + + 11 INHPAG 0 ALLOW PAGING AND TRAP ENABLE + 1 INHIBIT PAGING AND TRAPPING + + 12 MODDVC NOT USED + + 13 INHCSH NOT USED + + MAINDEC-10-DAKAM.TXT + PAGE 7 + +5.0 ERRORS + + ERRORS ARE PRINTED ON THE TTY OR LINE PRINTER. THE ERROR + PRINTOUT CONTAINS THE TEST TITLE, THE PC OF THE FAILURE, ERROR + NUMBER AND THE CONTENTS OF AN APPLICABLE AC. + + THE PC VALUE IS USEFUL IN RELATING THE FAILURE TO THE LISTING. + THE ERROR NUMBER IS PROVIDED SUCH THAT AN ERROR DICTIONARY MAY + BE MADE AT SOME FUTURE DATE. + + WHEN THE SCOPE LOOP MODE IS USED THE MI REGISTER WILL COUNT + FOR EACH OCCURANCE OF AN ERROR. IF AN AUDIO INDICATION OF + A CONTINUING ERROR IS DESIRED THE 'DING' SWITCH MAY BE SET. + +6.0 ITERATION COUNTER + + THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEMORY + INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND + INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION. + +7.0 CYCLE TIME + + THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND + IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, + ETC. + + MAINDEC-10-DAKAM.TXT + PAGE 8 + +8.0 OPERATIONAL VARIATIONS + + A. DIAGNOSTIC MONITOR + + THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PROVIDE + RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PROVIDE A + QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR AREA + OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN THE + PROGRAM IS USED IN THIS MANNER. THEY ARE: + + 1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PROGRAM + AND STARTS IT AT LOCATION 30002. + + 2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MONITOR + CONTROL WORD. + LH = 0, STAND-ALONE OPERATION + -1, RUNNING UNDER DIAGNOSTIC MONITOR + + RH = RIGHT HALF OF CONSOLE SWITCHES IF UNDER + DIAGNOSTIC MONITOR CONTROL. + + B. USER MODE + + TO OUTPUT THE PRINTED ERROR MESSAGES TO A USER SPECIFIED + DEVICE IN USER MODE, ASSIGN THE DESIRED OUTPUT DEVICE TO + DEVICE NAME 'DEV' AND SET SWITCH 'PNTLPT'. THE PHYSICAL + DEVICE USED CAN BE ANY DEVICE THAT CAN ACCEPT ASCII OUTPUT + FORMAT SUCH AS LPT, DSK, DTA, ETC. THE CORRESPONDING + OUTPUT FILE IS 'DAKAM.TMP' + + EXAMPLE DEVICE ASSIGNMENT: + + .ASSIGN DSK DEV + + IN USER MODE THE PROGRAM WILL MAKE 1000(8) PASSES AND THEN + RETURN TO DIAMON COMMAND MODE. + + MAINDEC-10-DAKAM.TXT + PAGE 9 + +8.0 OPERATIONAL VARIATIONS (CON'T) + + THE OUTPUT FILE (IF USED) MAY THEN BE LISTED BY USING THE + NORMAL MONITOR COMMANDS (PRINT, LIST, TYPE, PIP, ETC.). + + IF THE PROGRAM IS ABORTED BEFORE COMPLETION (BY ^C, ETC.) THE + OUTPUT FILE MAY BE CLOSED BY USING THE MONITOR 'REENTER' + COMMAND. + + C. SYSTEM EXERCISER + + START ADDRESS IS 30003. DATA SWITCHES ARE PRESTORED IN + 'SWTEXR' LOC 30023. + +9.0 MISCELLANEOUS + + THE NON-EX-MEMORY AND PARITY STOP SWITCHES SHOULD BE RESET + (0). THESE ERRORS, ILLEGAL UUO'S AND OTHER ERRORS OF THIS + TYPE ARE HANDLED BY PRINTOUT ON THE TELETYPE. + +10.0 LISTING +``` + +DAKAM.HST +--------- + + THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAM + + ************************************************************************ + + PRODUCT CODE: MAINDEC-10-DAKAM + + PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #13 + + DATE RELEASED: JANUARY 1977 + + VERSION: 0.2 + + UPDATE AUTHOR: JOHN R. KIRCHOFF + + CHANGES MADE: + + 1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE. + + 2. ADD TEST FOR BLT WITH EFFECTIVE ADDRESS LESS THAN CONTENTS OF + AC RIGHT. + + ************************************************************************ + + ORIGINAL VERSION: 0.1 + + ORIGINAL AUTHOR: RICHARD MALISKA + + ORIGINAL RELEASE: 16-MAR-72 + + ************************************************************************ + +DAKAM.MAC +--------- + +[[Download](DAKAM.MAC.txt)] + +{% highlight text %} +{% include_relative DAKAM.MAC.txt %} +{% endhighlight %} diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index b35454830..cfc483ca0 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -46,8 +46,8 @@ var l,aa;function ba(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]} for(var da="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ea="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,fa=["Math","trunc"],ga=0;gaa?-b:b};ka!=ja&&null!=ka&&da(ea,ia,{configurable:!0,writable:!0,value:ka}); -var la={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={mp:0,op:1,pp:2,il:3,qp:4,rp:5,sp:6,tp:7,up:8,vp:9,wp:10,xp:11,yp:12,zp:13,Ap:14,Bp:15,Cp:16,Dp:17,Ep:18,Fp:19,Gp:20,Hp:21,Ip:22,Jp:23,Kp:24,Lp:25,Mp:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39, -"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,de:65,ui:66,vi:67,wi:68,E:69,xi:70,yi:71,zi:72,Ai:73,Bi:74,Ci:75,Di:76,Ei:77,Fi:78,Gi:79,Hi:80,Q:81,Ii:82,Ji:83,Ki:84,Li:85,Mi:86,Ni:87,Oi:88,Pi:89,fg:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ee:97,wl:98,yl:99,d:100,e:101,Il:102,Jl:103,Kl:104,Ll:105,bn:106,k:107,en:108,jn:109,n:110,rn:111,p:112,q:113,r:114,Oo:115,t:116,Ro:117,So:118,To:119,x:120, +var la={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},n={mp:0,op:1,pp:2,hl:3,qp:4,rp:5,sp:6,tp:7,up:8,vp:9,wp:10,xp:11,yp:12,zp:13,Ap:14,Bp:15,Cp:16,Dp:17,Ep:18,Fp:19,Gp:20,Hp:21,Ip:22,Jp:23,Kp:24,Lp:25,Mp:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39, +"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ce:65,ti:66,ui:67,vi:68,E:69,wi:70,xi:71,yi:72,zi:73,Ai:74,Bi:75,Ci:76,Di:77,Ei:78,Fi:79,Gi:80,Q:81,Hi:82,Ii:83,Ji:84,Ki:85,Li:86,Mi:87,Ni:88,Oi:89,eg:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,de:97,vl:98,xl:99,d:100,e:101,Hl:102,Il:103,Jl:104,Kl:105,an:106,k:107,dn:108,hn:109,n:110,qn:111,p:112,q:113,r:114,No:115,t:116,Ro:117,So:118,To:119,x:120, y:121,z:122,"{":123,"|":124,"}":125,"~":126,Np:127},ma={};ma[173]=n["-"];ma[186]=n[";"];ma[187]=n["="];ma[189]=n["-"];ma[188]=n[","];ma[190]=n["."];ma[191]=n["/"];ma[192]=n["`"];ma[219]=n["["];ma[220]=n["\\"];ma[221]=n["]"];ma[222]=n["'"];var na={};na[n["1"]]=n["!"];na[n["2"]]=n["@"];na[n["3"]]=n["#"];na[n["4"]]=n.$;na[n["5"]]=n["%"];na[n["6"]]=n["^"];na[n["7"]]=n["&"];na[n["8"]]=n["*"];na[n["9"]]=n["("];na[n["0"]]=n[")"];na[186]=n[":"];na[187]=n["+"];na[188]=n["<"];na[189]=n._;na[190]=n[">"]; na[191]=n["?"];na[192]=n["~"];na[219]=n["{"];na[220]=n["|"];na[221]=n["}"];na[222]=n['"'];na[173]=n._;na[61]=n["+"];na[59]=n[":"]; function oa(a,b){var c;if(a){b||(b=10);var d,e,f=0a&& function ra(a,b,c){b?12=b?6:16777215>=b?8:12);return pa(a,8,b,c?"0o":"")}function q(a,b,c){b?9=b?4:4294967295>=b?8:9);return pa(a,16,b,c?"0x":"")}function r(a){return q(a,2,!0)}function sa(a){return q(a,4,!0)}function ta(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0"']/g,function(a){return ya[a]})}function Aa(a,b,c){return c?(" "+a).slice(-b):(a+" ").slice(0,b)}function Ba(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} var ya={"&":"&","<":"<",">":">",'"':""","'":"'"},Ca={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function Da(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}function Fa(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.oh|g<>a.shift} +function Ea(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}function Fa(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.nh|g<>a.shift} function Ha(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;ca?this.ce=this.id:(this.ye=this.id.substr(0,a),this.ce=this.id.substr(a+1));this.ea={ready:!1,qf:!1,ah:!1,Yb:!1,error:!1};this.qg=null;this.ea.error=!1;this.ic=c||0;this.ba=this.H=this.ka=this.pa=this.Je=null;nb.push(this)} +Za(Ta("Opera")||Ta("iOS")?"onunload":"onbeforeunload",function(){bb(ab.exit)});function mb(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.xj=b.comment;this.Ok=b;this.exports={};this.na=this.bindings={};a=this.id.indexOf(".");0>a?this.be=this.id:(this.xe=this.id.substr(0,a),this.be=this.id.substr(a+1));this.ea={ready:!1,pf:!1,$g:!1,Yb:!1,error:!1};this.pg=null;this.ea.error=!1;this.ic=c||0;this.ba=this.H=this.ka=this.pa=this.Ie=null;nb.push(this)} function ob(a,b,c){pb[a]&&b&&(pb[a][b]=c)}function gb(a){window&&window.alert(a)}function qb(a){var b=!1;window&&(b=window.confirm(a));return b}function sb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b=this.x&&a=this.y&&b=c>>2);d?(b=new Tb(a.x,a.y,a.Nc,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new Tb(a.x,a.y,a.Nc*b/c|0,a.A),a.x+=b.Nc,a.Nc-=b.Nc);return b}function Vb(a){mb.call(this,"Panel",a);this.F=this.G=this.L=-1}ba(Vb,mb);l=Vb.prototype;l.Cb=function(a,b,c,d){return this.pa&&this.pa.Cb(a,b,c,d)||this.H&&this.H.Cb(a,b,c,d)||this.B&&this.B.Cb(a,b,c,d)||this.ba&&this.ba.Cb(a,b,c,d)?!0:mb.prototype.Cb.call(this,a,b,c,d)}; -l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.H=c;this.ba=d;this.B=Wb(a,"Keyboard")};l.Xb=function(a,b){b||Xb();return!0};l.Wb=function(){return!0};l.Vd=function(a,b){a.button||(this.L=b?0:-1,Yb(this,a,b))};l.uf=function(a){Yb(this,a)}; -function Yb(a,b,c){var d=Zb/null.offsetWidth,e=$b/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.L||(a.L=Math.abs(a.F-d)>Math.abs(a.G-b)?1:2),1==a.L?b=a.G:2==a.L&&(d=a.F));a.F=d;a.G=b;if(0<=d&&dd&&(f=d);c= +l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.H=c;this.ba=d;this.B=Wb(a,"Keyboard")};l.Xb=function(a,b){b||Xb();return!0};l.Wb=function(){return!0};l.Vd=function(a,b){a.button||(this.L=b?0:-1,Yb(this,a,b))};l.tf=function(a){Yb(this,a)}; +function Yb(a,b,c){var d=Zb/null.offsetWidth,e=$b/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.L||(a.L=Math.abs(a.F-d)>Math.abs(a.G-b)?1:2),1==a.L?b=a.G:2==a.L&&(d=a.F));a.F=d;a.G=b;if(0<=d&&dd&&(f=d);c= f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.ga)){b=c;if(a.context&&a.N&&a.O){e=cc-dc;f=a.N.width;a.O.fillStyle=ec;a.O.fillRect(0,e,f,dc);fc(a,e+gc,a.N,a.O);a.V=a.ha.width/24|0;if(null==b)hc(a,"Mouse over memory to dump");else for(hc(a,q(b,8,!0),null,0,1),d=1;16>=d;d++){for(var g="",h=1;8>=h;h++){var k;k=a.ka;var m=b++;k=k.aa[(m&k.C)>>>k.A].Zd(m&k.D,m);hc(a,q(k,2),null,1);g+=32<=k&&128>k?String.fromCharCode(k):"."}hc(a,g,null,0,1)}a.context.drawImage(a.N,0,e,f,dc,a.Da,a.Ha,a.va,a.za)}a.ga=c}}} -function ic(a,b,c,d){a.A.lf[a.A.aj++]={Ml:b,Hd:c,type:d};return Fa(bc,b,c,0,d)}function fc(a,b,c,d){var e,f=null.style.color,g=a.ta=10;a.C=g;a.I=b;a.J=a.aa=gc;e||(e=a.Z||a.aa+"px "+jc);a.M=a.Z=e;c&&(a.ha=c);d&&(a.D=d,a.la=f||"white")}function hc(a,b,c,d,e){a.D.font=a.M;a.D.fillStyle=a.la;a.D.fillText(b,a.C,a.I);a.C+=a.V;null!=c&&(16!=a.Ca?b=c.toString():(b=8>a.qa?"0x":"",b+=q(c,a.qa)),a.D.fillText(b,a.C,a.I),a.C+=a.V);d&&(a.C+=a.V*d);e&&(a.C=a.ta,a.I+=(a.J+2)*(e||1))} +function ic(a,b,c,d){a.A.kf[a.A.$i++]={Ll:b,Hd:c,type:d};return Fa(bc,b,c,0,d)}function fc(a,b,c,d){var e,f=null.style.color,g=a.ta=10;a.C=g;a.I=b;a.J=a.aa=gc;e||(e=a.Z||a.aa+"px "+jc);a.M=a.Z=e;c&&(a.ha=c);d&&(a.D=d,a.la=f||"white")}function hc(a,b,c,d,e){a.D.font=a.M;a.D.fillStyle=a.la;a.D.fillText(b,a.C,a.I);a.C+=a.V;null!=c&&(16!=a.Ca?b=c.toString():(b=8>a.qa?"0x":"",b+=q(c,a.qa)),a.D.fillText(b,a.C,a.I),a.C+=a.V);d&&(a.C+=a.V*d);e&&(a.C=a.ta,a.I+=(a.J+2)*(e||1))} function Xb(){for(var a=!1,b=zb(document,"pcx86","panel"),c=0;c>2,kc=$b,cc=$b,ec="black",dc=$b>>1;$a(Xb); -function lc(a,b,c){mb.call(this,"Bus",a);this.H=b;this.ba=c;this.I=a.busWidth||20;this.O=Math.pow(2,this.I);this.N=this.C=this.O-1|0;this.A=32==this.I||20>=this.I?12:24>=this.I?14:15;this.B=1<>2;this.D=this.B-1;this.M=this.O/this.B|0;this.V=this.M-1;this.F=[];this.G=[];this.K=this.L=!1;this.Y=[];this.Z=[];a=new x;mc(a,this.ba);this.aa=Array(this.M);for(b=0;b>>a.A;0g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.ya)return k.we+=k.ya-f,k.ya=f,!0;if(f>=k.ya+k.we){p=k.size-(f-m);p>g&&(p=g);k.we=f-k.ya+p;f=m+a.B;g-=p;h++;continue}}return pc(a,qc,f,g)}f=new x(f,p,a.B,d,e);mc(f,a.ba,k);a.aa[h++]=f;f=m+a.B;g-=p}return 0>=g?(sc(a.H),a.H.ea.vb||a.status(Math.floor(c/1024)+"Kb "+tc[d]+" at "+q(b)),!0):pc(a,vc,b,c)} -function nc(a,b){32==a.I?b?a.J&&(wc(a,1048576,1048576,a.J),a.J=null):a.J||(a.J=xc(a,1048576,1048576),wc(a,1048576,1048576,xc(a,0,1048576))):20>>this.A;0=this.I?12:24>=this.I?14:15;this.B=1<>2;this.D=this.B-1;this.M=this.O/this.B|0;this.V=this.M-1;this.F=[];this.G=[];this.K=this.L=!1;this.Y=[];this.Z=[];a=new x;mc(a,this.ba);this.aa=Array(this.M);for(b=0;b>>a.A;0g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.ya)return k.ve+=k.ya-f,k.ya=f,!0;if(f>=k.ya+k.ve){p=k.size-(f-m);p>g&&(p=g);k.ve=f-k.ya+p;f=m+a.B;g-=p;h++;continue}}return pc(a,qc,f,g)}f=new x(f,p,a.B,d,e);mc(f,a.ba,k);a.aa[h++]=f;f=m+a.B;g-=p}return 0>=g?(sc(a.H),a.H.ea.vb||a.status(Math.floor(c/1024)+"Kb "+tc[d]+" at "+q(b)),!0):pc(a,vc,b,c)} +function nc(a,b){32==a.I?b?a.J&&(wc(a,1048576,1048576,a.J),a.J=null):a.J||(a.J=xc(a,1048576,1048576),wc(a,1048576,1048576,xc(a,0,1048576))):20>>this.A;0>>a.A;0>>=a.A;0>>a.A;0>>this.A].Bc(a&this.D,a)};function Ic(a,b){var c=b&a.D,d=(b&a.C)>>>a.A;return c!=a.D?a.aa[d].Of(c,b):a.aa[d++].Zd(c,b)|a.aa[d&a.V].Zd(0,b+1)<<8} -l.fc=function(a,b){this.aa[(a&this.C)>>>this.A].Dc(a&this.D,b&255,a)};function Jc(a,b,c){var d=b&a.D,e=(b&a.C)>>>a.A;d!=a.D?a.aa[e].si(d,c&65535,b):(a.aa[e++].cf(d,c&255,b),a.aa[e&a.V].cf(0,c>>8&255,b+1))}l.xj=function(){return null}; -function Kc(a,b){var c=0,d=[],e=!a.J&&a.N==a.C;e||nc(a,!0);for(var f=0;f>>a.A;0>>this.A].Bc(a&this.D,a)};function Ic(a,b){var c=b&a.D,d=(b&a.C)>>>a.A;return c!=a.D?a.aa[d].Nf(c,b):a.aa[d++].Zd(c,b)|a.aa[d&a.V].Zd(0,b+1)<<8} +l.fc=function(a,b){this.aa[(a&this.C)>>>this.A].Dc(a&this.D,b&255,a)};function Jc(a,b,c){var d=b&a.D,e=(b&a.C)>>>a.A;d!=a.D?a.aa[e].ri(d,c&65535,b):(a.aa[e++].bf(d,c&255,b),a.aa[e&a.V].bf(0,c>>8&255,b+1))}l.wj=function(){return null}; +function Kc(a,b){var c=0,d=[],e=!a.J&&a.N==a.C;e||nc(a,!0);for(var f=0;f>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ba&&a.L!=g[1]&&Tc(a.ba,b,k)}else a.ba&&(Mb(a.ba,a,b,k,e),a.L&&Tc(a.ba,b,k));f+=h<<3;b+=h;c-=h}}function pc(a,b,c,d,e){b="Memory block error ("+b+": "+q(c)+","+q(d)+")";e?a.ba?a.ba.message(b):a.log(b):gb(b);return!1}var bc,Uc={Ik:20,count:8,bq:1,type:3},Vc=0,Wc;for(Wc in Uc){var Xc=Uc[Wc];Uc[Wc]={oh:(1<>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ba&&a.L!=g[1]&&Tc(a.ba,b,k)}else a.ba&&(Mb(a.ba,a,b,k,e),a.L&&Tc(a.ba,b,k));f+=h<<3;b+=h;c-=h}}function pc(a,b,c,d,e){b="Memory block error ("+b+": "+q(c)+","+q(d)+")";e?a.ba?a.ba.message(b):a.log(b):gb(b);return!1}var bc,Uc={Hk:20,count:8,bq:1,type:3},Vc=0,Wc;for(Wc in Uc){var Xc=Uc[Wc];Uc[Wc]={nh:(1<>1),this.X=new Int32Array(this.I,0,c>>2),zc(this,Ec?Fc:Gc);else{this.X=Array(c>>2);for(e=0;e>2),b=0;b>8,c)};l.pi=function(a,b,c){this.Dc(a++,b&255,c++);this.Dc(a++,b>>8&255,c++);this.Dc(a++,b>>16&255,c++);this.Dc(a,b>>>24,c)};l.yo=function(a){return this.X[a>>2]>>>((a&3)<<3)&255}; -l.Ko=function(a){var b=a>>2;a=(a&3)<<3;var c=this.X[b]>>a;return 24>a?c&65535:c&255|(this.X[b+1]&255)<<8};l.Eo=function(a){var b=a>>2;a=(a&3)<<3;var c=this.X[b];a&&(c=c>>>a|this.X[b+1]<<32-a);return c};l.Wo=function(a,b){var c=a>>2;a=(a&3)<<3;this.X[c]=this.X[c]&~(255<>2;a=(a&3)<<3;24>a?this.X[c]=this.X[c]&~(65535<>8);this.Oa=!0}; -l.bp=function(a,b){var c=a>>2;if(a=(a&3)<<3){var d=-1<>>32-a}else this.X[c]=b;this.Oa=!0};l.xo=function(a,b){this.ba&&null!=this.ya&&pd(this.ba,this.ya+a)||this.C&&qd(this.C,b,1,!1);return this.Zd(a,b)};l.Jo=function(a,b){this.ba&&null!=this.ya&&pd(this.ba,this.ya+a,2)||this.C&&qd(this.C,b,2,!1);return this.Of(a,b)};l.Do=function(a,b){this.ba&&null!=this.ya&&pd(this.ba,this.ya+a,4)||this.C&&qd(this.C,b,4,!1);return this.ki(a,b)}; -l.Vo=function(a,b,c){this.ba&&null!=this.ya&&rd(this.ba,this.ya+a)||this.C&&qd(this.C,c,1,!0);this.D?this.df(0,b,c):this.cf(a,b,c)};l.hp=function(a,b,c){this.ba&&null!=this.ya&&rd(this.ba,this.ya+a,2)||this.C&&qd(this.C,c,2,!0);this.D?this.df(0,b,c):this.si(a,b,c)};l.ap=function(a,b,c){this.ba&&null!=this.ya&&rd(this.ba,this.ya+a,4)||this.C&&qd(this.C,c,4,!0);this.D?this.df(0,b,c):this.K(a,b,c)};l.Ao=function(a,b){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.F;return this.pd.Bc(a,b)}; -l.Mo=function(a,b){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.F;return this.pd.Nf(a,b)};l.Go=function(a,b){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.F;return this.pd.Nd(a,b)};l.Yo=function(a,b,c){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.J;this.pd.Dc(a,b,c)};l.kp=function(a,b,c){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.J;this.pd.Uf(a,b,c)};l.ep=function(a,b,c){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.J;this.pd.Tf(a,b,c)}; -l.Bo=function(a,b){return sd(this.C,b,!1).Bc(a,b)};l.No=function(a,b){return sd(this.C,b,!1).Nf(a,b)};l.Ho=function(a,b){return sd(this.C,b,!1).Nd(a,b)};l.Zo=function(a,b,c){sd(this.C,c,!0).Dc(a,b,c)};l.lp=function(a,b,c){sd(this.C,c,!0).Uf(a,b,c)};l.fp=function(a,b,c){sd(this.C,c,!0).Tf(a,b,c)};l.wo=function(a){return this.Pa[a]};l.Rk=function(a){return this.Pa[a]};l.zo=function(a){this.nb.X[this.A]|=32;this.ob.X[this.B]|=32;this.Bc=this.Rk;return this.Pa[a]}; -l.Io=function(a){return this.G.getUint16(a,!0)};l.Wk=function(a){return a&1?this.Pa[a]|this.Pa[a+1]<<8:this.Rd[a>>1]};l.Lo=function(a){this.nb.X[this.A]|=32;this.ob.X[this.B]|=32;this.Nf=this.Wk;return a&1?this.Pa[a]|this.Pa[a+1]<<8:this.Rd[a>>1]};l.Co=function(a){return this.G.getInt32(a,!0)};l.Tk=function(a){return a&3?this.Pa[a]|this.Pa[a+1]<<8|this.Pa[a+2]<<16|this.Pa[a+3]<<24:this.X[a>>2]}; -l.Fo=function(a){this.nb.X[this.A]|=32;this.ob.X[this.B]|=32;this.Nd=this.Tk;return a&3?this.Pa[a]|this.Pa[a+1]<<8|this.Pa[a+2]<<16|this.Pa[a+3]<<24:this.X[a>>2]};l.Uo=function(a,b){this.Pa[a]=b;this.Oa=!0};l.fl=function(a,b){this.Pa[a]=b;this.Oa=!0};l.Xo=function(a,b){this.Pa[a]=b;this.nb.X[this.A]|=32;this.ob.X[this.B]|=96;this.Dc=this.fl;this.pd.Oa=!0};l.gp=function(a,b){this.G.setUint16(a,b,!0);this.Oa=!0};l.hl=function(a,b){a&1?(this.Pa[a]=b,this.Pa[a+1]=b>>8):this.Rd[a>>1]=b;this.Oa=!0}; -l.jp=function(a,b){a&1?(this.Pa[a]=b,this.Pa[a+1]=b>>8):this.Rd[a>>1]=b;this.nb.X[this.A]|=32;this.ob.X[this.B]|=96;this.Uf=this.hl;this.pd.Oa=!0};l.$o=function(a,b){this.G.setInt32(a,b,!0);this.Oa=!0};l.gl=function(a,b){a&3?(this.Pa[a]=b,this.Pa[a+1]=b>>8,this.Pa[a+2]=b>>16,this.Pa[a+3]=b>>24):this.X[a>>2]=b;this.Oa=!0}; -l.cp=function(a,b){a&3?(this.Pa[a]=b,this.Pa[a+1]=b>>8,this.Pa[a+2]=b>>16,this.Pa[a+3]=b>>24):this.X[a>>2]=b;this.nb.X[this.A]|=32;this.ob.X[this.B]|=96;this.Tf=this.gl;this.pd.Oa=!0};function td(a){Nb&&!Ec&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a} -var ad=0,Dc=2,bd=5,dd=6,ud=["black","blue","green","cyan"],tc="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),$c=0,fd=[],Hc=[x.prototype.yo,x.prototype.Wo,x.prototype.Ko,x.prototype.ip,x.prototype.Eo,x.prototype.bp],od=[x.prototype.xo,x.prototype.Vo,x.prototype.Jo,x.prototype.hp,x.prototype.Do,x.prototype.ap],ed=[x.prototype.Ao,x.prototype.Yo,x.prototype.Mo,x.prototype.kp,x.prototype.Go,x.prototype.ep],cd=[x.prototype.Bo,x.prototype.Zo,x.prototype.No,x.prototype.lp,x.prototype.Ho,x.prototype.fp]; -if(Nb)var Gc=[x.prototype.wo,x.prototype.Uo,x.prototype.Io,x.prototype.gp,x.prototype.Co,x.prototype.$o],Fc=[x.prototype.Rk,x.prototype.fl,x.prototype.Wk,x.prototype.hl,x.prototype.Tk,x.prototype.gl],vd=[x.prototype.zo,x.prototype.Xo,x.prototype.Lo,x.prototype.jp,x.prototype.Fo,x.prototype.cp]; -function wd(a,b){mb.call(this,"CPU",a,1);b=a.cycles||b;var c=a.multiplier||1;this.T={};this.T.sd=b;this.T.Kd=c;this.T.sg=Math.round(this.T.sd/1E4)/100;this.T.pe=this.T.sg*this.T.Kd;this.ea.vb=!1;this.ea.oi=!1;this.ea.mf=a.autoStart;this.ea.lj=!1;this.ea.Ie=!1;this.T.vf=this.T.Ue=0;this.T.xf=a.csStart;this.T.Te=a.csInterval;this.T.Ve=a.csStop;this.Rl=this.Vf.bind(this);Ib(this)}ba(wd,mb);l=wd.prototype; -l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.ba=d;for(b=0;b=a.T.Ue&&(a.T.Ue+=a.T.Te,c=!0);0<=a.T.Ve&&a.T.Ve<=Dd(a)&&(a.T.Te=a.T.Ve=-1,Ad(a),a.Jb(),c=!0);c&&a.P(Dd(a)+" cycles: checksum="+q(a.T.vf))}} -l.Cb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.na[b]=c;a=!0;break;case "run":this.na[b]=c;c.onclick=function(){var a;if(a=d.pa)if(a=d.pa,a.ea.Yb)a=!0;else{var b=null,c,h=sb(a.id);for(c=0;ca.T.sg&&(c=Math.round(c/a.T.Kd));return c}function zd(a){a.T.Wd=0;a.Dd=a.md=a.zc=a.A=0;Ad(a);Ed(a,1)} -function Ed(a,b,c){var d=!1;if(void 0!==b){.8>a.T.Wd/a.T.pe?b=1:d=!0;a.T.Kd=b;b=a.T.sg*a.T.Kd;if(a.T.pe!=b){a.T.pe=b;b=a.T.pe.toFixed(2)+"Mhz";var e=a.na.setSpeed;e&&(e.textContent=b);a.P("target speed: "+b)}c&&a.pa&&a.pa.ld()}Gd(a,a.md);a.md=0;a.T.Xd=Ja();a.T.qe=0;Hd(a);return d} -l.Vf=function(a){if(Kb(this,!0)){if(!this.ea.vb){Ed(this);this.pa&&this.pa.start(this.T.Xd,Dd(this));this.ea.vb=!0;this.ea.oi=!0;this.V&&this.V.start();var b=this.na.run;b&&(b.textContent="Halt");this.pa&&(Md(this.pa,!0),a&&this.pa.ld(!0))}this.T.uh>=this.T.sd&&Hd(this,!0);this.T.Af=0;this.T.tg=Ja();this.T.qe&&(a=this.T.tg-this.T.qe,a>this.T.Ej&&(this.T.Xd+=a,this.T.Xd>this.T.tg&&(this.T.Xd=this.T.tg)));try{do{var c=this.ea.Ie?1:this.T.on;if(this.V){Nd(this.V);var d=this.V;a=c;var e=d.G[0];if(e.me){var f= -(Dd(d.H,d.O)-e.jd)/d.Ba|0,g=Od(d,0)-f;e.mode==Pd&&(g-=f);var h=g*d.Ba|0;e.mode==Pd&&(h>>=1);a>h&&(a=h)}var c=a,k=this.V;a=c;if(k.A&&k.A[Qd]&Rd){var m=k.Z-Dd(k.H,k.O);0m&&(a=m)}c=a}try{this.Mg(c)}catch(v){if("number"!=typeof v)throw v;}var p=this.zc-this.A;this.md+=p;this.T.Af+=p;Gd(this,0,!0);Cd(this,p);this.T.zf-=p;0>=this.T.zf&&(this.T.zf+=this.T.Gj,this.pa&&Td(this.pa));this.T.yf-=p;0>=this.T.yf&&(this.T.yf+=this.T.Fj,this.pa&&Md(this.pa));this.T.We-=p;if(0>=this.T.We){this.T.We+=this.T.th; -break}}while(this.ea.vb)}catch(v){this.Jb();Bd(this);this.pa&&this.pa.stop(Ja(),Dd(this));Kb(this,!1);Fb(this,v.stack||v.message);return}c=setTimeout;d=this.Rl;this.T.qe=Ja();e=this.T.Ej;this.T.Af&&(e=Math.round(e*this.T.Af/this.T.th));e-=this.T.qe-this.T.tg;if(f=this.T.qe-this.T.Xd)this.T.Wd=Math.round(this.md/(10*f))/100,864E5<=f&&(this.Dd=0,this.V&&Nd(this.V,!0),Ed(this));if(0>e||this.T.Wde&&(this.T.Xd-=e),e=0;this.T.uh+=this.T.Af;this.T.qe+=e;c(d,e)}else Bd(this),this.pa&&this.pa.stop(Ja(), -Dd(this))};l.Mg=function(){return 0};l.Jb=function(a){Jb(this,!0);this.zc-=this.A;this.A=0;Gd(this,this.md);this.md=0;if(this.ea.vb){this.ea.vb=!1;this.V&&this.V.stop();var b=this.na.run;b&&(b.textContent="Run")}this.ea.complete=a};function Bd(a,b){a.pa&&(Td(a.pa,b),Md(a.pa,b))}var Id=30,Jd=60,Kd=2,xd=["power","reset"]; -function Ud(a,b,c,d){this.gc=a;this.ba=a.ba;this.id=b;this.$b=c||"";this.U=0;this.Ka=65535;this.Nb=this.Ka+1;this.Ab=this.qc=this.ext=this.lb=this.type=this.ua=0;this.Lb=-1;this.W=this.Jc=2;this.R=this.wa=65535;this.G=this.nh;this.D=this.ej;this.F=this.gj;this.A={U:-1,ua:0,Ka:0,lb:0,type:0,ext:0,Lb:-1};1==this.id&&(this.Kf=0,this.C=null,this.Qe=!1,this.H=Array(32),this.B=[]);Vd(this,!0,d)}function Wd(a,b){a.B.push(b);return[a.B.length,Xd]}l=Ud.prototype; -l.nh=function(a){this.U=a&65535;return this.ua=this.U<<4};l.rg=function(a,b){var c,d,e=this.gc;a&=65535;a&4?(c=e.Eb.ua,d=c+e.Eb.Ka|0):(c=e.Kb,d=e.Pc);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,Yd(this,c,a,b);this.id>>0)+b<=this.Nb?this.ua+a|0:this.lg()};l.Al=function(a,b){return(a>>>0)+b>this.Nb?this.ua+a|0:this.lg()};l.lg=function(){y.call(this.gc,13,0);return-1};l.fj=function(a,b){return(a>>>0)+b<=this.Nb?this.ua+a|0:this.mg()}; -l.Bl=function(a,b){return(a>>>0)+b>this.Nb?this.ua+a|0:this.mg()};l.mg=function(){y.call(this.gc,13,0);return-1};function ae(a,b,c,d,e){a.U=b;a.ua=d;a.Ka=e;a.Nb=(e>>>0)+1;a.lb=c;a.type=c&7936;a.ext=c>>16&192;a.Lb=(b&4?a.gc.Eb.ua:a.gc.Kb)+(b&65528)|0;a.id>>0)+1;a.lb=e;a.type=e&7936;a.ext=0;a.Lb=b;a.id>>0)+1,a.lb=a.A.lb,a.type=a.A.type,a.ext=a.A.ext,a.Lb=a.A.Lb,a.A.U=-1,Vd(a,!0,!0,!1),a.ua;a.A.U=-1;var f=e.ja(b+0),g=e.ja(b+4),h=g&7936,k=e.ja(b+2)|(g&255)<<16,m=e.ja(b+6),p=c&65528;if(80386<=e.ca){var v=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case de:var u=a.C;a.Qe=!1;if(u&&c==Xd&&a.B.length){var E=a.B[a.Kf-1];if(E&&!E())return-1}var G=c&3,I=(g&24576)>>13,E=-1,J,T;p||b>= -e.Kb&&b=a.Ab&&(G>a.Ab&&(E=ee(e),fe(e,ee(e),!0),ge(e,E),a.Qe=!0),E=0);else{if(256==h||2304==h)return he(a,c,u)?a.ua:-1;if(1024==h)E=2,T=0,Gh||2048==(h&2560))return y.call(e,13,c&65532),-1;if(!(g&32768))return y.call(e,11,c&65532),-1}break;case $d:if(!p||4096>h||512!=(h&2560))return y.call(e,13,c&65532),-1;if(!(g&32768))return y.call(e,12,c&65532), --1;break;case be:u=h&-513;if(!p||256!=u&&2304!=u)return y.call(e,13,c&65532),-1;2304==u&&(a.Ti=k+e.ja(k+102)|0,a.ul=k+a.Ka|0);break;case Zd:if(!(h&4096)&&768>>0)+1,a.lb=g,a.type=h,a.ext=m,a.Lb=b,Vd(a,!0,!0,!1));return k} +function x(a,b,c,d,e,f){this.id=$c+=2;this.X=null;this.H=0;this.ya=a;this.ve=b;this.size=c||0;this.type=d||ad;this.D=d==Dc;this.controller=null;this.C=f;mc(this);this.Oa=this.qj=!1;if(c)if(e)this.controller=e,a=e.vj(a),this.X=a[0],this.H=a[1],zc(this,e.fh());else if(Nb)this.I=new ArrayBuffer(c),this.G=new DataView(this.I,0,c),this.Pa=new Uint8Array(this.I,0,c),this.Rd=new Uint16Array(this.I,0,c>>1),this.X=new Int32Array(this.I,0,c>>2),zc(this,Ec?Fc:Gc);else{this.X=Array(c>>2);for(e=0;e>2),b=0;b>8,c)};l.oi=function(a,b,c){this.Dc(a++,b&255,c++);this.Dc(a++,b>>8&255,c++);this.Dc(a++,b>>16&255,c++);this.Dc(a,b>>>24,c)};l.xo=function(a){return this.X[a>>2]>>>((a&3)<<3)&255}; +l.Jo=function(a){var b=a>>2;a=(a&3)<<3;var c=this.X[b]>>a;return 24>a?c&65535:c&255|(this.X[b+1]&255)<<8};l.Do=function(a){var b=a>>2;a=(a&3)<<3;var c=this.X[b];a&&(c=c>>>a|this.X[b+1]<<32-a);return c};l.Wo=function(a,b){var c=a>>2;a=(a&3)<<3;this.X[c]=this.X[c]&~(255<>2;a=(a&3)<<3;24>a?this.X[c]=this.X[c]&~(65535<>8);this.Oa=!0}; +l.bp=function(a,b){var c=a>>2;if(a=(a&3)<<3){var d=-1<>>32-a}else this.X[c]=b;this.Oa=!0};l.wo=function(a,b){this.ba&&null!=this.ya&&pd(this.ba,this.ya+a)||this.C&&qd(this.C,b,1,!1);return this.Zd(a,b)};l.Io=function(a,b){this.ba&&null!=this.ya&&pd(this.ba,this.ya+a,2)||this.C&&qd(this.C,b,2,!1);return this.Nf(a,b)};l.Co=function(a,b){this.ba&&null!=this.ya&&pd(this.ba,this.ya+a,4)||this.C&&qd(this.C,b,4,!1);return this.ji(a,b)}; +l.Vo=function(a,b,c){this.ba&&null!=this.ya&&rd(this.ba,this.ya+a)||this.C&&qd(this.C,c,1,!0);this.D?this.cf(0,b,c):this.bf(a,b,c)};l.hp=function(a,b,c){this.ba&&null!=this.ya&&rd(this.ba,this.ya+a,2)||this.C&&qd(this.C,c,2,!0);this.D?this.cf(0,b,c):this.ri(a,b,c)};l.ap=function(a,b,c){this.ba&&null!=this.ya&&rd(this.ba,this.ya+a,4)||this.C&&qd(this.C,c,4,!0);this.D?this.cf(0,b,c):this.K(a,b,c)};l.zo=function(a,b){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.F;return this.pd.Bc(a,b)}; +l.Lo=function(a,b){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.F;return this.pd.Mf(a,b)};l.Fo=function(a,b){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.F;return this.pd.Nd(a,b)};l.Yo=function(a,b,c){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.J;this.pd.Dc(a,b,c)};l.kp=function(a,b,c){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.J;this.pd.Tf(a,b,c)};l.ep=function(a,b,c){this.nb.X[this.A]|=this.F;this.ob.X[this.B]|=this.J;this.pd.Sf(a,b,c)}; +l.Ao=function(a,b){return sd(this.C,b,!1).Bc(a,b)};l.Mo=function(a,b){return sd(this.C,b,!1).Mf(a,b)};l.Go=function(a,b){return sd(this.C,b,!1).Nd(a,b)};l.Zo=function(a,b,c){sd(this.C,c,!0).Dc(a,b,c)};l.lp=function(a,b,c){sd(this.C,c,!0).Tf(a,b,c)};l.fp=function(a,b,c){sd(this.C,c,!0).Sf(a,b,c)};l.vo=function(a){return this.Pa[a]};l.Qk=function(a){return this.Pa[a]};l.yo=function(a){this.nb.X[this.A]|=32;this.ob.X[this.B]|=32;this.Bc=this.Qk;return this.Pa[a]}; +l.Ho=function(a){return this.G.getUint16(a,!0)};l.Vk=function(a){return a&1?this.Pa[a]|this.Pa[a+1]<<8:this.Rd[a>>1]};l.Ko=function(a){this.nb.X[this.A]|=32;this.ob.X[this.B]|=32;this.Mf=this.Vk;return a&1?this.Pa[a]|this.Pa[a+1]<<8:this.Rd[a>>1]};l.Bo=function(a){return this.G.getInt32(a,!0)};l.Sk=function(a){return a&3?this.Pa[a]|this.Pa[a+1]<<8|this.Pa[a+2]<<16|this.Pa[a+3]<<24:this.X[a>>2]}; +l.Eo=function(a){this.nb.X[this.A]|=32;this.ob.X[this.B]|=32;this.Nd=this.Sk;return a&3?this.Pa[a]|this.Pa[a+1]<<8|this.Pa[a+2]<<16|this.Pa[a+3]<<24:this.X[a>>2]};l.Uo=function(a,b){this.Pa[a]=b;this.Oa=!0};l.el=function(a,b){this.Pa[a]=b;this.Oa=!0};l.Xo=function(a,b){this.Pa[a]=b;this.nb.X[this.A]|=32;this.ob.X[this.B]|=96;this.Dc=this.el;this.pd.Oa=!0};l.gp=function(a,b){this.G.setUint16(a,b,!0);this.Oa=!0};l.gl=function(a,b){a&1?(this.Pa[a]=b,this.Pa[a+1]=b>>8):this.Rd[a>>1]=b;this.Oa=!0}; +l.jp=function(a,b){a&1?(this.Pa[a]=b,this.Pa[a+1]=b>>8):this.Rd[a>>1]=b;this.nb.X[this.A]|=32;this.ob.X[this.B]|=96;this.Tf=this.gl;this.pd.Oa=!0};l.$o=function(a,b){this.G.setInt32(a,b,!0);this.Oa=!0};l.fl=function(a,b){a&3?(this.Pa[a]=b,this.Pa[a+1]=b>>8,this.Pa[a+2]=b>>16,this.Pa[a+3]=b>>24):this.X[a>>2]=b;this.Oa=!0}; +l.cp=function(a,b){a&3?(this.Pa[a]=b,this.Pa[a+1]=b>>8,this.Pa[a+2]=b>>16,this.Pa[a+3]=b>>24):this.X[a>>2]=b;this.nb.X[this.A]|=32;this.ob.X[this.B]|=96;this.Sf=this.fl;this.pd.Oa=!0};function td(a){Nb&&!Ec&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a} +var ad=0,Dc=2,bd=5,dd=6,ud=["black","blue","green","cyan"],tc="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),$c=0,fd=[],Hc=[x.prototype.xo,x.prototype.Wo,x.prototype.Jo,x.prototype.ip,x.prototype.Do,x.prototype.bp],od=[x.prototype.wo,x.prototype.Vo,x.prototype.Io,x.prototype.hp,x.prototype.Co,x.prototype.ap],ed=[x.prototype.zo,x.prototype.Yo,x.prototype.Lo,x.prototype.kp,x.prototype.Fo,x.prototype.ep],cd=[x.prototype.Ao,x.prototype.Zo,x.prototype.Mo,x.prototype.lp,x.prototype.Go,x.prototype.fp]; +if(Nb)var Gc=[x.prototype.vo,x.prototype.Uo,x.prototype.Ho,x.prototype.gp,x.prototype.Bo,x.prototype.$o],Fc=[x.prototype.Qk,x.prototype.el,x.prototype.Vk,x.prototype.gl,x.prototype.Sk,x.prototype.fl],vd=[x.prototype.yo,x.prototype.Xo,x.prototype.Ko,x.prototype.jp,x.prototype.Eo,x.prototype.cp]; +function wd(a,b){mb.call(this,"CPU",a,1);b=a.cycles||b;var c=a.multiplier||1;this.T={};this.T.sd=b;this.T.Kd=c;this.T.rg=Math.round(this.T.sd/1E4)/100;this.T.oe=this.T.rg*this.T.Kd;this.ea.vb=!1;this.ea.ni=!1;this.ea.lf=a.autoStart;this.ea.kj=!1;this.ea.He=!1;this.T.uf=this.T.Te=0;this.T.wf=a.csStart;this.T.Se=a.csInterval;this.T.Ue=a.csStop;this.Ql=this.Uf.bind(this);Ib(this)}ba(wd,mb);l=wd.prototype; +l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.ba=d;for(b=0;b=a.T.Te&&(a.T.Te+=a.T.Se,c=!0);0<=a.T.Ue&&a.T.Ue<=Dd(a)&&(a.T.Se=a.T.Ue=-1,Ad(a),a.Jb(),c=!0);c&&a.P(Dd(a)+" cycles: checksum="+q(a.T.uf))}} +l.Cb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.na[b]=c;a=!0;break;case "run":this.na[b]=c;c.onclick=function(){var a;if(a=d.pa)if(a=d.pa,a.ea.Yb)a=!0;else{var b=null,c,h=sb(a.id);for(c=0;ca.T.rg&&(c=Math.round(c/a.T.Kd));return c}function zd(a){a.T.Wd=0;a.Dd=a.md=a.zc=a.A=0;Ad(a);Ed(a,1)} +function Ed(a,b,c){var d=!1;if(void 0!==b){.8>a.T.Wd/a.T.oe?b=1:d=!0;a.T.Kd=b;b=a.T.rg*a.T.Kd;if(a.T.oe!=b){a.T.oe=b;b=a.T.oe.toFixed(2)+"Mhz";var e=a.na.setSpeed;e&&(e.textContent=b);a.P("target speed: "+b)}c&&a.pa&&a.pa.ld()}Gd(a,a.md);a.md=0;a.T.Xd=Ja();a.T.pe=0;Hd(a);return d} +l.Uf=function(a){if(Kb(this,!0)){if(!this.ea.vb){Ed(this);this.pa&&this.pa.start(this.T.Xd,Dd(this));this.ea.vb=!0;this.ea.ni=!0;this.V&&this.V.start();var b=this.na.run;b&&(b.textContent="Halt");this.pa&&(Md(this.pa,!0),a&&this.pa.ld(!0))}this.T.th>=this.T.sd&&Hd(this,!0);this.T.zf=0;this.T.sg=Ja();this.T.pe&&(a=this.T.sg-this.T.pe,a>this.T.Dj&&(this.T.Xd+=a,this.T.Xd>this.T.sg&&(this.T.Xd=this.T.sg)));try{do{var c=this.ea.He?1:this.T.nn;if(this.V){Nd(this.V);var d=this.V;a=c;var e=d.G[0];if(e.le){var f= +(Dd(d.H,d.O)-e.jd)/d.Ba|0,g=Od(d,0)-f;e.mode==Pd&&(g-=f);var h=g*d.Ba|0;e.mode==Pd&&(h>>=1);a>h&&(a=h)}var c=a,k=this.V;a=c;if(k.A&&k.A[Qd]&Rd){var m=k.Z-Dd(k.H,k.O);0m&&(a=m)}c=a}try{this.Lg(c)}catch(v){if("number"!=typeof v)throw v;}var p=this.zc-this.A;this.md+=p;this.T.zf+=p;Gd(this,0,!0);Cd(this,p);this.T.yf-=p;0>=this.T.yf&&(this.T.yf+=this.T.Fj,this.pa&&Sd(this.pa));this.T.xf-=p;0>=this.T.xf&&(this.T.xf+=this.T.Ej,this.pa&&Md(this.pa));this.T.Ve-=p;if(0>=this.T.Ve){this.T.Ve+=this.T.sh; +break}}while(this.ea.vb)}catch(v){this.Jb();Bd(this);this.pa&&this.pa.stop(Ja(),Dd(this));Kb(this,!1);Fb(this,v.stack||v.message);return}c=setTimeout;d=this.Ql;this.T.pe=Ja();e=this.T.Dj;this.T.zf&&(e=Math.round(e*this.T.zf/this.T.sh));e-=this.T.pe-this.T.sg;if(f=this.T.pe-this.T.Xd)this.T.Wd=Math.round(this.md/(10*f))/100,864E5<=f&&(this.Dd=0,this.V&&Nd(this.V,!0),Ed(this));if(0>e||this.T.Wde&&(this.T.Xd-=e),e=0;this.T.th+=this.T.zf;this.T.pe+=e;c(d,e)}else Bd(this),this.pa&&this.pa.stop(Ja(), +Dd(this))};l.Lg=function(){return 0};l.Jb=function(a){Jb(this,!0);this.zc-=this.A;this.A=0;Gd(this,this.md);this.md=0;if(this.ea.vb){this.ea.vb=!1;this.V&&this.V.stop();var b=this.na.run;b&&(b.textContent="Run")}this.ea.complete=a};function Bd(a,b){a.pa&&(Sd(a.pa,b),Md(a.pa,b))}var Id=30,Jd=60,Kd=2,xd=["power","reset"]; +function Ud(a,b,c,d){this.gc=a;this.ba=a.ba;this.id=b;this.$b=c||"";this.U=0;this.Ka=65535;this.Nb=this.Ka+1;this.Ab=this.qc=this.ext=this.lb=this.type=this.ua=0;this.Lb=-1;this.W=this.Jc=2;this.R=this.wa=65535;this.G=this.mh;this.D=this.dj;this.F=this.fj;this.A={U:-1,ua:0,Ka:0,lb:0,type:0,ext:0,Lb:-1};1==this.id&&(this.Jf=0,this.C=null,this.Pe=!1,this.H=Array(32),this.B=[]);Vd(this,!0,d)}function Wd(a,b){a.B.push(b);return[a.B.length,Xd]}l=Ud.prototype; +l.mh=function(a){this.U=a&65535;return this.ua=this.U<<4};l.qg=function(a,b){var c,d,e=this.gc;a&=65535;a&4?(c=e.Eb.ua,d=c+e.Eb.Ka|0):(c=e.Kb,d=e.Pc);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,Yd(this,c,a,b);this.id>>0)+b<=this.Nb?this.ua+a|0:this.kg()};l.zl=function(a,b){return(a>>>0)+b>this.Nb?this.ua+a|0:this.kg()};l.kg=function(){y.call(this.gc,13,0);return-1};l.ej=function(a,b){return(a>>>0)+b<=this.Nb?this.ua+a|0:this.lg()}; +l.Al=function(a,b){return(a>>>0)+b>this.Nb?this.ua+a|0:this.lg()};l.lg=function(){y.call(this.gc,13,0);return-1};function ae(a,b,c,d,e){a.U=b;a.ua=d;a.Ka=e;a.Nb=(e>>>0)+1;a.lb=c;a.type=c&7936;a.ext=c>>16&192;a.Lb=(b&4?a.gc.Eb.ua:a.gc.Kb)+(b&65528)|0;a.id>>0)+1;a.lb=e;a.type=e&7936;a.ext=0;a.Lb=b;a.id>>0)+1,a.lb=a.A.lb,a.type=a.A.type,a.ext=a.A.ext,a.Lb=a.A.Lb,a.A.U=-1,Vd(a,!0,!0,!1),a.ua;a.A.U=-1;var f=e.ja(b+0),g=e.ja(b+4),h=g&7936,k=e.ja(b+2)|(g&255)<<16,m=e.ja(b+6),p=c&65528;if(80386<=e.ca){var v=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case de:var u=a.C;a.Pe=!1;if(u&&c==Xd&&a.B.length){var E=a.B[a.Jf-1];if(E&&!E())return-1}var G=c&3,I=(g&24576)>>13,E=-1,J,T;p||b>= +e.Kb&&b=a.Ab&&(G>a.Ab&&(E=ee(e),fe(e,ee(e),!0),ge(e,E),a.Pe=!0),E=0);else{if(256==h||2304==h)return he(a,c,u)?a.ua:-1;if(1024==h)E=2,T=0,Gh||2048==(h&2560))return y.call(e,13,c&65532),-1;if(!(g&32768))return y.call(e,11,c&65532),-1}break;case $d:if(!p||4096>h||512!=(h&2560))return y.call(e,13,c&65532),-1;if(!(g&32768))return y.call(e,12,c&65532), +-1;break;case be:u=h&-513;if(!p||256!=u&&2304!=u)return y.call(e,13,c&65532),-1;2304==u&&(a.Si=k+e.ja(k+102)|0,a.tl=k+a.Ka|0);break;case Zd:if(!(h&4096)&&768>>0)+1,a.lb=g,a.type=h,a.ext=m,a.Lb=b,Vd(a,!0,!0,!1));return k} function he(a,b,c){var d=a.gc,e=a.Ab,f=d.la.U,g=d.la.ua;if(!c){if(!(d.la.type&512))return y.call(d,13,b&65532),!1;d.fb(d.la.Lb+4,d.la.lb&=-513)}if(-1===d.la.load(b))return!1;var h=d.la.ua;if(!1!==c){if(d.la.type&512)return y.call(d,13,b&65532),!1;d.fb(d.la.Lb+4,d.la.lb|=512)}d.la.type=d.la.type&-513|d.la.lb&512;256==d.la.type||768==d.la.type?(d.fb(g+14,A(d)),d.fb(g+16,qe(d)),d.fb(g+18,d.D),d.fb(g+20,d.I),d.fb(g+22,d.L),d.fb(g+24,d.G),d.fb(g+26,z(d)),d.fb(g+28,d.M),d.fb(g+30,d.K),d.fb(g+32,d.J),d.fb(g+ 34,d.oa.U),d.fb(g+36,d.Z.U),d.fb(g+38,d.Y.U),d.fb(g+40,d.Ca.U),d.Eb.load(d.ja(h+42)),re(d,d.ja(h+16)|(c?16384:0)),d.D=d.ja(h+18),d.I=d.ja(h+20),d.L=d.ja(h+22),d.G=d.ja(h+24),d.M=d.ja(h+28),d.K=d.ja(h+30),d.J=d.ja(h+32),d.oa.load(d.ja(h+34)),d.Ca.load(d.ja(h+40)),se(d,d.ja(h+14),d.ja(h+36)),b=38,g=26,a.Ab>>0)+1)}; -function Vd(a,b,c,d){void 0===c&&(c=!!(a.gc.qa&1));a.Oc=!1;if(c)if(a.load=a.rg,a.Dj=a.gn,a.bc=a.dj,a.cc=a.fj,void 0===d&&(d=!!(a.gc.O&131072)),d)a.load=a.G,a.bc=a.D,a.cc=a.F,a.Ab=a.qc=3,a.W=2,a.R=a.wa=65535,a.Ka=65535,a.Nb=a.Ka+1,a.Jc=a.W,a.Lb=-1,a.Qe=!1;else{if(!(a.U&-4))a.bc=a.lg,a.cc=a.mg;else if(a.type&4096){6144==(a.type&6656)&&(a.bc=a.lg);if(a.type&2048||!(a.type&512))a.cc=a.mg;1024==(a.type&3072)&&(a.bc==a.dj&&(a.bc=a.Al),a.cc==a.fj&&(a.cc=a.Bl),a.Oc=!0);b&&a.id>13,80386>a.gc.ca||!(a.ext&64)?(a.W=2,a.R=65535):(a.W=4,a.R=-1),a.Jc=a.W,a.wa=a.R)}else a.load=a.nh,a.Dj=a.hn,a.bc=a.ej,a.cc=a.gj,a.Ab=a.qc=0,a.Lb=-1,a.Qe=!1}var de=1,pe=2,$d=3,be=4,Zd=6,Xd=1; -function ue(a){var b=+a.model||8088,c;switch(b){default:c=4772727;break;case 80286:c=6E6;break;case 80386:c=16E6}wd.call(this,a,c);this.ca=b;a=a.stepping;this.xe=b+(a?oa(a,16):0);this.Si=61442;this.Qd=1792;this.ti=28672;this.Wf=4;this.Ta=255;this.B=80286<=this.ca?Pb:Ob;this.va=ze;this.cj=Ae;this.jj=Be;this.oj=Ce;if(80186<=this.ca&&(this.va=ze.slice(),this.cj=Ae.slice(),this.jj=Be.slice(),this.Ta=31,this.va[15]=De,this.va[96]=Ee,this.va[97]=Fe,this.va[98]=Ge,this.va[99]=De,this.va[100]=De,this.va[101]= -De,this.va[102]=De,this.va[103]=De,this.va[104]=He,this.va[105]=Ie,this.va[106]=Je,this.va[107]=Ke,this.va[108]=Le,this.va[109]=Me,this.va[110]=Ne,this.va[111]=Oe,this.va[192]=Pe,this.va[193]=Qe,this.va[200]=Re,this.va[201]=Se,this.va[241]=Te,this.cj[7]=Ue,this.jj[7]=Ue,80286<=this.ca)){this.Si=2;this.Qd|=28672;this.Wf=0;this.va[15]=Ve;this.Pd=We.slice();for(b=0;b=this.xe&&(this.Pd[166]=gf,this.Pd[167]=hf)}}this.Zf=[];this.$f=[];this.bg=0;zd(this);this.ea.complete=this.ea.kj=!1;this.uj=0;this.sc=this.aa=[];this.hb=this.Og=this.Db=this.Xf=this.ef=this.ff=this.ed=0;jf(this)}ba(ue,wd);function kf(a,b,c,d){b=(d?a.sc:a.aa)[b>>>a.hb];c?--b.je||nd(b):--b.ie||id(b);d&&sc(a)} -function lf(a){var b;if(a.aa===a.sc){a.aa=Array(a.Xf);a.ag=new x(null,0,0,bd,null,a);mc(a.ag,a.ba);for(b=0;b>>20,f=a.sc[(a.Wc+e&a.ff)>>>a.hb],g=f.Nd(e);if(!(g&1))return d||nf.call(a,b,!1,c),a.gf;if(!(g&4)&&3==a.Ma)return d||nf.call(a,b,!0,c),a.gf;var h=(b&4190208)>>>10,g=a.sc[((g&-4096)+h&a.ff)>>>a.hb],k=g.Nd(h);if(!(k&1))return d||nf.call(a,b,!1,c),a.gf;if(!(k&4)&&3==a.Ma)return d||nf.call(a,b,!0,c),a.gf;c=a.sc[((k&-4096)+(b&4095)&a.ff)>>>a.hb];if(d)return c;d=b>>>a.hb;k=a.aa[d];b&=-4096;var m;0>2;b.ob=g;b.B=h>>2;Nb&&Ec&&c.X&&!c.controller&&!c.ie&&!c.je?(b.Pa=c.Pa,b.Rd=c.Rd,b.X=c.X,zc(b,vd)):(b.F=c?td(32):0,b.J=c?td(96):0,zc(b,ed));mc(b,a.ba,k);a.aa[d]=b;a.Yf.push(d);return b}function of(a){a.aa!==a.sc&&(a.aa=a.sc,a.ag=null,a.Yf=null,a.gf=null)}l=ue.prototype;l.reset=function(){this.ea.vb&&this.Jb();jf(this);zd(this);this.ea.error=!1}; +function Vd(a,b,c,d){void 0===c&&(c=!!(a.gc.qa&1));a.Oc=!1;if(c)if(a.load=a.qg,a.Cj=a.fn,a.bc=a.cj,a.cc=a.ej,void 0===d&&(d=!!(a.gc.O&131072)),d)a.load=a.G,a.bc=a.D,a.cc=a.F,a.Ab=a.qc=3,a.W=2,a.R=a.wa=65535,a.Ka=65535,a.Nb=a.Ka+1,a.Jc=a.W,a.Lb=-1,a.Pe=!1;else{if(!(a.U&-4))a.bc=a.kg,a.cc=a.lg;else if(a.type&4096){6144==(a.type&6656)&&(a.bc=a.kg);if(a.type&2048||!(a.type&512))a.cc=a.lg;1024==(a.type&3072)&&(a.bc==a.cj&&(a.bc=a.zl),a.cc==a.ej&&(a.cc=a.Al),a.Oc=!0);b&&a.id>13,80386>a.gc.ca||!(a.ext&64)?(a.W=2,a.R=65535):(a.W=4,a.R=-1),a.Jc=a.W,a.wa=a.R)}else a.load=a.mh,a.Cj=a.gn,a.bc=a.dj,a.cc=a.fj,a.Ab=a.qc=0,a.Lb=-1,a.Pe=!1}var de=1,pe=2,$d=3,be=4,Zd=6,Xd=1; +function ue(a){var b=+a.model||8088,c;switch(b){default:c=4772727;break;case 80286:c=6E6;break;case 80386:c=16E6}wd.call(this,a,c);this.ca=b;a=a.stepping;this.we=b+(a?oa(a,16):0);this.Ri=61442;this.Qd=1792;this.si=28672;this.Vf=4;this.Ta=255;this.B=80286<=this.ca?Pb:Ob;this.va=ve;this.bj=Ae;this.ij=Be;this.nj=Ce;if(80186<=this.ca&&(this.va=ve.slice(),this.bj=Ae.slice(),this.ij=Be.slice(),this.Ta=31,this.va[15]=De,this.va[96]=Ee,this.va[97]=Fe,this.va[98]=Ge,this.va[99]=De,this.va[100]=De,this.va[101]= +De,this.va[102]=De,this.va[103]=De,this.va[104]=He,this.va[105]=Ie,this.va[106]=Je,this.va[107]=Ke,this.va[108]=Le,this.va[109]=Me,this.va[110]=Ne,this.va[111]=Oe,this.va[192]=Pe,this.va[193]=Qe,this.va[200]=Re,this.va[201]=Se,this.va[241]=Te,this.bj[7]=Ue,this.ij[7]=Ue,80286<=this.ca)){this.Ri=2;this.Qd|=28672;this.Vf=0;this.va[15]=Ve;this.Pd=We.slice();for(b=0;b=this.we&&(this.Pd[166]=gf,this.Pd[167]=hf)}}this.Yf=[];this.Zf=[];this.ag=0;zd(this);this.ea.complete=this.ea.jj=!1;this.tj=0;this.sc=this.aa=[];this.hb=this.Ng=this.Db=this.Wf=this.df=this.ef=this.ed=0;jf(this)}ba(ue,wd);function kf(a,b,c,d){b=(d?a.sc:a.aa)[b>>>a.hb];c?--b.ie||nd(b):--b.he||id(b);d&&sc(a)} +function lf(a){var b;if(a.aa===a.sc){a.aa=Array(a.Wf);a.$f=new x(null,0,0,bd,null,a);mc(a.$f,a.ba);for(b=0;b>>20,f=a.sc[(a.Wc+e&a.ef)>>>a.hb],g=f.Nd(e);if(!(g&1))return d||nf.call(a,b,!1,c),a.ff;if(!(g&4)&&3==a.Ma)return d||nf.call(a,b,!0,c),a.ff;var h=(b&4190208)>>>10,g=a.sc[((g&-4096)+h&a.ef)>>>a.hb],k=g.Nd(h);if(!(k&1))return d||nf.call(a,b,!1,c),a.ff;if(!(k&4)&&3==a.Ma)return d||nf.call(a,b,!0,c),a.ff;c=a.sc[((k&-4096)+(b&4095)&a.ef)>>>a.hb];if(d)return c;d=b>>>a.hb;k=a.aa[d];b&=-4096;var m;0>2;b.ob=g;b.B=h>>2;Nb&&Ec&&c.X&&!c.controller&&!c.he&&!c.ie?(b.Pa=c.Pa,b.Rd=c.Rd,b.X=c.X,zc(b,vd)):(b.F=c?td(32):0,b.J=c?td(96):0,zc(b,ed));mc(b,a.ba,k);a.aa[d]=b;a.Xf.push(d);return b}function of(a){a.aa!==a.sc&&(a.aa=a.sc,a.$f=null,a.Xf=null,a.ff=null)}l=ue.prototype;l.reset=function(){this.ea.vb&&this.Jb();jf(this);zd(this);this.ea.error=!1}; function uf(a,b){var c;switch(b){case 0:c=a.D;break;case 1:c=a.I;break;case 2:c=a.L;break;case 3:c=a.G;break;case 4:c=z(a);break;case 5:c=a.M;break;case 6:c=a.K;break;case 7:c=a.J}return c}function vf(a,b,c){switch(b){case 0:a.D=c;break;case 1:a.I=c;break;case 2:a.L=c;break;case 3:a.G=c;break;case 4:ge(a,c);break;case 5:a.M=c;break;case 6:a.K=c;break;case 7:a.J=c}} -function jf(a){a.D=0;a.G=0;a.I=0;a.L=0;a.Hc=0;a.M=0;a.K=0;a.J=0;a.vc=!1;a.Ba=a.Ya=0;a.cn=[0,0];a.dn=[0,0];a.xa=0;a.tj=0;a.ga=0;a.qa=65520;a.Pb=0;a.cd=1023;a.O=a.lc=0;a.Ae=a.jf=a.ze=a.Be=0;a.Uc=-1;a.Ad=a.Vc=-1;a.Bd=a.ta=-1;a.Z=new Ud(a,de,"CS");a.Ca=new Ud(a,pe,"DS");a.oa=new Ud(a,pe,"ES");a.Y=new Ud(a,$d,"SS");ge(a,0);fe(a,0);if(80386<=a.ca){switch(a.xe){case 80562:case 80563:a.L=771;break;case 80578:a.L=772;break;case 80594:a.L=773;break;case 80595:case 80596:a.L=776}a.qa=16;a.Pg=0;a.Cd=0;a.Wc=0; -a.Qb=[0,0,0,0,null,null,0,0];a.eg=[null,null,null,null,null,null,0,0];a.Ga=new Ud(a,pe,"FS");a.Ha=new Ud(a,pe,"GS");of(a)}a.Rg=new Ud(a,0,"NULL");a.Da=a.Ca;a.Rb=a.Y;a.N=a.ha=0;a.C=a.F=-1;a.eb=a.Rg;a.Xa=0;if(80286>a.ca)se(a,0,65535);else{a.Kb=0;a.Pc=65535;a.Eb=new Ud(a,5,"LDT",!0);a.la=new Ud(a,be,"TSS",!0);a.xb=new Ud(a,Zd,"VER",!0);se(a,65520,61440);var b,c=A(a);b=a.Z;var d=-65536;80386>b.gc.ca&&(d&=16777215);b=b.ua=d;a.da=b+c|0;a.Qg=(b>>>0)+(a.Z.Ka>>>0)+1}re(a,0);ie(a)} +function jf(a){a.D=0;a.G=0;a.I=0;a.L=0;a.Hc=0;a.M=0;a.K=0;a.J=0;a.vc=!1;a.Ba=a.Ya=0;a.bn=[0,0];a.cn=[0,0];a.xa=0;a.sj=0;a.ga=0;a.qa=65520;a.Pb=0;a.cd=1023;a.O=a.lc=0;a.ze=a.hf=a.ye=a.Ae=0;a.Uc=-1;a.Ad=a.Vc=-1;a.Bd=a.ta=-1;a.Z=new Ud(a,de,"CS");a.Ca=new Ud(a,pe,"DS");a.oa=new Ud(a,pe,"ES");a.Y=new Ud(a,$d,"SS");ge(a,0);fe(a,0);if(80386<=a.ca){switch(a.we){case 80562:case 80563:a.L=771;break;case 80578:a.L=772;break;case 80594:a.L=773;break;case 80595:case 80596:a.L=776}a.qa=16;a.Og=0;a.Cd=0;a.Wc=0; +a.Qb=[0,0,0,0,null,null,0,0];a.dg=[null,null,null,null,null,null,0,0];a.Ga=new Ud(a,pe,"FS");a.Ha=new Ud(a,pe,"GS");of(a)}a.Qg=new Ud(a,0,"NULL");a.Da=a.Ca;a.Rb=a.Y;a.N=a.ha=0;a.C=a.F=-1;a.eb=a.Qg;a.Xa=0;if(80286>a.ca)se(a,0,65535);else{a.Kb=0;a.Pc=65535;a.Eb=new Ud(a,5,"LDT",!0);a.la=new Ud(a,be,"TSS",!0);a.xb=new Ud(a,Zd,"VER",!0);se(a,65520,61440);var b,c=A(a);b=a.Z;var d=-65536;80386>b.gc.ca&&(d&=16777215);b=b.ua=d;a.da=b+c|0;a.Pg=(b>>>0)+(a.Z.Ka>>>0)+1}re(a,0);ie(a)} function wf(a){2==a.Jc?(a.Sb=a.ja,a.kc=xf,a.tc=yf,a.kd=zf,2==a.W?(a.ma=Af,a.za=Bf,a.ib=Cf):(a.ma=Df,a.za=Ef,a.ib=Ff)):(a.Sb=a.ia,a.kc=Gf,a.tc=Hf,a.kd=If,2==a.W?(a.ma=Jf,a.za=Kf,a.ib=Lf):(a.ma=Mf,a.za=Nf,a.ib=Of))}function je(a,b){a.W!=b&&(a.ha|=1024,a.W=b,a.R=2==b?65535:-1,Pf(a))}function Pf(a){2==a.W?(a.Fb=32768,a.jb=a.ja,a.yb=a.fb,2==a.Jc?(a.ma=Af,a.za=Bf,a.ib=Cf):(a.ma=Jf,a.za=Kf,a.ib=Lf)):(a.Fb=-2147483648,a.jb=a.ia,a.yb=a.ab,2==a.Jc?(a.ma=Df,a.za=Ef,a.ib=Ff):(a.ma=Mf,a.za=Nf,a.ib=Of))} -function Qf(a){a.Jc=a.Z.Jc;a.wa=a.Z.wa;wf(a);a.W=a.Z.W;a.R=a.Z.R;Pf(a);a.ha&=-3073}l.vj=function(){var a=this.D+this.G+this.I+this.L+z(this)+this.M+this.K+this.J|0;return a=a+A(this)+this.Z.U+this.Ca.U+this.Y.U+this.oa.U+qe(this)|0};function Rf(a,b,c){void 0===a.Zf[b]&&(a.Zf[b]=[]);a.Zf[b].push(c)}function Sf(a,b,c){c&&(null==a.$f[b]&&a.bg++,a.$f[b]=c)}function Tf(a,b){var c=a.$f[b];null!=c&&(c(--a.bg),delete a.$f[b])} -function Uf(a,b){for(var c=a.Qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Qb[e],g=g&~(d>>2&3);b?a.aa[g>>>a.hb].Gd(g&a.Db,f,a):(g=a.aa[g>>>a.hb],f?--g.je||nd(g):--g.ie||id(g))}c>>=2;d>>=4}}function qd(a,b,c,d){if(!(a.N&8192)&&a.Qb[7]&255){c--;var e=a.Qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Qb[g]&&b<=a.Qb[g]+h){a.Qb[6]|=1<>=2;f>>=4}}} -function ie(a,b,c){void 0===b&&(b=!!(a.qa&1));void 0===c&&(c=!!(a.O&131072));a.oj=b&&!c?Vf:Ce;Vd(a.Z,!1,b,c);Vd(a.Ca,!1,b,c);Vd(a.Y,!1,b,c);Vd(a.oa,!1,b,c);80386<=a.ca&&(Vd(a.Ga,!1,b,c),Vd(a.Ha,!1,b,c));Qf(a)} -l.save=function(){var a=new Wf(this);a.set(0,[this.D,this.G,this.I,this.L,z(this),this.M,this.K,this.J]);var b=A(this),c=this.Z.save(),d=this.Ca.save(),e=this.Y.save(),f=this.oa.save(),g;null!=this.Kb?(g=[this.qa,this.Kb,this.Pc,this.Pb,this.cd,this.Eb.save(),this.la.save(),this.lc],80386<=this.ca&&(g.push(this.Pg),g.push(this.Cd),g.push(this.Wc),g.push(this.Qb),g.push(this.eg))):g=null;b=[b,c,d,e,f,g,qe(this)];80386<=this.ca&&(b.push(this.Ga.save()),b.push(this.Ha.save()));a.set(1,b);a.set(2,[this.Da.$b, +function Qf(a){a.Jc=a.Z.Jc;a.wa=a.Z.wa;wf(a);a.W=a.Z.W;a.R=a.Z.R;Pf(a);a.ha&=-3073}l.uj=function(){var a=this.D+this.G+this.I+this.L+z(this)+this.M+this.K+this.J|0;return a=a+A(this)+this.Z.U+this.Ca.U+this.Y.U+this.oa.U+qe(this)|0};function Rf(a,b,c){void 0===a.Yf[b]&&(a.Yf[b]=[]);a.Yf[b].push(c)}function Sf(a,b,c){c&&(null==a.Zf[b]&&a.ag++,a.Zf[b]=c)}function Tf(a,b){var c=a.Zf[b];null!=c&&(c(--a.ag),delete a.Zf[b])} +function Uf(a,b){for(var c=a.Qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Qb[e],g=g&~(d>>2&3);b?a.aa[g>>>a.hb].Gd(g&a.Db,f,a):(g=a.aa[g>>>a.hb],f?--g.ie||nd(g):--g.he||id(g))}c>>=2;d>>=4}}function qd(a,b,c,d){if(!(a.N&8192)&&a.Qb[7]&255){c--;var e=a.Qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Qb[g]&&b<=a.Qb[g]+h){a.Qb[6]|=1<>=2;f>>=4}}} +function ie(a,b,c){void 0===b&&(b=!!(a.qa&1));void 0===c&&(c=!!(a.O&131072));a.nj=b&&!c?Vf:Ce;Vd(a.Z,!1,b,c);Vd(a.Ca,!1,b,c);Vd(a.Y,!1,b,c);Vd(a.oa,!1,b,c);80386<=a.ca&&(Vd(a.Ga,!1,b,c),Vd(a.Ha,!1,b,c));Qf(a)} +l.save=function(){var a=new Wf(this);a.set(0,[this.D,this.G,this.I,this.L,z(this),this.M,this.K,this.J]);var b=A(this),c=this.Z.save(),d=this.Ca.save(),e=this.Y.save(),f=this.oa.save(),g;null!=this.Kb?(g=[this.qa,this.Kb,this.Pc,this.Pb,this.cd,this.Eb.save(),this.la.save(),this.lc],80386<=this.ca&&(g.push(this.Og),g.push(this.Cd),g.push(this.Wc),g.push(this.Qb),g.push(this.dg))):g=null;b=[b,c,d,e,f,g,qe(this)];80386<=this.ca&&(b.push(this.Ga.save()),b.push(this.Ha.save()));a.set(1,b);a.set(2,[this.Da.$b, this.Rb.$b,this.N,this.ha,this.Xa,this.C,this.F]);a.set(3,[0,this.Dd,this.T.Kd]);a.set(4,Kc(this.ka,!!(this.qa&-2147483648)));return a.data()}; -l.restore=function(a){var b=a[0];this.D=b[0];this.G=b[1];this.I=b[2];this.L=b[3];var c=b[4];this.M=b[5];this.K=b[6];this.J=b[7];b=a[1];this.Z.restore(b[1]);this.Ca.restore(b[2]);this.Y.restore(b[3]);this.oa.restore(b[4]);var d=b[5];d&&d.length&&(this.qa=d[0],this.Kb=d[1],this.Pc=d[2],this.Pb=d[3],this.cd=d[4],this.Eb.restore(d[5]),this.la.restore(d[6]),this.lc=d[7],80386<=this.ca&&(this.Pg=d[8],this.Cd=d[9],this.Wc=d[10],this.Qb=d[11],this.eg=d[12]),ie(this));re(this,b[6]);var d=!1,e;a:{e=this.ka; +l.restore=function(a){var b=a[0];this.D=b[0];this.G=b[1];this.I=b[2];this.L=b[3];var c=b[4];this.M=b[5];this.K=b[6];this.J=b[7];b=a[1];this.Z.restore(b[1]);this.Ca.restore(b[2]);this.Y.restore(b[3]);this.oa.restore(b[4]);var d=b[5];d&&d.length&&(this.qa=d[0],this.Kb=d[1],this.Pc=d[2],this.Pb=d[3],this.cd=d[4],this.Eb.restore(d[5]),this.la.restore(d[6]),this.lc=d[7],80386<=this.ca&&(this.Og=d[8],this.Cd=d[9],this.Wc=d[10],this.Qb=d[11],this.dg=d[12]),ie(this));re(this,b[6]);var d=!1,e;a:{e=this.ka; var f=a[4],g;for(g=0;g>>0)+(a.Z.Ka>>>0)+1;a.Ma=a.Z.Ab;Qf(a)}function se(a,b,c,d){var e=a.Z;e.Kf=b;e.C=d;b=e.load(c);return-1!==b?(Zf(a,b+(a.Z.Kf&a.Z.R)),a.Z.Qe):null} -function $f(a,b){b=(a.da>>>0)+b;b>a.Qg&&(8088>=a.ca||a.Z.Ka==a.Z.wa?b=a.Z.ua+(b-a.Qg&a.R):y.call(a,13,0));return b|0}function ag(a){a.da=a.Bd}function z(a){return a.Hc&~a.Y.wa|a.Aa-a.Y.ua}function ge(a,b){a.Hc=b;a.Aa=a.Y.ua+(b&a.Y.wa)|0}function bg(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&cg(a),g&2&&dg(a),g&4&&eg(a),g&8&&fg(a),g&16&&gg(a),g&32&&hg(a))}f?(a.Ae=d,a.ze=b):(a.Ae=b,a.ze=d);a.jf=c;a.Be=d;a.resultType=e} -function ig(a,b,c,d,e){a.resultType=c|26;a.Be=b;d?jg(a):kg(a);e?lg(a):mg(a);return b}function ng(a,b,c,d){c&d?jg(a):kg(a);(b^c)&d?lg(a):mg(a)}function og(a){return cg(a)?1:0}function cg(a){a.resultType&1&&(a.O&=-2,(a.Ae^(a.Ae^a.jf)&(a.jf^a.ze))&a.resultType&-2147450752&&(a.O|=1),a.resultType&=-2);return a.O&1}function dg(a){a.resultType&2&&(a.O&=-5,38505>>((a.Be^a.Be>>4)&15)&1&&(a.O|=4),a.resultType&=-3);return a.O&4} -function eg(a){a.resultType&4&&(a.O&=-17,(a.ze^a.Ae^a.jf)&16&&(a.O|=16),a.resultType&=-5);return a.O&16}function fg(a){a.resultType&8&&(a.O&=-65,a.Be&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.O|=64),a.resultType&=-9);return a.O&64}function gg(a){a.resultType&16&&(a.O&=-129,a.Be&a.resultType&-2147450752&&(a.O|=128),a.resultType&=-17);return a.O&128} -function hg(a){a.resultType&32&&(a.O&=-2049,(a.Ae^a.ze)&(a.jf^a.ze)&a.resultType&-2147450752&&(a.O|=2048),a.resultType&=-33);return a.O&2048}function kg(a){a.resultType&=-2;a.O&=-2}function pg(a){a.resultType&=-5;a.O&=-17}function qg(a){a.resultType&=-9;a.O&=-65}function mg(a){a.resultType&=-33;a.O&=-2049}function jg(a){a.resultType&=-2;a.O|=1}function rg(a){a.resultType&=-5;a.O|=16}function sg(a){a.resultType&=-9;a.O|=64}function lg(a){a.resultType&=-33;a.O|=2048} -function qe(a){return a.O&-2262|cg(a)|dg(a)|eg(a)|fg(a)|gg(a)|hg(a)}function tg(a,b){b|=a.qa&1|65520;a.qa=a.qa&-65536|b&65535;a.qa&1&&ie(a,!0)}function re(a,b,c){a.qa&1||(b&=~a.ti);void 0===c&&(c=a.Ma);c?b=b&-12289|a.O&12288:a.lc=(b&12288)>>12;c>a.lc&&(b=b&-513|a.O&512);a.resultType=128;a.O=a.O&~(a.Qd|2261)|b&(a.Qd|2261)|a.Si;a.O&256&&(a.Xa|=2,a.N|=4)} -function ug(a,b,c,d){var e=0;if(a.qa&1&&(a.Ma>a.lc||a.O&131072)&&a.la.Ti)for(var f=a.la.Ti+(b>>>3),e=(1<>>=8,f++;return e?(t(a,256)&&Lb(a,"checkIOPM("+sa(b)+","+c+","+(d?"input":"output")+"): trapped",!0,!0),y.call(a,13,0),!1):!0} -l.Cb=function(a,b,c){switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.na[b]=c;this.uj++;a=!0;break;default:a=wd.prototype.Cb.call(this,a,b,c)}return a}; -function xg(a,b,c,d){var e=(d?a.sc:a.aa)[(b&a.ed)>>>a.hb];e&&e.type==bd&&(e=sd(a,b,!1,!0));if(e){var f=b&a.Db;if(!c||1==c)return e.Zd(f,b);if(2==c)return f>>this.hb].Bc(a&this.Db,a)}; -l.ja=function(a){var b=a&this.Db,c=(a&this.ed)>>>this.hb;this.A-=this.B.Ag;if(b>>this.hb;if(b>>this.hb].Dc(a&this.Db,b&255,a)}; -l.fb=function(a,b){var c=a&this.Db,d=(a&this.ed)>>>this.hb;this.A-=this.B.Ag;c>8&255,a+1))};l.ab=function(a,b){var c=a&this.Db,d=(a&this.ed)>>>this.hb;this.A-=this.B.Ag;if(c>>=8}}; +this.N=b[2];this.ha=b[3];this.Xa=b[4];this.C=b[5];this.F=b[6];b=a[3];this.Dd=b[1];Ed(this,b[2]);return d};function Xf(a,b){switch(b){case "CS":return a.Z;case "DS":return a.Ca;case "SS":return a.Y;case "ES":return a.oa;case "NULL":return a.Qg;default:return[0,b,0,0,""]}}function Yf(a,b){null!=se(a,A(a),b)&&(a.N|=a.Vf)}function me(a,b){-1!==a.Ca.load(b)&&(a.N|=a.Vf)} +function fe(a,b,c){var d=z(a);-1!==a.Y.load(b)&&(ge(a,d),a.Y.Oc?(a.cg=a.Y.ua+a.Y.wa|0,a.gf=a.Y.ua+a.Y.Ka|0):(a.cg=a.Y.ua+a.Y.Ka|0,a.gf=a.Y.ua),c||(a.N|=4))}function ne(a,b){-1!==a.oa.load(b)&&(a.N|=a.Vf)}function A(a){return a.da-a.Z.ua|0}function C(a,b){a.da=a.Z.ua+(b&a.R)|0}function Zf(a,b){a.da=b;a.Pg=(a.Z.ua>>>0)+(a.Z.Ka>>>0)+1;a.Ma=a.Z.Ab;Qf(a)}function se(a,b,c,d){var e=a.Z;e.Jf=b;e.C=d;b=e.load(c);return-1!==b?(Zf(a,b+(a.Z.Jf&a.Z.R)),a.Z.Pe):null} +function $f(a,b){b=(a.da>>>0)+b;b>a.Pg&&(8088>=a.ca||a.Z.Ka==a.Z.wa?b=a.Z.ua+(b-a.Pg&a.R):y.call(a,13,0));return b|0}function ag(a){a.da=a.Bd}function z(a){return a.Hc&~a.Y.wa|a.Aa-a.Y.ua}function ge(a,b){a.Hc=b;a.Aa=a.Y.ua+(b&a.Y.wa)|0}function bg(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&cg(a),g&2&&dg(a),g&4&&eg(a),g&8&&fg(a),g&16&&gg(a),g&32&&hg(a))}f?(a.ze=d,a.ye=b):(a.ze=b,a.ye=d);a.hf=c;a.Ae=d;a.resultType=e} +function ig(a,b,c,d,e){a.resultType=c|26;a.Ae=b;d?jg(a):kg(a);e?lg(a):mg(a);return b}function ng(a,b,c,d){c&d?jg(a):kg(a);(b^c)&d?lg(a):mg(a)}function og(a){return cg(a)?1:0}function cg(a){a.resultType&1&&(a.O&=-2,(a.ze^(a.ze^a.hf)&(a.hf^a.ye))&a.resultType&-2147450752&&(a.O|=1),a.resultType&=-2);return a.O&1}function dg(a){a.resultType&2&&(a.O&=-5,38505>>((a.Ae^a.Ae>>4)&15)&1&&(a.O|=4),a.resultType&=-3);return a.O&4} +function eg(a){a.resultType&4&&(a.O&=-17,(a.ye^a.ze^a.hf)&16&&(a.O|=16),a.resultType&=-5);return a.O&16}function fg(a){a.resultType&8&&(a.O&=-65,a.Ae&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.O|=64),a.resultType&=-9);return a.O&64}function gg(a){a.resultType&16&&(a.O&=-129,a.Ae&a.resultType&-2147450752&&(a.O|=128),a.resultType&=-17);return a.O&128} +function hg(a){a.resultType&32&&(a.O&=-2049,(a.ze^a.ye)&(a.hf^a.ye)&a.resultType&-2147450752&&(a.O|=2048),a.resultType&=-33);return a.O&2048}function kg(a){a.resultType&=-2;a.O&=-2}function pg(a){a.resultType&=-5;a.O&=-17}function qg(a){a.resultType&=-9;a.O&=-65}function mg(a){a.resultType&=-33;a.O&=-2049}function jg(a){a.resultType&=-2;a.O|=1}function rg(a){a.resultType&=-5;a.O|=16}function sg(a){a.resultType&=-9;a.O|=64}function lg(a){a.resultType&=-33;a.O|=2048} +function qe(a){return a.O&-2262|cg(a)|dg(a)|eg(a)|fg(a)|gg(a)|hg(a)}function tg(a,b){b|=a.qa&1|65520;a.qa=a.qa&-65536|b&65535;a.qa&1&&ie(a,!0)}function re(a,b,c){a.qa&1||(b&=~a.si);void 0===c&&(c=a.Ma);c?b=b&-12289|a.O&12288:a.lc=(b&12288)>>12;c>a.lc&&(b=b&-513|a.O&512);a.resultType=128;a.O=a.O&~(a.Qd|2261)|b&(a.Qd|2261)|a.Ri;a.O&256&&(a.Xa|=2,a.N|=4)} +function ug(a,b,c,d){var e=0;if(a.qa&1&&(a.Ma>a.lc||a.O&131072)&&a.la.Si)for(var f=a.la.Si+(b>>>3),e=(1<>>=8,f++;return e?(t(a,256)&&Lb(a,"checkIOPM("+sa(b)+","+c+","+(d?"input":"output")+"): trapped",!0,!0),y.call(a,13,0),!1):!0} +l.Cb=function(a,b,c){switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.na[b]=c;this.tj++;a=!0;break;default:a=wd.prototype.Cb.call(this,a,b,c)}return a}; +function xg(a,b,c,d){var e=(d?a.sc:a.aa)[(b&a.ed)>>>a.hb];e&&e.type==bd&&(e=sd(a,b,!1,!0));if(e){var f=b&a.Db;if(!c||1==c)return e.Zd(f,b);if(2==c)return f>>this.hb].Bc(a&this.Db,a)}; +l.ja=function(a){var b=a&this.Db,c=(a&this.ed)>>>this.hb;this.A-=this.B.zg;if(b>>this.hb;if(b>>this.hb].Dc(a&this.Db,b&255,a)}; +l.fb=function(a,b){var c=a&this.Db,d=(a&this.ed)>>>this.hb;this.A-=this.B.zg;c>8&255,a+1))};l.ab=function(a,b){var c=a&this.Db,d=(a&this.ed)>>>this.hb;this.A-=this.B.zg;if(c>>=8}}; function yg(a,b,c){a.eb=b;a.wb=c&a.wa;a.C=b.bc(a.wb,1);return a.N&1?0:a.Ia(a.C)}function D(a,b){return yg(a,a.Da,b)}function zg(a,b){return yg(a,a.Rb,b)}function Ag(a,b,c){a.eb=b;a.wb=c&a.wa;a.C=b.bc(a.wb,a.W);return a.N&1?0:a.jb(a.C)}function F(a,b){a.eb=a.Da;a.wb=b&a.wa;a.C=a.eb.bc(a.wb,2);return a.N&1?0:a.ja(a.C)}function Bg(a,b){a.eb=a.Rb;a.wb=b&a.wa;a.C=a.eb.bc(a.wb,2);return a.N&1?0:a.ja(a.C)}function H(a,b){a.eb=a.Da;a.wb=b&a.wa;a.C=a.eb.bc(a.wb,4);return a.N&1?0:a.ia(a.C)} function Cg(a,b){a.eb=a.Rb;a.wb=b&a.wa;a.C=a.eb.bc(a.wb,4);return a.N&1?0:a.ia(a.C)}function Dg(a,b){a.N&2||a.fc(a.eb.cc(a.wb,1),b)}function Eg(a,b){a.N&2||a.fb(a.eb.cc(a.wb,2),b)}function Fg(a,b){a.N&2||a.ab(a.eb.cc(a.wb,4),b)}function ke(a,b,c){return a.jb(b.bc(c,a.W))}l.ra=function(){var a=$f(this,1),b=this.Ia(this.da);this.da=a;return b};function Gg(a){var b=$f(a,2),c=a.ja(a.da);a.da=b;return c}function K(a){var b=$f(a,a.Jc),c=a.Sb(a.da);a.da=b;return c} -l.Ea=function(){var a=$f(this,this.W),b=this.jb(this.da);this.da=a;return b};l.S=function(){var a=$f(this,1),b=this.Ia(this.da)<<24>>24;this.da=a;return b};function ee(a){var b=a.jb(a.Aa);a.Aa=a.Aa+a.W|0;var c=a.dg-a.Aa|0;0>c&&0<=(a.dg^a.Aa)&&(8088>=a.ca||!a.Y.Oc&&a.Y.Ka==a.Y.wa||a.Y.Oc&&!a.Y.Ka?ge(a,a.Aa-a.Y.ua&a.Y.wa):-1>c&&y.call(a,12,0));return b} -function le(a,b,c,d){c=a.Aa-c|0;0>(c-a.hf|0)&&0<=(a.hf^c)&&(8088>=a.ca||!a.Y.Oc&&a.Y.Ka==a.Y.wa||a.Y.Oc&&!a.Y.Ka?(ge(a,c-a.Y.ua&a.Y.wa),c=a.Aa):y.call(a,12,0));switch(d){case 1:a.fc(c,b);break;case 2:a.fb(c,b);break;case 4:a.ab(c,b)}a.Aa=c}function oe(a,b){var c=a.Aa-a.W|0;0>(c-a.hf|0)&&0<=(a.hf^c)&&(8088>=a.ca||!a.Y.Oc&&a.Y.Ka==a.Y.wa||a.Y.Oc&&!a.Y.Ka?(ge(a,c-a.Y.ua&a.Y.wa),c=a.Aa):y.call(a,12,0));a.yb(c,b);a.Aa=c} -function Hg(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2this.ca?0:1,e=0;2>e;e++){switch(d){case 0:if(this.Xa&1&&this.O&512){var f=Jg(this.V);if(-1<=f&&(this.Xa&=-2,0<=f)){this.Xa&=-5; +l.Ea=function(){var a=$f(this,this.W),b=this.jb(this.da);this.da=a;return b};l.S=function(){var a=$f(this,1),b=this.Ia(this.da)<<24>>24;this.da=a;return b};function ee(a){var b=a.jb(a.Aa);a.Aa=a.Aa+a.W|0;var c=a.cg-a.Aa|0;0>c&&0<=(a.cg^a.Aa)&&(8088>=a.ca||!a.Y.Oc&&a.Y.Ka==a.Y.wa||a.Y.Oc&&!a.Y.Ka?ge(a,a.Aa-a.Y.ua&a.Y.wa):-1>c&&y.call(a,12,0));return b} +function le(a,b,c,d){c=a.Aa-c|0;0>(c-a.gf|0)&&0<=(a.gf^c)&&(8088>=a.ca||!a.Y.Oc&&a.Y.Ka==a.Y.wa||a.Y.Oc&&!a.Y.Ka?(ge(a,c-a.Y.ua&a.Y.wa),c=a.Aa):y.call(a,12,0));switch(d){case 1:a.fc(c,b);break;case 2:a.fb(c,b);break;case 4:a.ab(c,b)}a.Aa=c}function oe(a,b){var c=a.Aa-a.W|0;0>(c-a.gf|0)&&0<=(a.gf^c)&&(8088>=a.ca||!a.Y.Oc&&a.Y.Ka==a.Y.wa||a.Y.Oc&&!a.Y.Ka?(ge(a,c-a.Y.ua&a.Y.wa),c=a.Aa):y.call(a,12,0));a.yb(c,b);a.Aa=c} +function Hg(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2this.ca?0:1,e=0;2>e;e++){switch(d){case 0:if(this.Xa&1&&this.O&512){var f=Jg(this.V);if(-1<=f&&(this.Xa&=-2,0<=f)){this.Xa&=-5; Kg.call(this,f);d=!0;break a}}break;case 1:if(this.Xa&2){this.Xa&=-3;80386<=this.ca&&(this.Qb[6]|=16384);Kg.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.P("interrupt dispatched");this.N=0;break}if(this.Xa&4){this.N=this.A=0;break}}if(b){if(Lg(this.ba,this.da,c)){this.Jb();break}c=1}this.N=0;this.va[this.ra()].call(this)}while(0>11;bh(this);ch(this,a[b++]);for(c=0;c=dh&&eh(a,fh))}function bh(a){a.fa&=-129;a.fa&~a.Zb&63&&(a.fa|=128);if(a.fa&128&&!(a.Zb&128))return a=a.V,a.ca>=dh?gh(a,fh):a.da&hh||Kg.call(a.H,2),!0;a=a.V;a.ca>=dh&&eh(a,fh);return!1}function ih(a,b){80387<=a.ca||(b&=-65);a.fa|=b;return bh(a)} function Og(a){return a.fa|a.B<<11}function jh(a,b){return isFinite(b)?!0:!ih(a,Infinity===b?8:16)}function kh(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,jh(a,d)||(d=null));return d}function lh(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,jh(a,d)||(d=null));return d}function mh(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,jh(a,d)||(d=null));return d}function nh(a,b,c){var d=null;null==b||null==c||!c&&ih(a,2)||(d=b/c,jh(a,d)||(d=null));return d} function oh(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:b||(d=16384));a.fa=a.fa&-18177|d;return!0}return!1}function ph(a,b,c){if(null==b)return null;var d=a.Zb&3072;d?d=1024==d||3072==d&&0=c){if(ih(a,1))return null;d=-c}else if(d<-c){if(ih(a,1))return null;d=-c}a.G[0]=d|0;2147483648d&&(a.G[1]=-1))}return d} function qh(a,b){var c=3;a.C&1<=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function rh(a){var b=a.B+0&7;return a.C&1<>16}function wh(a){return a.H.ia(a.H.C)}function xh(a){a.ha[0]=a.H.ia(a.H.C);return a.Z[0]}function yh(a){a.G[0]=a.H.ia(a.H.C);a.G[1]=a.H.ia(a.H.C+4);return a.K[0]} -function zh(a){a.D[0]=a.H.ia(a.H.C);a.D[1]=a.H.ia(a.H.C+4);a.D[2]=a.H.ja(a.H.C+8);return a.D}l.ni=function(){this.H.ab(this.H.C,this.G[0])};l.cl=function(){this.H.ab(this.H.C,this.G[0]);this.H.ab(this.H.C+4,this.G[1])};function Ah(a){a.H.ab(a.H.C,a.D[0]);a.H.ab(a.H.C+4,a.D[1]);a.H.fb(a.H.C+8,a.D[2])}function Bh(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767;b=b[0]>>>11|c<<21;c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,b=c=0));a.G[0]=b;a.G[1]=c|(d|e)<<20;return a.K[0]} +function zh(a){a.D[0]=a.H.ia(a.H.C);a.D[1]=a.H.ia(a.H.C+4);a.D[2]=a.H.ja(a.H.C+8);return a.D}l.mi=function(){this.H.ab(this.H.C,this.G[0])};l.bl=function(){this.H.ab(this.H.C,this.G[0]);this.H.ab(this.H.C+4,this.G[1])};function Ah(a){a.H.ab(a.H.C,a.D[0]);a.H.ab(a.H.C+4,a.D[1]);a.H.fb(a.H.C+8,a.D[2])}function Bh(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767;b=b[0]>>>11|c<<21;c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,b=c=0));a.G[0]=b;a.G[1]=c|(d|e)<<20;return a.K[0]} function uh(a,b,c){var d=c>>20&2047,e=2147483648|(c&1048575)<<11|b>>>21;2047==d?d=32767:d?d+=15360:e&=2147483647;a.D[0]=b<<11;a.D[1]=e;a.D[2]=c>>16&32768|d;return a.D}function Ch(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function Dh(a,b){for(var c=0,d=0;b--;)c|=a%10<>11;bh(a);ch(a,d.jb(b+=d.W));!(d.qa&1)||d.O&131072?(a.I=d.jb(b+=d.W),c=d.jb(b+=d.W),a.O=c&2047,a.I|=(c&-4096)<<4,a.M=-1,a.J=d.jb(b+=d.W),a.J|=(d.jb(b+=d.W)&-4096)<<4,a.N=-1):(a.I=d.jb(b+=d.W),c=d.jb(b+=d.W),a.M=c&65535,a.O=c>>16&2047,a.J=d.jb(b+=d.W),a.N=d.jb(b+=d.W)&65535);return b+d.W} @@ -209,41 +209,41 @@ var ai=Math.log(10)/Math.LN2,bi=Math.LOG2E,ci=Math.PI,di=Math.log(2)/Math.LN10,e 0,-M(this,0))},65:function(){N(this,0,Math.abs(M(this,0)))},68:function(){oh(this,M(this,0),0)},69:function(){this.fa&=-18177;this.L[((this.B+0&7)<<1)+1]&-2147483648&&(this.fa|=512);if(3==qh(this,this.B))this.fa|=16640;else{var a=M(this,0);this.fa=isNaN(a)?this.fa|256:0===a?this.fa|16384:Infinity===a||-Infinity===a?this.fa|1280:this.fa|1024}},80:function(){Fh(this,1)},81:function(){Fh(this,ai)},82:function(){Fh(this,bi)},83:function(){Fh(this,ci)},84:function(){Fh(this,di)},85:function(){Fh(this, ei)},86:function(){Fh(this,0)},96:function(){N(this,0,Math.pow(2,M(this,0))-1)},97:function(){N(this,1,M(this,1)*Math.log(M(this,0))/Math.LN2)&&Eh(this)},98:function(){N(this,0,Math.tan(M(this,0)))&&Fh(this,1)},99:function(){N(this,1,Math.atan2(M(this,1),M(this,0)))&&Eh(this)},100:function(){var a=M(this,0);null!=a&&(this.K[0]=a,N(this,0,(this.G[1]>>20&2047)-1023),this.G[1]=(this.G[1]|1072693248)&-1073741825,Fh(this,this.K[0]))},102:function(){this.B=this.B-1&7;this.fa&=-513},103:function(){this.B= this.B+1&7;this.fa&=-513},112:function(){N(this,0,M(this,0)%M(this,1))},113:function(){N(this,1,M(this,1)*Math.log(M(this,0)+1)/Math.LN2)&&Eh(this)},114:function(){var a=M(this,0),b=null;if(0<=a||!ih(this,1))b=Math.sqrt(a),jh(this,b)||(b=null);N(this,0,b)},116:function(){N(this,0,ph(this,M(this,0),fi))},117:function(){var a=M(this,0),b=M(this,1);null!=a&&null!=b&&N(this,0,a*Math.pow(2,0>>0);Fh(this,a)},6:function(){var a=ph(this,Eh(this));null!=a&&(this.D[0]=Dh(a,8),this.D[1]=Dh(a/1E8,8),this.D[2]=Dh(a/1E16,2),0>a&&(this.D[2]|=32768),Ah(this))},7:function(){null!=ph(this,M(this,0),fi)&&(this.cl(),Eh(this))},48:function(){Nh.call(this);Eh(this)},49:$h,50:Vh,51:Vh,52:Yh}},hi=[Ih,Oh,Ph,Qh,Rh,Sh,Wh,Th,Xh,Yh];$a(function(){for(var a=zb(document,"pcx86","fpu"),b=0;b>>0);Fh(this,a)},6:function(){var a=ph(this,Eh(this));null!=a&&(this.D[0]=Dh(a,8),this.D[1]=Dh(a/1E8,8),this.D[2]=Dh(a/1E16,2),0>a&&(this.D[2]|=32768),Ah(this))},7:function(){null!=ph(this,M(this,0),fi)&&(this.bl(),Eh(this))},48:function(){Nh.call(this);Eh(this)},49:$h,50:Vh,51:Vh,52:Yh}},hi=[Ih,Oh,Ph,Qh,Rh,Sh,Wh,Th,Xh,Yh];$a(function(){for(var a=zb(document,"pcx86","fpu"),b=0;b>16,c=c<<16>>16,d=d<<16>>16);this.A-=this.B.Jj;(bd)&&y.call(this,5);this.N|=2;return a}function qi(a,b){var c=0;if(b){qg(this);for(var d=1;d&this.R;){if(b&d){a=c;break}d<<=1;c++}}else sg(this);this.A-=11+3*c;return a}function ri(a,b){var c=0;if(b){qg(this);for(var d=2==this.W?15:31,e=1<>>=1;c++;d--}}else sg(this);this.A-=11+3*c;return a} +function pi(a){if(-1===this.C)return y.call(this,6),a;var b=a,c=this.jb(this.C),d=this.jb(this.C+this.W);2==this.W&&(b=a<<16>>16,c=c<<16>>16,d=d<<16>>16);this.A-=this.B.Ij;(bd)&&y.call(this,5);this.N|=2;return a}function qi(a,b){var c=0;if(b){qg(this);for(var d=1;d&this.R;){if(b&d){a=c;break}d<<=1;c++}}else sg(this);this.A-=11+3*c;return a}function ri(a,b){var c=0;if(b){qg(this);for(var d=2==this.W?15:31,e=1<>>=1;c++;d--}}else sg(this);this.A-=11+3*c;return a} function si(a,b){a&1<<(b&(2==this.W?15:31))?jg(this):kg(this);this.A-=-1===this.C?3:6;this.N|=2;return a}function ti(a,b){b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=-1===this.C?6:8;return a^b}function ui(a,b){b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=-1===this.C?6:8;return a&~b}function vi(a,b){b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=-1===this.C?6:8;return a|b} function wi(a,b){if(-1===this.C)return si.call(this,a,b);var c=this.W<<3;if(b>=c||b<-c)a=Ag(this,this.eb,this.wb+(b>>(2==this.W?4:5))*this.W);b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=6;this.N|=2;return a}function xi(a,b){if(-1===this.C)return ti.call(this,a,b);var c=this.W<<3;if(b>=c||b<-c)a=Ag(this,this.eb,this.wb+(b>>(2==this.W?4:5))*this.W);b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=8;return a^b} function yi(a,b){if(-1===this.C)return ui.call(this,a,b);var c=this.W<<3;if(b>=c||b<-c)a=Ag(this,this.eb,this.wb+(b>>(2==this.W?4:5))*this.W);b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=8;return a&~b}function zi(a,b){if(-1===this.C)return vi.call(this,a,b);var c=this.W<<3;if(b>=c||b<-c)a=Ag(this,this.eb,this.wb+(b>>(2==this.W?4:5))*this.W);b=1<<(b&(2==this.W?15:31));a&b?jg(this):kg(this);this.A-=8;return a|b} -function Ai(a,b){bg(this,a,b,a-b|0,191,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Bh:this.B.Ib;this.N|=2;return a}function Bi(a,b){bg(this,a,b,a-b|0,this.Fb|63,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Bh:this.B.Ib;this.N|=2;return a} -function Ci(a){if(this.Tc){var b=this.Tc,c=this.tj,d=this.ga,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=gi[c][f]){if(0>hi.indexOf(e)){var f=b.H,g=f.Bd;8087==b.ca&&(f.ha&16&&g++,f.ha&32&&g++);b.M=f.Z.U;b.I=g-f.Z.ua;-1!==f.C&&(b.N=f.eb.U,b.J=f.C-f.eb.ua);b.O=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.C?2:8;return a}function Di(a){if(80186>this.ca)return Ei.call(this,a);y.call(this,13,0);return a}function Ue(a){y.call(this,6);return a} +function Ai(a,b){bg(this,a,b,a-b|0,191,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ah:this.B.Ib;this.N|=2;return a}function Bi(a,b){bg(this,a,b,a-b|0,this.Fb|63,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ah:this.B.Ib;this.N|=2;return a} +function Ci(a){if(this.Tc){var b=this.Tc,c=this.sj,d=this.ga,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=gi[c][f]){if(0>hi.indexOf(e)){var f=b.H,g=f.Bd;8087==b.ca&&(f.ha&16&&g++,f.ha&32&&g++);b.M=f.Z.U;b.I=g-f.Z.ua;-1!==f.C&&(b.N=f.eb.U,b.J=f.C-f.eb.ua);b.O=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.C?2:8;return a}function Di(a){if(80186>this.ca)return Ei.call(this,a);y.call(this,13,0);return a}function Ue(a){y.call(this,6);return a} function Ei(a){Xe.call(this);return a}function Fi(a,b){a=Gi.call(this,this.S(),b);80386>this.ca&&(this.A-=12);return a}function Hi(a,b){a=this.Ea();a=2==this.W?Gi.call(this,a,b):Ii.call(this,a,b);80386>this.ca&&(this.A-=12);return a}function Ji(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Ki.call(this,a,b);c&&(this.Ba=~this.Ba+1|0,this.Ya=~this.Ya+(this.Ba?0:1)|0)} function Gi(a,b){a=(a<<16>>16)*(b<<16>>16)|0;32767a?(jg(this),lg(this)):(kg(this),mg(this));this.A-=-1===this.C?9:12;return a&65535}function Ii(a,b){Ji.call(this,a,b);this.Ya!=this.Ba>>31?(jg(this),lg(this)):(kg(this),mg(this));this.A-=-1===this.C?9:12;return this.Ba}function Li(a,b){this.A-=14+(-1===this.C?0:2);qg(this);-1!==this.xb.load(b)&&this.xb.qc>=this.Ma&&this.xb.qc>=(b&3)&&(sg(this),a=this.xb.lb&-256,2=this.Ma)&&this.xb.qc>=(b&3))return sg(this),this.xb.Ka;qg(this);return a}function Si(a,b){if(-1===this.C)return Xe.call(this),a;fe(this,this.ja(this.C+this.W));this.A-=this.B.Ye;return b} -function Ti(a,b){this.A-=-1===this.F?-1===this.C?this.B.tk:this.B.sk:this.B.qk;return b}function Ui(a,b){switch(this.ga>>3&7){case 4:this.xa=this.D;break;case 5:this.xa=this.I;break;case 6:this.xa=this.L;break;case 7:this.xa=this.G}return b}function Vi(a,b){return b} +function Mi(a,b){if(-1===this.C)return Xe.call(this),a;me(this,this.ja(this.C+this.W));this.A-=this.B.Xe;return b}function Ni(){this.A-=this.B.kk;return this.C}function Oi(a,b){if(-1===this.C)return Xe.call(this),a;ne(this,this.ja(this.C+this.W));this.A-=this.B.Xe;return b}function Pi(a,b){if(-1===this.C)return Xe.call(this),a;a=this.ja(this.C+this.W);this.Ga.load(a);this.A-=this.B.Xe;return b} +function Qi(a,b){if(-1===this.C)return Xe.call(this),a;a=this.ja(this.C+this.W);this.Ha.load(a);this.A-=this.B.Xe;return b}function Ri(a,b){this.A-=14+(-1===this.C?0:2);if(b&65528&&-1!==this.xb.load(b)&&(7168==(this.xb.lb&7168)||this.xb.qc>=this.Ma)&&this.xb.qc>=(b&3))return sg(this),this.xb.Ka;qg(this);return a}function Si(a,b){if(-1===this.C)return Xe.call(this),a;fe(this,this.ja(this.C+this.W));this.A-=this.B.Xe;return b} +function Ti(a,b){this.A-=-1===this.F?-1===this.C?this.B.sk:this.B.rk:this.B.pk;return b}function Ui(a,b){switch(this.ga>>3&7){case 4:this.xa=this.D;break;case 5:this.xa=this.I;break;case 6:this.xa=this.L;break;case 7:this.xa=this.G}return b}function Vi(a,b){return b} function fj(a,b){a=this.ga>>3&7;switch(a){case 0:this.xa=this.D;break;case 2:this.xa=this.L;break;case 3:this.xa=this.G;break;default:if(80286==this.ca||80386==this.ca&&4!=a&&5!=a)y.call(this,6);else switch(a){case 1:this.xa=this.I;break;case 4:this.xa=z(this);break;case 5:this.xa=this.M;break;case 6:this.xa=this.K;break;case 7:this.xa=this.J}}return Ti.call(this,0,b)} function gj(a,b){switch(this.ga>>3&7){case 0:b=this.oa.U;break;case 1:b=this.Z.U;break;case 2:b=this.Y.U;break;case 3:b=this.Ca.U;break;case 4:if(80386<=this.ca){b=this.Ga.U;break}y.call(this,6);b=a;break;case 5:if(80386<=this.ca){b=this.Ha.U;break}default:y.call(this,6),b=a}-1!==this.F&&je(this,2);return Ti.call(this,0,b)} function Ki(a,b){if(a&-65536||b&-65536){var c=b&65535;b>>>=16;var d=a&65535;a>>>=16;var e=c*d,d=(e>>>16)+b*d,f=d>>>16,d=(d&65535)+c*a;this.Ba=d<<16|e&65535;this.Ya=f+((d>>>16)+b*a)|0}else this.Ba=a*b|0,this.Ya=0}function hj(a,b){this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return ig(this,a|b,128)}function ij(a,b){this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return ig(this,a|b,this.Fb)&this.R} function jj(a,b){var c=a-b-og(this)|0;bg(this,a,b,c,191,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return c&255}function kj(a,b){var c=a-b-og(this)|0;bg(this,a,b,c,this.Fb|63,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return c&this.R}function lj(){return hg(this)?1:0}function mj(){return cg(this)?1:0}function nj(){return cg(this)?0:1}function oj(){return fg(this)?1:0}function pj(){return fg(this)?0:1}function qj(){return cg(this)||fg(this)?1:0} function rj(){return cg(this)||fg(this)?0:1}function sj(){return gg(this)?1:0}function tj(){return gg(this)?0:1}function uj(){return dg(this)?1:0}function vj(){return dg(this)?0:1}function wj(){return!gg(this)!=!hg(this)?1:0}function xj(){return!gg(this)!=!hg(this)?0:1}function yj(){return fg(this)||!gg(this)!=!hg(this)?1:0}function zj(){return fg(this)||!gg(this)!=!hg(this)?0:1}function Aj(a,b){return Bj.call(this,a,b,this.ra())}function Cj(a,b){return Dj.call(this,a,b,this.ra())} function Ej(a,b){return Bj.call(this,a,b,this.I&31)}function Fj(a,b){return Dj.call(this,a,b,this.I&31)}function Gj(a,b){return Hj.call(this,a,b,this.ra())}function Ij(a,b){return Jj.call(this,a,b,this.ra())}function Kj(a,b){return Hj.call(this,a,b,this.I&31)}function Lj(a,b){return Jj.call(this,a,b,this.I&31)}function Mj(a,b){var c=a-b|0;bg(this,a,b,c,191,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return c&255} -function Nj(a,b){var c=a-b|0;bg(this,a,b,c,this.Fb|63,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return c&this.R}function Oj(a,b){ig(this,a&b,128);this.A-=-1===this.F?-1===this.C?this.B.ci:this.B.Hf:this.B.Hf;this.N|=2;return a}function Pj(a,b){ig(this,a&b,this.Fb);this.A-=-1===this.F?-1===this.C?this.B.ci:this.B.Hf:this.B.Hf;this.N|=2;return a}function Qj(a,b){var c=this.D&this.R,d=(1<<(this.I&31))-1;return a&~(d<>(this.D&this.R)&(1<<(this.I&31))-1&this.R}function Sj(a,b){if(-1===this.C){switch(this.ga&7){case 0:this.D=this.D&-256|a;break;case 1:this.I=this.I&-256|a;break;case 2:this.L=this.L&-256|a;break;case 3:this.G=this.G&-256|a;break;case 4:this.D=this.D&-65281|a<<8;break;case 5:this.I=this.I&-65281|a<<8;break;case 6:this.L=this.L&-65281|a<<8;break;case 7:this.G=this.G&-65281|a<<8}this.A-=this.B.ei}else this.F=this.C,Dg(this,a),this.A-=this.B.di;return b} -function Tj(a,b){if(-1===this.C){switch(this.ga&7){case 0:this.D=this.D&~this.R|a;break;case 1:this.I=this.I&~this.R|a;break;case 2:this.L=this.L&~this.R|a;break;case 3:this.G=this.G&~this.R|a;break;case 4:ge(this,z(this)&~this.R|a);break;case 5:this.M=this.G&~this.R|a;break;case 6:this.K=this.K&~this.R|a;break;case 7:this.J=this.J&~this.R|a}this.A-=this.B.ei}else this.F=this.C,this.N&2||this.yb(this.eb.cc(this.wb,this.W),a),this.A-=this.B.di;return b} +function Nj(a,b){var c=a-b|0;bg(this,a,b,c,this.Fb|63,!0);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return c&this.R}function Oj(a,b){ig(this,a&b,128);this.A-=-1===this.F?-1===this.C?this.B.bi:this.B.Gf:this.B.Gf;this.N|=2;return a}function Pj(a,b){ig(this,a&b,this.Fb);this.A-=-1===this.F?-1===this.C?this.B.bi:this.B.Gf:this.B.Gf;this.N|=2;return a}function Qj(a,b){var c=this.D&this.R,d=(1<<(this.I&31))-1;return a&~(d<>(this.D&this.R)&(1<<(this.I&31))-1&this.R}function Sj(a,b){if(-1===this.C){switch(this.ga&7){case 0:this.D=this.D&-256|a;break;case 1:this.I=this.I&-256|a;break;case 2:this.L=this.L&-256|a;break;case 3:this.G=this.G&-256|a;break;case 4:this.D=this.D&-65281|a<<8;break;case 5:this.I=this.I&-65281|a<<8;break;case 6:this.L=this.L&-65281|a<<8;break;case 7:this.G=this.G&-65281|a<<8}this.A-=this.B.di}else this.F=this.C,Dg(this,a),this.A-=this.B.ci;return b} +function Tj(a,b){if(-1===this.C){switch(this.ga&7){case 0:this.D=this.D&~this.R|a;break;case 1:this.I=this.I&~this.R|a;break;case 2:this.L=this.L&~this.R|a;break;case 3:this.G=this.G&~this.R|a;break;case 4:ge(this,z(this)&~this.R|a);break;case 5:this.M=this.G&~this.R|a;break;case 6:this.K=this.K&~this.R|a;break;case 7:this.J=this.J&~this.R|a}this.A-=this.B.di}else this.F=this.C,this.N&2||this.yb(this.eb.cc(this.wb,this.W),a),this.A-=this.B.ci;return b} function Uj(a,b){a^=b;ig(this,a,128);this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return a}function Vj(a,b){this.A-=-1===this.F?-1===this.C?this.B.mc:this.B.Ib:this.B.Ac;return ig(this,a^b,this.Fb)&this.R}function Wj(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Xj(a){var b=a-1|0;bg(this,a,1,b,this.Fb|62,!0);this.A-=2;return a&~this.R|b&this.R} -function Yj(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1,f=this.cn;f[0]=c>>>0;f[1]=0;c=this.dn;c[0]=a>>>0;for(c[1]=b>>>0;0>>=0,a[1]++),e+=e;do 0<=Wj(c,f)&&(a=c,b=f,a[0]-=b[0],a[1]-=b[1],0>a[0]&&(a[0]>>>=0,a[1]--),d+=e),a=f,a[0]>>>=1,a[1]&1&&(a[0]=(a[0]|2147483648)>>>0),a[1]>>>=1,e/=2;while(1<=e);this.Ba=d;this.Ya=c[0];return!0}function Zj(a){var b=a+1|0;bg(this,a,1,b,this.Fb|62);this.A-=2;return a&~this.R|b&this.R} +function Yj(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1,f=this.bn;f[0]=c>>>0;f[1]=0;c=this.cn;c[0]=a>>>0;for(c[1]=b>>>0;0>>=0,a[1]++),e+=e;do 0<=Wj(c,f)&&(a=c,b=f,a[0]-=b[0],a[1]-=b[1],0>a[0]&&(a[0]>>>=0,a[1]--),d+=e),a=f,a[0]>>>=1,a[1]&1&&(a[0]=(a[0]|2147483648)>>>0),a[1]>>>=1,e/=2;while(1<=e);this.Ba=d;this.Ya=c[0];return!0}function Zj(a){var b=a+1|0;bg(this,a,1,b,this.Fb|62);this.A-=2;return a&~this.R|b&this.R} function ak(a){this.qa=a;ie(this);this.qa&-2147483648?lf(this):of(this)}function te(a){this.Wc=a;sc(this)}function bk(a){this.N|=1;this.tc.call(this,a);this.A-=-1===this.C?4:5}function Bj(a,b,c){if(c){16>>16-c)&65535;ig(this,a,32768,d&32768)}return a}function Dj(a,b,c){if(c){var d=a<>>32-c;ig(this,a,-2147483648,d&-2147483648)}return a} -function Hj(a,b,c){if(c){16>>c-1;a=(d>>>1|b<<16-c)&65535;ig(this,a,32768,d&1)}return a}function Jj(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;ig(this,a,-2147483648,d&1)}return a}function ck(){this.A-=-1===this.C?2:this.B.Gk;return 1}function dk(){var a=this.I&255;this.A-=(-1===this.C?this.B.Wh:this.B.Vh)+(a<>>c-1;a=(d>>>1|b<<16-c)&65535;ig(this,a,32768,d&1)}return a}function Jj(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;ig(this,a,-2147483648,d&1)}return a}function ck(){this.A-=-1===this.C?2:this.B.Fk;return 1}function dk(){var a=this.I&255;this.A-=(-1===this.C?this.B.Vh:this.B.Uh)+(a<this.Uc?(-1!=this.Ad&&(this.Ad!==this.Z.U&&(this.Z.Ab=this.Ad&3,Yf(this,this.Ad)),this.Ad=-1),this.Bd!==this.da&&Zf(this,this.Bd),-1!=this.Vc&&(this.Vc!==this.Y.U&&fe(this,this.Vc),this.Vc=-1),-1!==this.ta&&(this.ta!==this.Aa&&ge(this,this.Hc&~this.Y.wa|this.ta-this.Y.ua),this.ta=-1)):8!=this.Uc?(b=0,a=8):(b=0,a=-1,jf(this),e=d=!1)):Zf(this,this.Bd);var f=a,g=b,h=32,k=xg(this,this.da);204!=k||this.cd||(d=!1);this.O&131072&&(6== f&&99==k||13==f&&205==k)&&(d=!1);!1===d&&(h|=1);983040<=this.da&&1048575>=this.da&&(d=!1);t(this,h|-2147483648)&&(d=!0);if(t(this,h)||d){var m=this.ea.vb,f="Fault "+r(f)+(null!=g?" ("+sa(g)+")":"")+" on opcode "+r(k);d&&m&&(f+=" (blocked)");this.ba?(Lb(this,f,d||h,!0),d&&(d=m,this.ba.Jb())):(this.Fa(f),this.Jb())}if(d&&e)throw-1;if(e)throw this.Uc=a,ik.call(this,a,b,c),this.Bd=this.da,this.N=1==a?this.N|8192:this.N|4096,a;} function nf(a,b,c){this.Cd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.Ma&&(a|=4);y.call(this,14,a)}function kk(a){var b=a.lb&7680;a.U&65528&&(6144==b||7168==b||7168>b&&a.qc> 3&7].call(this,c,b.call(this));switch(d){case 192:this.D=a;break;case 193:this.I=a;break;case 194:this.L=a;break;case 195:this.G=a;break;case 196:ge(this,a);break;case 197:this.M=a;break;case 198:this.K=a;break;case 199:this.J=a;break;default:Fg(this,a)}} function mk(a){var b=this.ra(),c=b>>6,d,e;switch(b>>3&7){case 0:d=this.D;break;case 1:d=this.I;break;case 2:d=this.L;break;case 3:d=this.G;break;case 4:d=0;break;case 5:d=this.M;break;case 6:d=this.K;break;case 7:d=this.J}switch(b&7){case 0:e=this.D;break;case 1:e=this.I;break;case 2:e=this.L;break;case 3:e=this.G;break;case 4:e=z(this);this.Da=this.Rb;break;case 5:a?(e=this.M,this.Da=this.Rb):e=K(this);break;case 6:e=this.K;break;case 7:e=this.J}return(d<>8&255;9<(c&15)||eg(this)?(c+=6,80286<=this.ca&&255>8&255;9<(c&15)||eg(this)?(c=c-6&15,d=d-1&255,a=b=1):a=b=0;this.D=this.D&-65536|d<<8|c;a?jg(this):kg(this);b?rg(this):pg(this);this.A-=this.B.re},function(){this.D=Zj.call(this,this.D)},function(){this.I=Zj.call(this,this.I)},function(){this.L=Zj.call(this,this.L)},function(){this.G=Zj.call(this,this.G)},function(){ge(this, +var ve=[function(){this.tc.call(this,ki)},function(){this.za.call(this,li)},function(){this.kc.call(this,ki)},function(){this.ma.call(this,li)},function(){this.D=this.D&-256|ki.call(this,this.D&255,this.ra());this.A--},function(){this.D=this.D&~this.R|li.call(this,this.D&this.R,this.Ea());this.A--},function(){le(this,this.oa.U,this.W,2);this.A-=this.B.re},function(){this.ta=this.Aa;ne(this,ee(this));this.A-=this.B.nc;this.ta=-1},function(){this.tc.call(this,hj)},function(){this.za.call(this,ij)}, +function(){this.kc.call(this,hj)},function(){this.ma.call(this,ij)},function(){this.D=this.D&-256|hj.call(this,this.D&255,this.ra());this.A--},function(){this.D=this.D&~this.R|ij.call(this,this.D&this.R,this.Ea());this.A--},function(){le(this,this.Z.U,this.W,2);this.A-=this.B.re},function(){Yf(this,ee(this));this.A-=this.B.nc},function(){this.tc.call(this,ii)},function(){this.za.call(this,ji)},function(){this.kc.call(this,ii)},function(){this.ma.call(this,ji)},function(){this.D=this.D&-256|ii.call(this, +this.D&255,this.ra());this.A--},function(){this.D=this.D&~this.R|ji.call(this,this.D&this.R,this.Ea());this.A--},function(){le(this,this.Y.U,this.W,2);this.A-=this.B.re},function(){this.ta=this.Aa;fe(this,ee(this));this.A-=this.B.nc;this.ta=-1},function(){this.tc.call(this,jj)},function(){this.za.call(this,kj)},function(){this.kc.call(this,jj)},function(){this.ma.call(this,kj)},function(){this.D=this.D&-256|jj.call(this,this.D&255,this.ra());this.A--},function(){this.D=this.D&~this.R|kj.call(this, +this.D&this.R,this.Ea());this.A--},function(){le(this,this.Ca.U,this.W,2);this.A-=this.B.re},function(){this.ta=this.Aa;me(this,ee(this));this.A-=this.B.nc;this.ta=-1},function(){this.tc.call(this,mi)},function(){this.za.call(this,ni)},function(){this.kc.call(this,mi)},function(){this.ma.call(this,ni)},function(){this.D=this.D&-256|mi.call(this,this.D&255,this.ra());this.A--},function(){this.D=this.D&~this.R|ni.call(this,this.D&this.R,this.Ea());this.A--},function(){this.N|=20;this.Da=this.Rb=this.oa; +this.A-=this.B.bd},function(){var a=this.D&255,b=eg(this),c=cg(this);9<(a&15)||b?(a+=6,b=16):b=0;159>8&255;9<(c&15)||eg(this)?(c+=6,80286<=this.ca&&255>8&255;9<(c&15)||eg(this)?(c=c-6&15,d=d-1&255,a=b=1):a=b=0;this.D=this.D&-65536|d<<8|c;a?jg(this):kg(this);b?rg(this):pg(this);this.A-=this.B.qe},function(){this.D=Zj.call(this,this.D)},function(){this.I=Zj.call(this,this.I)},function(){this.L=Zj.call(this,this.L)},function(){this.G=Zj.call(this,this.G)},function(){ge(this, Zj.call(this,z(this)))},function(){this.M=Zj.call(this,this.M)},function(){this.K=Zj.call(this,this.K)},function(){this.J=Zj.call(this,this.J)},function(){this.D=Xj.call(this,this.D)},function(){this.I=Xj.call(this,this.I)},function(){this.L=Xj.call(this,this.L)},function(){this.G=Xj.call(this,this.G)},function(){ge(this,Xj.call(this,z(this)))},function(){this.M=Xj.call(this,this.M)},function(){this.K=Xj.call(this,this.K)},function(){this.J=Xj.call(this,this.J)},function(){oe(this,this.D&this.R); this.A-=this.B.Ic},function(){oe(this,this.I&this.R);this.A-=this.B.Ic},function(){oe(this,this.L&this.R);this.A-=this.B.Ic},function(){oe(this,this.G&this.R);this.A-=this.B.Ic},function(){oe(this,z(this)-2&65535);this.A-=this.B.Ic},function(){oe(this,this.M&this.R);this.A-=this.B.Ic},function(){oe(this,this.K&this.R);this.A-=this.B.Ic},function(){oe(this,this.J&this.R);this.A-=this.B.Ic},function(){this.D=this.D&~this.R|ee(this);this.A-=this.B.nc},function(){this.I=this.I&~this.R|ee(this);this.A-= this.B.nc},function(){this.L=this.L&~this.R|ee(this);this.A-=this.B.nc},function(){this.G=this.G&~this.R|ee(this);this.A-=this.B.nc},function(){ge(this,z(this)&~this.R|ee(this));this.A-=this.B.nc},function(){this.M=this.M&~this.R|ee(this);this.A-=this.B.nc},function(){this.K=this.K&~this.R|ee(this);this.A-=this.B.nc},function(){this.J=this.J&~this.R|ee(this);this.A-=this.B.nc},nk,ok,pk,qk,rk,sk,tk,uk,vk,wk,xk,yk,zk,Ak,Bk,Ck,nk,ok,pk,qk,rk,sk,tk,uk,vk,wk,xk,yk,zk,Ak,Bk,Ck,Dk,function(){this.ib.call(this, -Sk,this.Ea);this.A-=-1===this.F?1:this.B.zg},Dk,function(){this.ib.call(this,Sk,this.S);this.A-=-1===this.F?1:this.B.zg},function(){this.tc.call(this,Oj)},function(){this.za.call(this,Pj)},function(){this.kc.call(this,Sj)},function(){this.ma.call(this,Tj)},Fk,Gk,Hk,Ik,function(){this.N|=1;this.za.call(this,gj)},function(){this.N|=1;this.Da=this.Rb=this.Rg;this.ma.call(this,Ni)},function(){var a;this.ma.call(this,fj);switch(this.ga>>3&7){case 0:a=this.D;this.D=this.xa;ne(this,a);break;case 1:a=this.I; +Sk,this.Ea);this.A-=-1===this.F?1:this.B.yg},Dk,function(){this.ib.call(this,Sk,this.S);this.A-=-1===this.F?1:this.B.yg},function(){this.tc.call(this,Oj)},function(){this.za.call(this,Pj)},function(){this.kc.call(this,Sj)},function(){this.ma.call(this,Tj)},Fk,Gk,Hk,Ik,function(){this.N|=1;this.za.call(this,gj)},function(){this.N|=1;this.Da=this.Rb=this.Qg;this.ma.call(this,Ni)},function(){var a;this.ma.call(this,fj);switch(this.ga>>3&7){case 0:a=this.D;this.D=this.xa;ne(this,a);break;case 1:a=this.I; this.I=this.xa;Yf(this,a);break;case 2:a=this.L;this.L=this.xa;fe(this,a);break;case 3:a=this.G;this.G=this.xa;me(this,a);break;case 4:a=z(this);ge(this,this.xa);80386<=this.ca?this.Ga.load(a):ne(this,a);break;case 5:a=this.M;this.M=this.xa;80386<=this.ca?this.Ha.load(a):Yf(this,a);break;case 6:a=this.K;this.K=this.xa;fe(this,a);break;case 7:a=this.J,this.J=this.xa,me(this,a)}},function(){this.N|=1;this.ta=this.Aa;this.xa=ee(this);this.ib.call(this,Tk,gk);this.ta=-1},function(){this.A-=3},function(){var a= this.D;this.D=this.D&~this.R|this.I&this.R;this.I=this.I&~this.R|a&this.R;this.A-=3},function(){var a=this.D;this.D=this.D&~this.R|this.L&this.R;this.L=this.L&~this.R|a&this.R;this.A-=3},function(){var a=this.D;this.D=this.D&~this.R|this.G&this.R;this.G=this.G&~this.R|a&this.R;this.A-=3},function(){var a=this.D,b=z(this);this.D=this.D&~this.R|b&this.R;ge(this,b&~this.R|a&this.R);this.A-=3},function(){var a=this.D;this.D=this.D&~this.R|this.M&this.R;this.M=this.M&~this.R|a&this.R;this.A-=3},function(){var a= -this.D;this.D=this.D&~this.R|this.K&this.R;this.K=this.K&~this.R|a&this.R;this.A-=3},function(){var a=this.D;this.D=this.D&~this.R|this.J&this.R;this.J=this.J&~this.R|a&this.R;this.A-=3},function(){this.D=2==this.W?this.D&-65536|this.D<<24>>24&65535:this.D<<16>>16;this.A-=2},function(){this.L=2==this.W?this.L&-65536|(this.D&32768?65535:0):this.D&-2147483648?-1:0;this.A-=this.B.Lj},function(){hk.call(this,this.Ea(),Gg(this));this.A-=this.B.Oj},function(){this.A-=3},function(){var a=qe(this);a&131072&& +this.D;this.D=this.D&~this.R|this.K&this.R;this.K=this.K&~this.R|a&this.R;this.A-=3},function(){var a=this.D;this.D=this.D&~this.R|this.J&this.R;this.J=this.J&~this.R|a&this.R;this.A-=3},function(){this.D=2==this.W?this.D&-65536|this.D<<24>>24&65535:this.D<<16>>16;this.A-=2},function(){this.L=2==this.W?this.L&-65536|(this.D&32768?65535:0):this.D&-2147483648?-1:0;this.A-=this.B.Kj},function(){hk.call(this,this.Ea(),Gg(this));this.A-=this.B.Nj},function(){this.A-=3},function(){var a=qe(this);a&131072&& 3>this.lc?y.call(this,13,0):(oe(this,a&-196609),this.A-=this.B.Ic)},function(){if(this.O&131072&&3>this.lc)y.call(this,13,0);else{var a=ee(this),a=a&65535|this.O&-65536;re(this,a);this.A-=this.B.nc}},function(){var a=this.D>>8&255;a&1?jg(this):kg(this);a&4?(this.resultType&=-3,this.O|=4):(this.resultType&=-3,this.O&=-5);a&16?rg(this):pg(this);a&64?sg(this):qg(this);a&128?(this.resultType&=-17,this.O|=128):(this.resultType&=-17,this.O&=-129);this.A-=this.B.Vb},function(){this.D=this.D&-65281|(qe(this)& -213)<<8;this.A-=this.B.Vb},function(){var a=this.D&-256,b;b=K(this);b=this.Ia(this.Da.bc(b,1));this.D=a|b;this.A-=this.B.Lh},function(){this.D=this.D&~this.R|ke(this,this.Da,K(this));this.A-=this.B.Lh},function(){var a=K(this),b=this.D;this.fc(this.Da.cc(a,1),b);this.A-=this.B.Mh},function(){var a=K(this),b=this.D;this.yb(this.Da.cc(a,this.W),b);this.A-=this.B.Mh},function(){var a=1,b=0,c=this.wa,d=this.B.Nh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Ph,this.ha&256||(this.A-=this.B.Oh));if(a--){var e= -this.Ia(this.Da.bc(this.K&c,1));this.fc(this.oa.cc(this.J&c,1),e);e=this.O&1024?-1:1;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.A-=d;this.I=this.I&~c|this.I-b&c;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Nh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Ph,this.ha&256||(this.A-=this.B.Oh));if(a--){var e=ke(this,this.Da,this.K&c);this.yb(this.oa.cc(this.J&c,this.W),e);e=this.O&1024?-this.W:this.W;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.A-=d; -this.I=this.I&~c|this.I-b&c;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.yh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Ah,this.ha&256||(this.A-=this.B.zh));if(a--){var e=yg(this,this.Da,this.K),f=yg(this,this.oa,this.J);this.F=this.C;Ai.call(this,e,f);e=this.O&1024?-1:1;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.I=this.I&~c|this.I-b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.yh;this.ha&192&& -(a=this.I&c,b=1,d=this.B.Ah,this.ha&256||(this.A-=this.B.zh));if(a--){var e=Ag(this,this.Da,this.K&c),f=Ag(this,this.oa,this.J&c);this.F=this.C;Bi.call(this,e,f);e=this.O&1024?-this.W:this.W;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.I=this.I&~c|this.I-b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){ig(this,this.D&this.ra(),128);this.A-=this.B.re},function(){ig(this,this.D&this.Ea(),this.Fb);this.A-=this.B.re},function(){var a=1,b=0,c=this.wa, -d=this.B.Yh;this.ha&192&&(a=this.I&c,b=1,d=this.B.$h,this.ha&256||(this.A-=this.B.Zh));if(a--){var e=this.D;this.fc(this.oa.cc(this.J&c,1),e);this.I=this.I&~c|this.I-b&c;80546<=this.xe&&80564>=this.xe&&!(this.ha&2048)!=(103!=this.Ia(this.da))&&(c^=-65536);this.J=this.J&~c|this.J+(this.O&1024?-1:1)&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Yh;this.ha&192&&(a=this.I&c,b=1,d=this.B.$h,this.ha&256||(this.A-=this.B.Zh));if(a--){var e=this.D;this.yb(this.oa.cc(this.J& -c,this.W),e);this.J=this.J&~c|this.J+(this.O&1024?-this.W:this.W)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Fh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Hh,this.ha&256||(this.A-=this.B.Gh));if(a--){var e=this.Ia(this.Da.bc(this.K&c,1));this.D=this.D&-256|e;this.K=this.K&~c|this.K+(this.O&1024?-1:1)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Fh;this.ha&192&&(a=this.I&c, -b=1,d=this.B.Hh,this.ha&256||(this.A-=this.B.Gh));if(a--){var e=ke(this,this.Da,this.K&c);this.D=this.D&~this.R|e;this.K=this.K&~c|this.K+(this.O&1024?-this.W:this.W)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Sh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Uh,this.ha&256||(this.A-=this.B.Th));if(a--){var e=this.D&255,f=yg(this,this.oa,this.J);this.F=this.C;Ai.call(this,e,f);this.J=this.J&~c|this.J+(this.O&1024?-1:1)&c;this.I=this.I&~c|this.I- -b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Sh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Uh,this.ha&256||(this.A-=this.B.Th));if(a--){var e=this.D&this.R,f=Ag(this,this.oa,this.J&c);this.F=this.C;Bi.call(this,e,f);this.J=this.J&~c|this.J+(this.O&1024?-this.W:this.W)&c;this.I=this.I&~c|this.I-b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){this.D=this.D&-256|this.ra();this.A-=this.B.Vb},function(){this.I= +213)<<8;this.A-=this.B.Vb},function(){var a=this.D&-256,b;b=K(this);b=this.Ia(this.Da.bc(b,1));this.D=a|b;this.A-=this.B.Kh},function(){this.D=this.D&~this.R|ke(this,this.Da,K(this));this.A-=this.B.Kh},function(){var a=K(this),b=this.D;this.fc(this.Da.cc(a,1),b);this.A-=this.B.Lh},function(){var a=K(this),b=this.D;this.yb(this.Da.cc(a,this.W),b);this.A-=this.B.Lh},function(){var a=1,b=0,c=this.wa,d=this.B.Mh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Oh,this.ha&256||(this.A-=this.B.Nh));if(a--){var e= +this.Ia(this.Da.bc(this.K&c,1));this.fc(this.oa.cc(this.J&c,1),e);e=this.O&1024?-1:1;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.A-=d;this.I=this.I&~c|this.I-b&c;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Mh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Oh,this.ha&256||(this.A-=this.B.Nh));if(a--){var e=ke(this,this.Da,this.K&c);this.yb(this.oa.cc(this.J&c,this.W),e);e=this.O&1024?-this.W:this.W;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.A-=d; +this.I=this.I&~c|this.I-b&c;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.xh;this.ha&192&&(a=this.I&c,b=1,d=this.B.zh,this.ha&256||(this.A-=this.B.yh));if(a--){var e=yg(this,this.Da,this.K),f=yg(this,this.oa,this.J);this.F=this.C;Ai.call(this,e,f);e=this.O&1024?-1:1;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.I=this.I&~c|this.I-b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.xh;this.ha&192&& +(a=this.I&c,b=1,d=this.B.zh,this.ha&256||(this.A-=this.B.yh));if(a--){var e=Ag(this,this.Da,this.K&c),f=Ag(this,this.oa,this.J&c);this.F=this.C;Bi.call(this,e,f);e=this.O&1024?-this.W:this.W;this.K=this.K&~c|this.K+e&c;this.J=this.J&~c|this.J+e&c;this.I=this.I&~c|this.I-b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){ig(this,this.D&this.ra(),128);this.A-=this.B.qe},function(){ig(this,this.D&this.Ea(),this.Fb);this.A-=this.B.qe},function(){var a=1,b=0,c=this.wa, +d=this.B.Xh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Zh,this.ha&256||(this.A-=this.B.Yh));if(a--){var e=this.D;this.fc(this.oa.cc(this.J&c,1),e);this.I=this.I&~c|this.I-b&c;80546<=this.we&&80564>=this.we&&!(this.ha&2048)!=(103!=this.Ia(this.da))&&(c^=-65536);this.J=this.J&~c|this.J+(this.O&1024?-1:1)&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Xh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Zh,this.ha&256||(this.A-=this.B.Yh));if(a--){var e=this.D;this.yb(this.oa.cc(this.J& +c,this.W),e);this.J=this.J&~c|this.J+(this.O&1024?-this.W:this.W)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Eh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Gh,this.ha&256||(this.A-=this.B.Fh));if(a--){var e=this.Ia(this.Da.bc(this.K&c,1));this.D=this.D&-256|e;this.K=this.K&~c|this.K+(this.O&1024?-1:1)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Eh;this.ha&192&&(a=this.I&c, +b=1,d=this.B.Gh,this.ha&256||(this.A-=this.B.Fh));if(a--){var e=ke(this,this.Da,this.K&c);this.D=this.D&~this.R|e;this.K=this.K&~c|this.K+(this.O&1024?-this.W:this.W)&c;this.I=this.I&~c|this.I-b&c;this.A-=d;a&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Rh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Th,this.ha&256||(this.A-=this.B.Sh));if(a--){var e=this.D&255,f=yg(this,this.oa,this.J);this.F=this.C;Ai.call(this,e,f);this.J=this.J&~c|this.J+(this.O&1024?-1:1)&c;this.I=this.I&~c|this.I- +b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){var a=1,b=0,c=this.wa,d=this.B.Rh;this.ha&192&&(a=this.I&c,b=1,d=this.B.Th,this.ha&256||(this.A-=this.B.Sh));if(a--){var e=this.D&this.R,f=Ag(this,this.oa,this.J&c);this.F=this.C;Bi.call(this,e,f);this.J=this.J&~c|this.J+(this.O&1024?-this.W:this.W)&c;this.I=this.I&~c|this.I-b&c;this.A-=d-this.B.Ib;a&&fg(this)==(this.ha&64)&&(ag(this),this.N|=256)}},function(){this.D=this.D&-256|this.ra();this.A-=this.B.Vb},function(){this.I= this.I&-256|this.ra();this.A-=this.B.Vb},function(){this.L=this.L&-256|this.ra();this.A-=this.B.Vb},function(){this.G=this.G&-256|this.ra();this.A-=this.B.Vb},function(){this.D=this.D&-65281|this.ra()<<8;this.A-=this.B.Vb},function(){this.I=this.I&-65281|this.ra()<<8;this.A-=this.B.Vb},function(){this.L=this.L&-65281|this.ra()<<8;this.A-=this.B.Vb},function(){this.G=this.G&-65281|this.ra()<<8;this.A-=this.B.Vb},function(){this.D=this.D&~this.R|this.Ea();this.A-=this.B.Vb},function(){this.I=this.I& ~this.R|this.Ea();this.A-=this.B.Vb},function(){this.L=this.L&~this.R|this.Ea();this.A-=this.B.Vb},function(){this.G=this.G&~this.R|this.Ea();this.A-=this.B.Vb},function(){ge(this,z(this)&~this.R|this.Ea());this.A-=this.B.Vb},function(){this.M=this.M&~this.R|this.Ea();this.A-=this.B.Vb},function(){this.K=this.K&~this.R|this.Ea();this.A-=this.B.Vb},function(){this.J=this.J&~this.R|this.Ea();this.A-=this.B.Vb},Mk,Nk,Mk,Nk,function(){this.ma.call(this,Oi)},function(){this.ma.call(this,Mi)},function(){this.N|= -1;this.kd.call(this,Uk,this.ra)},function(){this.N|=1;this.ib.call(this,Uk,this.Ea)},Ok,Pk,Ok,Pk,function(){if(this.O&131072&&3>this.lc)y.call(this,13,0);else{var a=this.B.ek;this.Uc=-1;ik.call(this,3,null,a)}},function(){var a=this.ra();if(this.O&131072&&3>this.lc)y.call(this,13,0);else{var b;a:{b=this.Zf[a];if(void 0!==b)for(var c=0;cthis.lc)y.call(this,13,0);else{var a=this.B.fk;this.Uc=-1;ik.call(this,4,null,a)}else this.A-=this.B.gk},function(){if(this.O&131072&&3>this.lc)y.call(this,13,0);else{this.Vc=this.Y.U;this.ta=this.Aa;this.A-=this.B.ck;if(this.qa&1&&this.O&16384){var a=this.ja(this.la.ua+0);he(this.Z,a,!1)}else{var a=this.Ma,b=ee(this),c=ee(this),d=ee(this);if(this.O&131072)d=d&131071|this.O&-131072;else if(d&131072){var e=ee(this),f=ee(this),g=ee(this),h=ee(this),k=ee(this),m=ee(this);ie(this,!0,!0);fe(this, -f);ge(this,e);ne(this,g);me(this,h);this.Ga.load(k);this.Ha.load(m)}null!=se(this,b,c,!1)&&(re(this,d,a),this.bg&&Tf(this,this.da))}this.Vc=this.ta=-1}},function(){this.kd.call(this,Jk,ck)},function(){this.ib.call(this,2==this.W?Kk:Lk,ck)},function(){this.kd.call(this,Jk,dk)},function(){this.ib.call(this,2==this.W?Kk:Lk,dk)},function(){var a=this.ra();if(a){var b=this.D&255;this.D=this.D&-65536|b/a<<8|b%a;ig(this,this.D,128);this.A-=this.B.Ij}else lk.call(this)},function(){var a=this.D&255,b=(this.D>> -8&255)*this.ra()|0,c=a+b|0;this.D=this.D&-65536|c&255;bg(this,a,b,c,191);this.A-=this.B.Hj},function(){this.D=this.D&-256|(cg(this)?255:0);this.A-=2},function(){this.D=this.D&-256|yg(this,this.Da,this.G+(this.D&255));this.A-=this.B.Hk},function(){Qk.call(this,216)},function(){Qk.call(this,217)},function(){Qk.call(this,218)},function(){Qk.call(this,219)},function(){Qk.call(this,220)},function(){Qk.call(this,221)},function(){Qk.call(this,222)},function(){Qk.call(this,223)},function(){var a=this.S(), -b=this.I-1&this.wa;this.I=this.I&~this.wa|b;b&&!fg(this)?(C(this,A(this)+a),this.A-=this.B.nk):this.A-=this.B.Ih},function(){var a=this.S(),b=this.I-1&this.wa;this.I=this.I&~this.wa|b;b&&fg(this)?(C(this,A(this)+a),this.A-=this.B.Jh):this.A-=this.B.Kh},function(){var a=this.S(),b=this.I-1&this.wa;this.I=this.I&~this.wa|b;b?(C(this,A(this)+a),this.A-=this.B.mk):this.A-=this.B.Ih},function(){var a=this.S();this.I&this.wa?this.A-=this.B.Kh:(C(this,A(this)+a),this.A-=this.B.Jh)},function(){var a=this.ra(); -ug(this,a,1,!0)&&(this.D=this.D&-256|Oc(this.ka,a,1,this.da-2)&255,this.A-=this.B.Dh)},function(){var a=this.ra();ug(this,a,this.W,!0)&&(this.D=this.D&~this.R|Oc(this.ka,a,this.W,this.da-2)&this.R,this.A-=this.B.Dh)},function(){var a=this.ra();ug(this,a,1,!1)&&(Sc(this.ka,a,1,this.D&255,this.da-2),this.A-=this.B.Rh)},function(){var a=this.ra();ug(this,a,this.W,!1)&&(Sc(this.ka,a,this.W,this.D&this.R,this.da-2),this.A-=this.B.Rh)},function(){var a=this.Ea(),b=A(this),a=b+a;oe(this,b);C(this,a);this.A-= -this.B.Mj},function(){var a=this.Ea();C(this,A(this)+a);this.A-=this.B.Eh},function(){se(this,this.Ea(),Gg(this));this.A-=this.B.ik},function(){var a=this.S();C(this,A(this)+a);this.A-=this.B.Eh},function(){var a=this.L&65535;ug(this,a,1,!0)&&(this.D=this.D&-256|Oc(this.ka,a,1,this.da-1)&255,this.A-=this.B.Ch)},function(){var a=this.L&65535;ug(this,a,this.W,!0)&&(this.D=this.D&~this.R|Oc(this.ka,a,this.W,this.da-1)&this.R,this.A-=this.B.Ch)},function(){var a=this.L&65535;ug(this,a,1,!1)&&(Sc(this.ka, -a,1,this.D&255,this.da-1),this.A-=this.B.Qh)},function(){var a=this.L&65535;ug(this,a,2,!1)&&(Sc(this.ka,a,this.W,this.D&this.R,this.da-1),this.A-=this.B.Qh)},Rk,Rk,function(){this.N|=132;this.A-=this.B.bd},function(){this.N|=68;this.A-=this.B.bd},function(){this.O&131072?y.call(this,13,0):(this.Xa|=4,this.A-=2,this.ba&&t(this,-2147483648)?(ag(this),this.ba.Jb()):this.O&512||(this.ba&&ag(this),this.Jb()))},function(){cg(this)?kg(this):jg(this);this.A-=2},function(){this.vc=!1;this.kd.call(this,Wk, -fk);this.vc&&(this.D=this.D&~this.R|this.Ba&this.R)},function(){this.vc=!1;this.ib.call(this,Xk,fk);this.vc&&(this.D=this.D&~this.R|this.Ba&this.R,this.L=this.L&~this.R|this.Ya&this.R)},function(){kg(this);this.A-=2},function(){jg(this);this.A-=2},function(){this.Ma>this.lc?y.call(this,13,0):(this.O&=-513,this.A-=this.B.Kj)},function(){this.Ma>this.lc?y.call(this,13,0):(this.O|=512,this.N|=4,this.A-=2)},function(){this.O&=-1025;this.A-=2},function(){this.O|=1024;this.A-=2},function(){this.kd.call(this, -Ae,fk)},function(){this.ib.call(this,Be,fk)}],Ek=[ki,hj,ii,jj,mi,Mj,Uj,Ai],Sk=[li,ij,ji,kj,ni,Nj,Vj,Bi],Tk=[function(a,b){this.A-=-1===this.F?this.B.nc:this.B.zk;return b},Di,Di,Di,Di,Di,Di,Di],Uk=[function(a,b){this.A-=-1===this.F?this.B.rk:this.B.pk;return b},Ei,Ei,Ei,Ei,Ei,Ei,Ei],Jk=[function(a,b){var c=a;if(b&=this.Ta){var d;(b&=7)?(d=a<>8-b)&255):d=a<<7;ng(this,c,d,128)}return c},function(a,b){var c=a;if(b&=this.Ta){var d;(b&=7)?(d=a<<8-b,c=(a>>>b|d)&255):d=a;ng(this,c,d,128)}return c}, +1;this.kd.call(this,Uk,this.ra)},function(){this.N|=1;this.ib.call(this,Uk,this.Ea)},Ok,Pk,Ok,Pk,function(){if(this.O&131072&&3>this.lc)y.call(this,13,0);else{var a=this.B.dk;this.Uc=-1;ik.call(this,3,null,a)}},function(){var a=this.ra();if(this.O&131072&&3>this.lc)y.call(this,13,0);else{var b;a:{b=this.Yf[a];if(void 0!==b)for(var c=0;cthis.lc)y.call(this,13,0);else{var a=this.B.ek;this.Uc=-1;ik.call(this,4,null,a)}else this.A-=this.B.fk},function(){if(this.O&131072&&3>this.lc)y.call(this,13,0);else{this.Vc=this.Y.U;this.ta=this.Aa;this.A-=this.B.bk;if(this.qa&1&&this.O&16384){var a=this.ja(this.la.ua+0);he(this.Z,a,!1)}else{var a=this.Ma,b=ee(this),c=ee(this),d=ee(this);if(this.O&131072)d=d&131071|this.O&-131072;else if(d&131072){var e=ee(this),f=ee(this),g=ee(this),h=ee(this),k=ee(this),m=ee(this);ie(this,!0,!0);fe(this, +f);ge(this,e);ne(this,g);me(this,h);this.Ga.load(k);this.Ha.load(m)}null!=se(this,b,c,!1)&&(re(this,d,a),this.ag&&Tf(this,this.da))}this.Vc=this.ta=-1}},function(){this.kd.call(this,Jk,ck)},function(){this.ib.call(this,2==this.W?Kk:Lk,ck)},function(){this.kd.call(this,Jk,dk)},function(){this.ib.call(this,2==this.W?Kk:Lk,dk)},function(){var a=this.ra();if(a){var b=this.D&255;this.D=this.D&-65536|b/a<<8|b%a;ig(this,this.D,128);this.A-=this.B.Hj}else lk.call(this)},function(){var a=this.D&255,b=(this.D>> +8&255)*this.ra()|0,c=a+b|0;this.D=this.D&-65536|c&255;bg(this,a,b,c,191);this.A-=this.B.Gj},function(){this.D=this.D&-256|(cg(this)?255:0);this.A-=2},function(){this.D=this.D&-256|yg(this,this.Da,this.G+(this.D&255));this.A-=this.B.Gk},function(){Qk.call(this,216)},function(){Qk.call(this,217)},function(){Qk.call(this,218)},function(){Qk.call(this,219)},function(){Qk.call(this,220)},function(){Qk.call(this,221)},function(){Qk.call(this,222)},function(){Qk.call(this,223)},function(){var a=this.S(), +b=this.I-1&this.wa;this.I=this.I&~this.wa|b;b&&!fg(this)?(C(this,A(this)+a),this.A-=this.B.mk):this.A-=this.B.Hh},function(){var a=this.S(),b=this.I-1&this.wa;this.I=this.I&~this.wa|b;b&&fg(this)?(C(this,A(this)+a),this.A-=this.B.Ih):this.A-=this.B.Jh},function(){var a=this.S(),b=this.I-1&this.wa;this.I=this.I&~this.wa|b;b?(C(this,A(this)+a),this.A-=this.B.lk):this.A-=this.B.Hh},function(){var a=this.S();this.I&this.wa?this.A-=this.B.Jh:(C(this,A(this)+a),this.A-=this.B.Ih)},function(){var a=this.ra(); +ug(this,a,1,!0)&&(this.D=this.D&-256|Oc(this.ka,a,1,this.da-2)&255,this.A-=this.B.Ch)},function(){var a=this.ra();ug(this,a,this.W,!0)&&(this.D=this.D&~this.R|Oc(this.ka,a,this.W,this.da-2)&this.R,this.A-=this.B.Ch)},function(){var a=this.ra();ug(this,a,1,!1)&&(Sc(this.ka,a,1,this.D&255,this.da-2),this.A-=this.B.Qh)},function(){var a=this.ra();ug(this,a,this.W,!1)&&(Sc(this.ka,a,this.W,this.D&this.R,this.da-2),this.A-=this.B.Qh)},function(){var a=this.Ea(),b=A(this),a=b+a;oe(this,b);C(this,a);this.A-= +this.B.Lj},function(){var a=this.Ea();C(this,A(this)+a);this.A-=this.B.Dh},function(){se(this,this.Ea(),Gg(this));this.A-=this.B.hk},function(){var a=this.S();C(this,A(this)+a);this.A-=this.B.Dh},function(){var a=this.L&65535;ug(this,a,1,!0)&&(this.D=this.D&-256|Oc(this.ka,a,1,this.da-1)&255,this.A-=this.B.Bh)},function(){var a=this.L&65535;ug(this,a,this.W,!0)&&(this.D=this.D&~this.R|Oc(this.ka,a,this.W,this.da-1)&this.R,this.A-=this.B.Bh)},function(){var a=this.L&65535;ug(this,a,1,!1)&&(Sc(this.ka, +a,1,this.D&255,this.da-1),this.A-=this.B.Ph)},function(){var a=this.L&65535;ug(this,a,2,!1)&&(Sc(this.ka,a,this.W,this.D&this.R,this.da-1),this.A-=this.B.Ph)},Rk,Rk,function(){this.N|=132;this.A-=this.B.bd},function(){this.N|=68;this.A-=this.B.bd},function(){this.O&131072?y.call(this,13,0):(this.Xa|=4,this.A-=2,this.ba&&t(this,-2147483648)?(ag(this),this.ba.Jb()):this.O&512||(this.ba&&ag(this),this.Jb()))},function(){cg(this)?kg(this):jg(this);this.A-=2},function(){this.vc=!1;this.kd.call(this,Wk, +fk);this.vc&&(this.D=this.D&~this.R|this.Ba&this.R)},function(){this.vc=!1;this.ib.call(this,Xk,fk);this.vc&&(this.D=this.D&~this.R|this.Ba&this.R,this.L=this.L&~this.R|this.Ya&this.R)},function(){kg(this);this.A-=2},function(){jg(this);this.A-=2},function(){this.Ma>this.lc?y.call(this,13,0):(this.O&=-513,this.A-=this.B.Jj)},function(){this.Ma>this.lc?y.call(this,13,0):(this.O|=512,this.N|=4,this.A-=2)},function(){this.O&=-1025;this.A-=2},function(){this.O|=1024;this.A-=2},function(){this.kd.call(this, +Ae,fk)},function(){this.ib.call(this,Be,fk)}],Ek=[ki,hj,ii,jj,mi,Mj,Uj,Ai],Sk=[li,ij,ji,kj,ni,Nj,Vj,Bi],Tk=[function(a,b){this.A-=-1===this.F?this.B.nc:this.B.yk;return b},Di,Di,Di,Di,Di,Di,Di],Uk=[function(a,b){this.A-=-1===this.F?this.B.qk:this.B.nk;return b},Ei,Ei,Ei,Ei,Ei,Ei,Ei],Jk=[function(a,b){var c=a;if(b&=this.Ta){var d;(b&=7)?(d=a<>8-b)&255):d=a<<7;ng(this,c,d,128)}return c},function(a,b){var c=a;if(b&=this.Ta){var d;(b&=7)?(d=a<<8-b,c=(a>>>b|d)&255):d=a;ng(this,c,d,128)}return c}, function(a,b){var c=a;if(b&=this.Ta){var d=og(this);(b%=9)?(c=(a<>9-b)&255,d=a<>b|d<<8-b|a<<9-b)&255,d=a<<8-b):d<<=7;ng(this,c,d,128)}return c},function(a,b){var c=a;if(b&=this.Ta){var d=0;8>>b-1,a=b>>>1&255,ig(this,a,128,b&1,a&128);return a},Ei,function(a,b){if(b&=this.Ta)9>24>>b-1,a=b>>1&255,ig(this,a,128,b&1);return a}],Kk=[function(a,b){var c=a;if(b&=this.Ta){var d;(b&=15)?(d=a<>16-b)&65535):d=a<<15;ng(this,c,d,32768)}return c},function(a,b){var c=a;if(b&=this.Ta){var d;(b&=15)?(d=a<<16-b,c=(a>>>b|d)&65535):d=a;ng(this,c,d,32768)}return c},function(a,b){var c=a;if(b&=this.Ta){var d=og(this);(b%=17)?(c=(a<>17-b)&65535,d=a<>b|d<<16-b|a<<17-b)&65535,d=a<<16-b):d<<=15;ng(this,c,d,32768)}return c},function(a,b){var c=a;if(b&=this.Ta){var d=0;16>>b-1,a=b>>>1&65535,ig(this,a,32768,b&1,a&32768);return a},Ei,function(a,b){if(b&=this.Ta)17>16>>b-1,a=b>>1&65535,ig(this,a,32768,b&1);return a}],Lk=[function(a,b){var c=a;if(b&=this.Ta)c=a<>>32-b,ng(this,c,a<>>b|d;ng(this,c,d,-2147483648)}return c},function(a,b){var c=a;if(b&=this.Ta)c=og(this),c=a<>>32-b>>>1,ng(this,c,a<>>b|c<<32-b|a<<32-b<<1,ng(this,c,a<<32-b,-2147483648);return c},function(a,b){var c=a;if(b&=this.Ta)a<<=b-1,c=a<<1,ig(this,c,-2147483648,a&-2147483648,(c^a)&-2147483648);return c},function(a,b){if(b&=this.Ta)b=a>>>b-1,a=b>>>1,ig(this,a,-2147483648, -b&1,a&-2147483648);return a},Ei,function(a,b){if(b&=this.Ta)b=a>>b-1,a=b>>1,ig(this,a,-2147483648,b&1);return a}],Wk=[function(a,b){b=this.ra();ig(this,a&b,128);this.A-=-1===this.C?this.B.bi:this.B.ai;this.N|=2;return a},Ei,function(a){this.A-=-1===this.C?this.B.Gf:this.B.Ff;return a^255},function(a){var b=-a|0;bg(this,0,a,b,191,!0);this.A-=-1===this.C?this.B.Gf:this.B.Ff;return b&255},function(a){this.Ba=(this.D&255)*a&65535;this.Ba&65280?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-= --1===this.C?this.B.vk:this.B.uk;this.N|=2;return a},function(a){var b=(this.D<<24>>24)*(a<<24>>24)|0;this.Ba=b&65535;127b?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-=-1===this.C?this.B.$j:this.B.Zj;this.N|=2;return a},function(a,b){if(!a)return lk.call(this),a;var c=(b=this.D&65535)/a;if(255>24,d= -(b=this.D<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.ca&&-128==d)return lk.call(this),a;this.Ba=d&255|(b%c&255)<<8;this.vc=!0;this.A-=-1===this.C?this.B.Wj:this.B.Vj;this.N|=2;return a}],Xk=[function(a,b){b=this.Ea();ig(this,a&b,this.Fb);this.A-=-1===this.C?this.B.bi:this.B.ai;this.N|=2;return a},Ei,function(a){this.A-=-1===this.C?this.B.Gf:this.B.Ff;return a^this.R},function(a){var b=-a|0;bg(this,0,a,b,this.Fb|63,!0);this.A-=-1===this.C?this.B.Gf:this.B.Ff;return b&this.R},function(a,b){2==this.W? -(b=this.D&65535,b=b*a|0,this.Ba=b&65535,this.Ya=b>>16&65535):(Ki.call(this,a,this.D),80563==this.xe&&68657152==this.D&&129==a&&(this.Ya=0));this.Ya?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-=-1===this.C?this.B.xk:this.B.wk;this.N|=2;return a},function(a,b){2==this.W?(b=this.D&65535,b=(b<<16>>16)*(a<<16>>16)|0,this.Ba=b&65535,this.Ya=b>>16&65535,b=32767b):(Ji.call(this,a,this.D),b=this.Ya!=this.Ba>>31);b?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-=-1===this.C? -this.B.bk:this.B.ak;this.N|=2;return a},function(a,b){if(2==this.W){if(!a)return lk.call(this),a;b=65536*(this.L&65535)+(this.D&65535);var c=b/a;if(65536<=c)return lk.call(this),a;this.Ba=c&65535;this.Ya=b%a&65535}else{if(!Yj.call(this,this.D,this.L,a))return lk.call(this),a;this.Ba|=0;this.Ya|=0}this.vc=!0;this.A-=-1===this.C?this.B.Uj:this.B.Tj;this.N|=2;return a},function(a,b){if(2==this.W){if(!a)return lk.call(this),a;var c=a<<16>>16,d=(b=this.L<<16|this.D&65535)/c|0;if(d!=d<<16>>16||8086==this.ca&& --32768==d)return lk.call(this),a;this.Ba=d&65535;this.Ya=b%c&65535}else{b=this.D;var c=this.L,d=a,e=0,f=0;0>d&&(d=-d|0,e=1-e);0>c&&(b=-b|0,c=~c+(b?0:1)|0,f=1,e=1-e);!Yj.call(this,b,c,d)||this.Ba>2147483647+e||this.Ya>2147483647+f?b=!1:(e&&(this.Ba=-this.Ba),f&&(this.Ya=-this.Ya),b=!0);if(!b)return lk.call(this),a;this.Ba|=0;this.Ya|=0}this.vc=!0;this.A-=-1===this.C?this.B.Yj:this.B.Xj;this.N|=2;return a}],Ae=[function(a){var b=a+1|0;bg(this,a,1,b,190);this.A-=-1===this.C?this.B.Ef:this.B.Df;return b& -255},function(a){var b=a-1|0;bg(this,a,1,b,190,!0);this.A-=-1===this.C?this.B.Ef:this.B.Df;return b&255},Ei,Ei,Ei,Ei,Ei,Ei],Be=[function(a){var b=a+1|0;bg(this,a,1,b,this.Fb|62);this.A-=-1===this.C?this.B.Ef:this.B.Df;return b&this.R},function(a){var b=a-1|0;bg(this,a,1,b,this.Fb|62,!0);this.A-=-1===this.C?this.B.Ef:this.B.Df;return b&this.R},function(a){oe(this,A(this));C(this,a);this.A-=-1===this.C?this.B.Qj:this.B.Pj;this.N|=2;return a},function(a){if(-1===this.C)return Ei.call(this,a);this.ta= -this.Aa;hk.call(this,a,this.ja(this.C+this.W));this.A-=this.B.Nj;this.N|=2;this.ta=-1;return a},function(a){C(this,a);this.A-=-1===this.C?this.B.kk:this.B.jk;this.N|=2;return a},function(a){if(-1===this.C)return Ei.call(this,a);se(this,a,this.ja(this.C+this.W));this.A-=this.B.hk;this.N|=2;return a},function(a){var b=a;this.N&512&&(a=a-2&65535,80286>this.ca&&(b=a));oe(this,b);this.A-=-1===this.C?this.B.Ic:this.B.Bk;this.N|=2;return a},Ei]; -function gf(){this.ma.call(this,Rj);this.A-=-1===this.C?6:13}function hf(){this.za.call(this,Qj);this.A-=-1===this.C?12:19}var We=Array(256);We[0]=function(){16>(this.Ia(this.da)&56)&&(this.N|=1);this.ib.call(this,this.oj,fk)};We[1]=function(){this.Ia(this.da)&16||(this.N|=1);this.ib.call(this,Yk,fk)};We[2]=function(){!(this.qa&1)||this.O&131072?y.call(this,6):this.ma.call(this,Li)};We[3]=function(){!(this.qa&1)||this.O&131072?y.call(this,6):this.ma.call(this,Ri)}; +b&1,a&-2147483648);return a},Ei,function(a,b){if(b&=this.Ta)b=a>>b-1,a=b>>1,ig(this,a,-2147483648,b&1);return a}],Wk=[function(a,b){b=this.ra();ig(this,a&b,128);this.A-=-1===this.C?this.B.ai:this.B.$h;this.N|=2;return a},Ei,function(a){this.A-=-1===this.C?this.B.Ff:this.B.Ef;return a^255},function(a){var b=-a|0;bg(this,0,a,b,191,!0);this.A-=-1===this.C?this.B.Ff:this.B.Ef;return b&255},function(a){this.Ba=(this.D&255)*a&65535;this.Ba&65280?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-= +-1===this.C?this.B.uk:this.B.tk;this.N|=2;return a},function(a){var b=(this.D<<24>>24)*(a<<24>>24)|0;this.Ba=b&65535;127b?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-=-1===this.C?this.B.Zj:this.B.Yj;this.N|=2;return a},function(a,b){if(!a)return lk.call(this),a;var c=(b=this.D&65535)/a;if(255>24,d= +(b=this.D<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.ca&&-128==d)return lk.call(this),a;this.Ba=d&255|(b%c&255)<<8;this.vc=!0;this.A-=-1===this.C?this.B.Vj:this.B.Uj;this.N|=2;return a}],Xk=[function(a,b){b=this.Ea();ig(this,a&b,this.Fb);this.A-=-1===this.C?this.B.ai:this.B.$h;this.N|=2;return a},Ei,function(a){this.A-=-1===this.C?this.B.Ff:this.B.Ef;return a^this.R},function(a){var b=-a|0;bg(this,0,a,b,this.Fb|63,!0);this.A-=-1===this.C?this.B.Ff:this.B.Ef;return b&this.R},function(a,b){2==this.W? +(b=this.D&65535,b=b*a|0,this.Ba=b&65535,this.Ya=b>>16&65535):(Ki.call(this,a,this.D),80563==this.we&&68657152==this.D&&129==a&&(this.Ya=0));this.Ya?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-=-1===this.C?this.B.wk:this.B.vk;this.N|=2;return a},function(a,b){2==this.W?(b=this.D&65535,b=(b<<16>>16)*(a<<16>>16)|0,this.Ba=b&65535,this.Ya=b>>16&65535,b=32767b):(Ji.call(this,a,this.D),b=this.Ya!=this.Ba>>31);b?(jg(this),lg(this)):(kg(this),mg(this));this.vc=!0;this.A-=-1===this.C? +this.B.ak:this.B.$j;this.N|=2;return a},function(a,b){if(2==this.W){if(!a)return lk.call(this),a;b=65536*(this.L&65535)+(this.D&65535);var c=b/a;if(65536<=c)return lk.call(this),a;this.Ba=c&65535;this.Ya=b%a&65535}else{if(!Yj.call(this,this.D,this.L,a))return lk.call(this),a;this.Ba|=0;this.Ya|=0}this.vc=!0;this.A-=-1===this.C?this.B.Tj:this.B.Sj;this.N|=2;return a},function(a,b){if(2==this.W){if(!a)return lk.call(this),a;var c=a<<16>>16,d=(b=this.L<<16|this.D&65535)/c|0;if(d!=d<<16>>16||8086==this.ca&& +-32768==d)return lk.call(this),a;this.Ba=d&65535;this.Ya=b%c&65535}else{b=this.D;var c=this.L,d=a,e=0,f=0;0>d&&(d=-d|0,e=1-e);0>c&&(b=-b|0,c=~c+(b?0:1)|0,f=1,e=1-e);!Yj.call(this,b,c,d)||this.Ba>2147483647+e||this.Ya>2147483647+f?b=!1:(e&&(this.Ba=-this.Ba),f&&(this.Ya=-this.Ya),b=!0);if(!b)return lk.call(this),a;this.Ba|=0;this.Ya|=0}this.vc=!0;this.A-=-1===this.C?this.B.Xj:this.B.Wj;this.N|=2;return a}],Ae=[function(a){var b=a+1|0;bg(this,a,1,b,190);this.A-=-1===this.C?this.B.Df:this.B.Cf;return b& +255},function(a){var b=a-1|0;bg(this,a,1,b,190,!0);this.A-=-1===this.C?this.B.Df:this.B.Cf;return b&255},Ei,Ei,Ei,Ei,Ei,Ei],Be=[function(a){var b=a+1|0;bg(this,a,1,b,this.Fb|62);this.A-=-1===this.C?this.B.Df:this.B.Cf;return b&this.R},function(a){var b=a-1|0;bg(this,a,1,b,this.Fb|62,!0);this.A-=-1===this.C?this.B.Df:this.B.Cf;return b&this.R},function(a){oe(this,A(this));C(this,a);this.A-=-1===this.C?this.B.Pj:this.B.Oj;this.N|=2;return a},function(a){if(-1===this.C)return Ei.call(this,a);this.ta= +this.Aa;hk.call(this,a,this.ja(this.C+this.W));this.A-=this.B.Mj;this.N|=2;this.ta=-1;return a},function(a){C(this,a);this.A-=-1===this.C?this.B.jk:this.B.ik;this.N|=2;return a},function(a){if(-1===this.C)return Ei.call(this,a);se(this,a,this.ja(this.C+this.W));this.A-=this.B.gk;this.N|=2;return a},function(a){var b=a;this.N&512&&(a=a-2&65535,80286>this.ca&&(b=a));oe(this,b);this.A-=-1===this.C?this.B.Ic:this.B.Ak;this.N|=2;return a},Ei]; +function gf(){this.ma.call(this,Rj);this.A-=-1===this.C?6:13}function hf(){this.za.call(this,Qj);this.A-=-1===this.C?12:19}var We=Array(256);We[0]=function(){16>(this.Ia(this.da)&56)&&(this.N|=1);this.ib.call(this,this.nj,fk)};We[1]=function(){this.Ia(this.da)&16||(this.N|=1);this.ib.call(this,Yk,fk)};We[2]=function(){!(this.qa&1)||this.O&131072?y.call(this,6):this.ma.call(this,Li)};We[3]=function(){!(this.qa&1)||this.O&131072?y.call(this,6):this.ma.call(this,Ri)}; We[5]=function(){this.Ma?y.call(this,13,0,0,!0):(tg(this,this.ja(2054)),this.J=this.ja(2086),this.K=this.ja(2088),this.M=this.ja(2090),this.G=this.ja(2094),this.L=this.ja(2096),this.I=this.ja(2098),this.D=this.ja(2100),ce(this.oa,2102,this.ja(2084)),ce(this.Z,2108,this.ja(2082)),ce(this.Y,2114,this.ja(2080)),ce(this.Ca,2120,this.ja(2078)),re(this,this.ja(2072)),C(this,this.ja(2074)),ge(this,this.ja(2092)),this.Kb=this.ja(2126)|this.Ia(2128)<<16,this.Pc=this.Kb+this.ja(2130),this.Pb=this.ja(2138)| this.Ia(2140)<<16,this.cd=this.Pb+this.ja(2142),ce(this.Eb,2132,this.ja(2076)),ce(this.la,2144,this.ja(2070)),this.A-=195)};We[6]=function(){this.Ma?y.call(this,13,0):(this.qa&=-9,this.A-=2)};We[11]=De;We[166]=De;We[255]=De;var B=[];B[5]=De; B[7]=function(){if(this.Ma)y.call(this,13,0,0,!0);else{var a=this.oa.bc(this.J&this.wa,204);if(-1!==a){ak.call(this,this.ia(a));var b=this.ia(a+168),c=(b&24576)>>13;re(this,this.ia(a+4),c);this.Kb=this.ia(a+112);this.Pc=this.Kb+this.ia(a+116);this.Pb=this.ia(a+100);this.cd=this.Pb+this.ia(a+104);ae(this.Eb,this.ia(a+56),this.ia(a+120),this.ia(a+124),this.ia(a+128));ae(this.la,this.ia(a+52),this.ia(a+84),this.ia(a+88),this.ia(a+92));this.J=this.ia(a+12);this.K=this.ia(a+16);this.M=this.ia(a+20);this.G= this.ia(a+28);this.L=this.ia(a+32);this.I=this.ia(a+36);this.D=this.ia(a+40);ae(this.Ha,this.ia(a+60),this.ia(a+132),this.ia(a+136),this.ia(a+140));ae(this.Ga,this.ia(a+64),this.ia(a+144),this.ia(a+148),this.ia(a+152));ae(this.Ca,this.ia(a+68),this.ia(a+156),this.ia(a+160),this.ia(a+164));ae(this.Y,this.ia(a+72),b,this.ia(a+172),this.ia(a+176));ae(this.Z,this.ia(a+76),this.ia(a+180),this.ia(a+184),this.ia(a+188));ae(this.oa,this.ia(a+80),this.ia(a+192),this.ia(a+196),this.ia(a+200));C(this,this.ia(a+ 8));ge(this,this.ia(a+24))}this.A-=122<<(a&3?1:0)}};B[16]=Fk;B[17]=Gk;B[18]=Hk;B[19]=Ik;B[32]=function(){if(this.Ma)y.call(this,13,0);else{var a,b=this.ra();switch((b&56)>>3){case 0:a=this.qa;break;case 2:a=this.Cd;break;case 3:a=this.Wc;break;default:Xe.call(this);return}vf(this,b&7,a);this.A-=6}};B[33]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=(a&56)>>3;4==b||5==b?Xe.call(this):(vf(this,a&7,this.Qb[b]),this.A-=22)}}; B[34]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=uf(this,a&7);switch((a&56)>>3){case 0:ak.call(this,b);this.A-=10;break;case 2:this.Cd=b;this.A-=4;break;case 3:te.call(this,b);this.A-=5;break;default:Xe.call(this)}}};B[35]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=(a&56)>>3;4==b||5==b?Xe.call(this):(a=uf(this,a&7),a!=this.Qb[b]&&(Uf(this,!1),this.Qb[b]=a,Uf(this,!0)),this.A-=4>b?22:14)}}; -B[36]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=(a&56)>>3;6>b?Xe.call(this):(vf(this,a&7,this.eg[b]),this.A-=12)}};B[38]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=(a&56)>>3;6>b?Xe.call(this):(this.eg[b]=uf(this,a&7),this.A-=12)}};B[128]=function(){var a=this.Ea();hg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[129]=function(){var a=this.Ea();hg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)}; +B[36]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=(a&56)>>3;6>b?Xe.call(this):(vf(this,a&7,this.dg[b]),this.A-=12)}};B[38]=function(){if(this.Ma)y.call(this,13,0);else{var a=this.ra(),b=(a&56)>>3;6>b?Xe.call(this):(this.dg[b]=uf(this,a&7),this.A-=12)}};B[128]=function(){var a=this.Ea();hg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[129]=function(){var a=this.Ea();hg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)}; B[130]=function(){var a=this.Ea();cg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[131]=function(){var a=this.Ea();cg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)};B[132]=function(){var a=this.Ea();fg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[133]=function(){var a=this.Ea();fg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)};B[134]=function(){var a=this.Ea();cg(this)||fg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra}; B[135]=function(){var a=this.Ea();cg(this)||fg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)};B[136]=function(){var a=this.Ea();gg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[137]=function(){var a=this.Ea();gg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)};B[138]=function(){var a=this.Ea();dg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[139]=function(){var a=this.Ea();dg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)}; B[140]=function(){var a=this.Ea();!gg(this)!=!hg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[141]=function(){var a=this.Ea();!gg(this)==!hg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[142]=function(){var a=this.Ea();fg(this)||!gg(this)!=!hg(this)?(C(this,A(this)+a),this.A-=this.B.Qa):this.A-=this.B.Ra};B[143]=function(){var a=this.Ea();fg(this)||!gg(this)!=!hg(this)?this.A-=this.B.Ra:(C(this,A(this)+a),this.A-=this.B.Qa)};B[144]=function(){bk.call(this,lj)}; B[145]=function(){bk.call(this,lj)};B[146]=function(){bk.call(this,mj)};B[147]=function(){bk.call(this,nj)};B[148]=function(){bk.call(this,oj)};B[149]=function(){bk.call(this,pj)};B[150]=function(){bk.call(this,qj)};B[151]=function(){bk.call(this,rj)};B[152]=function(){bk.call(this,sj)};B[153]=function(){bk.call(this,tj)};B[154]=function(){bk.call(this,uj)};B[155]=function(){bk.call(this,vj)};B[156]=function(){bk.call(this,wj)};B[157]=function(){bk.call(this,xj)};B[158]=function(){bk.call(this,yj)}; -B[159]=function(){bk.call(this,zj)};B[160]=function(){le(this,this.Ga.U,this.W,2);this.A-=this.B.se};B[161]=function(){this.ta=this.Aa;var a=ee(this);this.Ga.load(a);this.A-=this.B.nc;this.ta=-1};B[163]=function(){this.za.call(this,wi);-1!==this.C&&(this.A-=6)};B[164]=function(){this.za.call(this,2==this.W?Aj:Cj);this.A-=-1===this.C?3:7};B[165]=function(){this.za.call(this,2==this.W?Ej:Fj);this.A-=-1===this.C?3:7};B[168]=function(){le(this,this.Ha.U,this.W,2);this.A-=this.B.se}; +B[159]=function(){bk.call(this,zj)};B[160]=function(){le(this,this.Ga.U,this.W,2);this.A-=this.B.re};B[161]=function(){this.ta=this.Aa;var a=ee(this);this.Ga.load(a);this.A-=this.B.nc;this.ta=-1};B[163]=function(){this.za.call(this,wi);-1!==this.C&&(this.A-=6)};B[164]=function(){this.za.call(this,2==this.W?Aj:Cj);this.A-=-1===this.C?3:7};B[165]=function(){this.za.call(this,2==this.W?Ej:Fj);this.A-=-1===this.C?3:7};B[168]=function(){le(this,this.Ha.U,this.W,2);this.A-=this.B.re}; B[169]=function(){this.ta=this.Aa;var a=ee(this);this.Ha.load(a);this.A-=this.B.nc;this.ta=-1};B[171]=function(){this.za.call(this,zi);-1!==this.C&&(this.A-=5)};B[172]=function(){this.za.call(this,2==this.W?Gj:Ij);this.A-=-1===this.C?3:7};B[173]=function(){this.za.call(this,2==this.W?Kj:Lj);this.A-=-1===this.C?3:7};B[175]=function(){this.ma.call(this,2==this.W?Gi:Ii)};B[178]=function(){this.ma.call(this,Si)};B[179]=function(){this.za.call(this,yi);-1!==this.C&&(this.A-=5)}; B[180]=function(){this.ma.call(this,Pi)};B[181]=function(){this.ma.call(this,Qi)}; B[182]=function(){this.kc.call(this,Ui);switch(this.ga>>3&7){case 0:this.D=this.D&~this.R|this.D&255;break;case 1:this.I=this.I&~this.R|this.I&255;break;case 2:this.L=this.L&~this.R|this.L&255;break;case 3:this.G=this.G&~this.R|this.G&255;break;case 4:this.Hc=this.Hc&~this.R|this.D>>8&255;this.D=this.xa;break;case 5:this.M=this.M&~this.R|this.I>>8&255;this.I=this.xa;break;case 6:this.K=this.K&~this.R|this.L>>8&255;this.L=this.xa;break;case 7:this.J=this.J&~this.R|this.G>>8&255,this.G=this.xa}this.A-= @@ -422,113 +422,113 @@ a;qg(this);return a},function(a){this.N|=2;this.A-=14+(-1===this.C?0:2);if(-1!== function $k(a){mb.call(this,"ChipSet",a,32768);var b=a.model;b&&!al[b]&&gb("Unrecognized ChipSet model: "+b);this.ca=al[b]||bl;this.C=[];b=cl(a[dl]);this.C[0]=[b,b];null==b&&(this.N=[360,360],(b=a.floppies)&&b.length&&(this.N=b),el(this,fl,this.N.length),el(this,gl,a.monitor||(this.ca=dh&&(this.za=this.ha=2);this.O=a.scaleTimers||!1;this.Ma=a.rtcDate;this.Ga=!1;a.sound&&(this.Da=this.la=null,window&&(this.Da=window.AudioContext|| window.webkitAudioContext),this.Da&&(this.la=new this.Da));this.reset(!0);Ib(this)}ba($k,mb);l=$k.prototype;l.Cb=function(a,b,c){switch(b){case dl:return this.na[b]=c,il(this,0,b),!0;case hl:if((this.ca|0)==jl||this.ca==kl)return this.na[b]=c,il(this,1,b),!0;break;case ll:return this.na[b]=c,!0}return!1}; l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.ba=d;this.pa=a;this.Tc=Wb(a,"FPU");el(this,ml,this.Tc?1:0,!0);this.B=Wb(a,"Keyboard");this.Ba=c.T.sd/nl;Nc(b,this,ol);Rc(b,this,pl);this.ca=dh){this.D=Ml;this.L=0;this.K=Nl;this.oa=0;this.M=Ol|Pl;512<=Ql(this)&&(this.M|=Rl);+Sl(this,gl,void 0)==Tl&&(this.M|=Ul);(this.ca|0)==wl&&(this.M=this.M|Vl|Wl);this.qa= -Xl|Yl;this.Y=Array(8);this.V=0;a&&(this.A=Array(Bl));Zl(this,this.Ma);for(a=$l;a<=am;a++)this.A[a]=0;for(a=bm;ac?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Qd]&Qm||(d&&128>8} -l.save=function(){var a=new Wf(this);a.set(0,[this.C]);for(var b=[],c=0;c=dh&&(a.set(5,[this.D,this.L,this.K,this.oa,this.M,this.qa]),a.set(6,[this.Y[7],this.Y,this.V,this.A,this.ma,this.Z]));return a.data()}; l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.C=b[0]:(this.C[0][0]=b[0],this.C[1][0]=b[1]&15,this.C[0][1]=b[2],this.C[1][1]=b[3]&15);El(this);b=a[1];for(c=0;c=f;f++){var g="pcjs-bitCell";f||(g+=" pcjs-bitCellLeft");d+='
'+f+"
\n"}e.innerHTML=d;an(a,b,c,!0)}function bn(a,b,c){if(b=(a=cn[a.ca|0])&&a[b])for(var d in b)if(a=b[d],a.yc&1<g.pb[0]&&(g.pb[0]=255,g.pb[1]--,0>g.pb[1]&&(g.pb[1]=255)));return h}function rn(a,b,c,d,e,f){var g=a.F[b];t(a,768)&&w(a,d,e,f,"DMA"+b+".CHANNEL"+c+".COUNT["+g.zb+"]",null,!0);a=g.oc[c];a.pb[g.zb]=a.pc[g.zb]=e;g.zb^=1}function sn(a,b,c,d){var e=a.F[b],f=e.Mb|tn;e.Mb&=~un;t(a,768)&&w(a,c,null,d,"DMA"+b+".STATUS",f,!0);return f} -function vn(a,b,c,d,e){var f=a.F[b];t(a,768)&&w(a,c,d,e,"DMA"+b+".REQ",null,!0);a=d&3;f.Mb=f.Mb&~(16<>2].oc[b&3],c,d,e)}function zn(a,b,c){b=a.F[b>>2].oc[b&3];b.ng&&b.fh&&b.Bg?(c&&(b.done=c),b.oe||Jn(a,b,!0)):c&&c(!0)} -function Jn(a,b,c){c&&(b.count=b.pb[1]<<8|b.pb[0],b.type=b.mode&Kn,b.sj=b.og=!1);for(var d=!1;0<=b.count&&(c=b.ig<<16|b.sb[1]<<8|b.sb[0],b.type==Ln?(d=!0,function(c){b.fh.call(b.ng,b.Bg,-1,function(e,g){0>e&&(b.sj||(b.sj=!0),e=255);b.oe||a.ka.fc(c,e);(d=g)&&setTimeout(function(){Mn(b)||Jn(a,b)},0)})}(c)):b.type==Nn?(c=a.ka.Ia(c),0>b.fh.call(b.ng,b.Bg,c)&&(b.og=!0)):b.type!=On&&(b.og=!0)),!d&&!Mn(b););} -function Mn(a){if(!a.og&&0<=--a.count&&(a.mode&Pn?(a.sb[0]--,0>a.sb[0]&&(a.sb[0]=255,a.sb[1]--,0>a.sb[1]&&(a.sb[1]=255))):(a.sb[0]++,255>3];b=1<<(b&7);d.ac&b||(d.ac|=b,d.Xe=c||0,eo(a))}function eh(a,b){var c=a.hc[b>>3];b=1<<(b&7);c.ac&b&&(c.ac&=~b,eo(a))}function eo(a,b){var c,d=-1;1>=1),Fd(a.H,e))),b==ro&&c==vo&&Um(a))}function wo(a,b,c,d){w(a,c,null,d,"PIT"+b+".CTRL",null,2048);return b?a.va:a.ta} -function xo(a,b,c,d,e){w(a,c,d,e,"PIT"+b+".CTRL",null,2048);e=0;c=d&yo;b?(e=3,a.va=d):a.ta=d;if(c==zo){if(!(d&Ao))for(c=0;2>=c;c++)if(d&Bo<=c;c++)d&Bo<>=Go;var f=d&Ho,g=d&Io;d&=Jo;if(d==Ko)Fo(a,e+c);else{e+=c;var h=a.G[e];h.Rf=d;h.mode=g;h.$g=f;h.pc=[0,0];h.pb=[0,0];h.ke=[0,0];h.gd=!1;h.Ne=!1;h.me=!1;h.Re=!1;no(a,e);b==ro&&c==so&&eh(a,to);b==ro&&c==vo&&255==a.hc[0].od&& -a.J==(Lo|Mo|No|Oo)&&(b=a.G[0],b.Mc[0]=b.pc[0],b.Mc[1]=b.pc[1],b.jd=Dd(a.H,a.O))}}}function uo(a,b){a=a.G[b];(b=a.pc[1]<<8|a.pc[0])||(b=1==a.ad?256:65536);return b}function Od(a,b){a=a.G[b];(b=a.Mc[1]<<8|a.Mc[0])||(b=1==a.ad?256:65536);return b}function Fo(a,b){Al(a,b);var c=a.G[b];c.ke[0]=c.pb[0];c.ke[1]=c.pb[1];c.Ne=!0;no(a,b)}function no(a,b){a=a.G[b];a.rd=a.Rf==Po?1:0;a.ad=a.Rf==Qo?2:1} -function Al(a,b,c){var d=a.G[b];if(d.me&&(b!=vo||a.J&Lo)){var e=Dd(a.H,a.O),f=(e-d.jd)/a.Ba|0;0>f&&(d.jd=e,f=0);var g=uo(a,b),h=Od(a,b)-f;d.mode==po?(0>=h&&(h=0),h||(d.gd=!0,d.me=!1,b||gh(a,to))):d.mode==Ro?(d.gd=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&gh(a,to))):d.mode==Pd&&(h-=f,0>=h&&(d.gd=!d.gd,h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&gh(a,to)));d.pb[0]=h&255;d.pb[1]=h>>8&255;c&&(a.jd=0)}return d} +function vn(a,b,c,d,e){var f=a.F[b];t(a,768)&&w(a,c,d,e,"DMA"+b+".REQ",null,!0);a=d&3;f.Mb=f.Mb&~(16<>2].oc[b&3],c,d,e)}function zn(a,b,c){b=a.F[b>>2].oc[b&3];b.mg&&b.eh&&b.Ag?(c&&(b.done=c),b.ne||Jn(a,b,!0)):c&&c(!0)} +function Jn(a,b,c){c&&(b.count=b.pb[1]<<8|b.pb[0],b.type=b.mode&Kn,b.rj=b.ng=!1);for(var d=!1;0<=b.count&&(c=b.hg<<16|b.sb[1]<<8|b.sb[0],b.type==Ln?(d=!0,function(c){b.eh.call(b.mg,b.Ag,-1,function(e,g){0>e&&(b.rj||(b.rj=!0),e=255);b.ne||a.ka.fc(c,e);(d=g)&&setTimeout(function(){Mn(b)||Jn(a,b)},0)})}(c)):b.type==Nn?(c=a.ka.Ia(c),0>b.eh.call(b.mg,b.Ag,c)&&(b.ng=!0)):b.type!=On&&(b.ng=!0)),!d&&!Mn(b););} +function Mn(a){if(!a.ng&&0<=--a.count&&(a.mode&Pn?(a.sb[0]--,0>a.sb[0]&&(a.sb[0]=255,a.sb[1]--,0>a.sb[1]&&(a.sb[1]=255))):(a.sb[0]++,255>3];b=1<<(b&7);d.ac&b||(d.ac|=b,d.We=c||0,eo(a))}function eh(a,b){var c=a.hc[b>>3];b=1<<(b&7);c.ac&b&&(c.ac&=~b,eo(a))}function eo(a,b){var c,d=-1;1>=1),Fd(a.H,e))),b==ro&&c==vo&&Um(a))}function wo(a,b,c,d){w(a,c,null,d,"PIT"+b+".CTRL",null,2048);return b?a.va:a.ta} +function xo(a,b,c,d,e){w(a,c,d,e,"PIT"+b+".CTRL",null,2048);e=0;c=d&yo;b?(e=3,a.va=d):a.ta=d;if(c==zo){if(!(d&Ao))for(c=0;2>=c;c++)if(d&Bo<=c;c++)d&Bo<>=Go;var f=d&Ho,g=d&Io;d&=Jo;if(d==Ko)Fo(a,e+c);else{e+=c;var h=a.G[e];h.Qf=d;h.mode=g;h.Zg=f;h.pc=[0,0];h.pb=[0,0];h.je=[0,0];h.gd=!1;h.Me=!1;h.le=!1;h.Qe=!1;no(a,e);b==ro&&c==so&&eh(a,to);b==ro&&c==vo&&255==a.hc[0].od&& +a.J==(Lo|Mo|No|Oo)&&(b=a.G[0],b.Mc[0]=b.pc[0],b.Mc[1]=b.pc[1],b.jd=Dd(a.H,a.O))}}}function uo(a,b){a=a.G[b];(b=a.pc[1]<<8|a.pc[0])||(b=1==a.ad?256:65536);return b}function Od(a,b){a=a.G[b];(b=a.Mc[1]<<8|a.Mc[0])||(b=1==a.ad?256:65536);return b}function Fo(a,b){Al(a,b);var c=a.G[b];c.je[0]=c.pb[0];c.je[1]=c.pb[1];c.Me=!0;no(a,b)}function no(a,b){a=a.G[b];a.rd=a.Qf==Po?1:0;a.ad=a.Qf==Qo?2:1} +function Al(a,b,c){var d=a.G[b];if(d.le&&(b!=vo||a.J&Lo)){var e=Dd(a.H,a.O),f=(e-d.jd)/a.Ba|0;0>f&&(d.jd=e,f=0);var g=uo(a,b),h=Od(a,b)-f;d.mode==po?(0>=h&&(h=0),h||(d.gd=!0,d.le=!1,b||gh(a,to))):d.mode==Ro?(d.gd=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&gh(a,to))):d.mode==Pd&&(h-=f,0>=h&&(d.gd=!d.gd,h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&gh(a,to)));d.pb[0]=h&255;d.pb[1]=h>>8&255;c&&(a.jd=0)}return d} function Nd(a,b){for(var c=0;c=dh){b=a.H.T.sd;c=Dd(a.H,a.O);null==a.Aa&&(a.ma=Dd(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Sm(a));c>=a.Z&&(a.A[Om]|=So,a.A[Qd]&Rd&&(a.A[Om]|=To,gh(a,Uo)),a.Z=c+a.Aa);a.A[km]==a.A[lm]&&a.A[mm]==a.A[nm]&&a.A[om]==a.A[pm]&&(a.A[Om]|=Vo,a.A[Qd]&Wo&&(a.A[Om]|=To,gh(a,Uo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Qd]&Xo)){for(;e--;)if(60<=++a.A[km]&&(a.A[km]=0,60<=++a.A[mm]&&(a.A[mm]=0,24<=++a.A[om]))){a.A[om]=0;a.A[Hm]=a.A[Hm]% -7+1;var f;f=a.A[Km];var g=Ia[a.A[Jm]-1];28==g&&(f%4||!(f%100)&&f%400||g++);f=g;++a.A[Im]>f&&(a.A[Im]=1,12<++a.A[Jm]&&(a.A[Jm]=1,a.A[Km]=(a.A[Km]+1)%100))}a.A[Om]|=Yo;a.A[Qd]&Zo&&(a.A[Om]|=To,gh(a,Uo))}a.ma=c-d%b}}l.Hm=function(a,b){var c=this.xa;this.ga&$o&&(this.J&ap?c=this.C[0][1]:this.B&&(c=bp(this.B)));w(this,a,null,b,"PPI_A",c);return c};l.ko=function(a,b,c){w(this,a,b,c,"PPI_A");this.xa=b};l.Im=function(a,b){var c=this.J;w(this,a,null,b,"PPI_B",c);return c}; -l.lo=function(a,b,c){w(this,a,b,c,"PPI_B");cp(this,b)};function cp(a,b){var c=!!(b&dp),d=!!(a.J&dp);a.J=b;a.B&&ep(a.B,!(b&ap),!!(b&Oo));c!=d&&Um(a,c)}l.Jm=function(a,b){var c=0,c=(this.ca|0)==jl?this.J&Mo?c|this.C[1][1]&fp:c|this.C[1][1]>>4&1:this.J&gp?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.J&Lo&&Al(this,vo).gd&&(c=this.J&dp?c|hp:c|ip);w(this,a,null,b,"PPI_C",c,32896);return c};l.mo=function(a,b,c){w(this,a,b,c,"PPI_C");this.Ca=b};l.Km=function(a,b){var c=this.ga;w(this,a,null,b,"PPI_CTRL",c);return c}; -l.no=function(a,b,c){w(this,a,b,c,"PPI_CTRL");this.ga=b};l.Tl=function(a,b){var c=this.B?bp(this.B):0;w(this,a,null,b,"8041_KBD",c);this.aa&=~jp;return c};l.un=function(a,b,c){w(this,a,b,c,"8041_KBD")};l.Sl=function(a,b){var c=this.J;w(this,a,null,b,"8041_CTRL",c);return c};l.tn=function(a,b,c){w(this,a,b,c,"8041_CTRL");cp(this,b)};l.Ul=function(a,b){var c=this.aa;w(this,a,null,b,"8041_STATUS",c);return c}; -l.Vl=function(a,b){var c=this.oa;w(this,a,null,b,"8042_OUTBUFF",c,16384);this.D&=~(jp|kp);this.B&&lp(this.B);return c}; -l.wn=function(a,b,c){w(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.D&mp)switch(this.L){case np:op(this,b);break;case pp:qp(this,b);break;default:if(op(this,this.K&~Nl),this.B){a=this.B;c=b;var d=-1;t(a)&&Lb(a,"sendCmd("+r(c)+")");switch(a.F||c){case rp:d=sp;tp(a);break;case up:a.F&&(c=0);vp(a,sp);a.F=c;break;case wp:a.F&&(c=0);vp(a,sp);a.F=c;break;default:Lb(a,"sendCmd(): unrecognized command")}xp(this,d)}}this.L=b;this.D&=~mp}; -l.Wl=function(a,b){var c=this.J&~(yp|zp)|(Dd(this.H)&64?zp:0);w(this,a,null,b,"8042_RWREG",c,16384);return c};l.xn=function(a,b,c){w(this,a,b,c,"8042_RWREG",null,16384);cp(this,b)};l.Xl=function(a,b){w(this,a,null,b,"8042_STATUS",this.D,16384);a=this.D&255;this.D&kp&&(this.D|=jp,this.D&=~kp);return a}; -l.vn=function(a,b,c){w(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.L=b;this.D|=mp;a=0;this.L>=Ap&&(a=this.L^15,this.L=Ap);switch(this.L){case Bp:xp(this,this.K);break;case Cp:op(this,this.K|Nl);break;case Dp:op(this,this.K&~Nl);this.B&&lp(this.B);break;case Ep:this.B&&(a=this.B,a.A=[],t(a)&&Lb(a,"scan codes flushed"));op(this,this.K|Nl);xp(this,Fp);qp(this,Xl|Yl);break;case Gp:xp(this,Hp);break;case Ip:xp(this,this.M);break;case Jp:xp(this,this.qa);break;case Kp:xp(this,this.K&Nl?0:Lp);break;case Ap:a& -1&&jf(this.H)}};function op(a,b){a.K=b;a.D=a.D&~Mp|b&Np;a.B&&ep(a.B,!!(b&Op),!(b&Nl))}function xp(a,b,c){0<=b&&(a.oa=b,c?a.D|=jp:(a.D&=~jp,a.D|=kp))}function qp(a,b){a.qa=b;nc(a.ka,!!(b&Yl));b&Xl||jf(a.H)}function Pp(a,b){a.ca>4)+(c&15),e=!0);if(d==om||d==pm)e&&23=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Qd&&a&Rd&&b&Rd&&Sm(this)};l.Ok=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Xn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&Ng(this.Tc)}; -l.Ym=function(a){if(t(this,16)&&Vk(this.ba,26,a)){var b=this.H.D>>8;Sf(this.H,a,function(a,d){return function(c){d=Dd(a.H)-d;var e,g=a.H.L&255,h=a.H.L>>8,k=a.H.L&255,m=a.H.L>>8;if(2==b||3==b)e=" CH(hour)="+sa(h)+" CL(min)="+r(g)+" DH(sec)="+r(m);else if(4==b||5==b)e=" CX(year)="+sa(a.H.I)+" DH(month)="+r(m)+" DL(day)="+r(k);g=a.ba;h=d;g.message("INT "+r(26)+": C="+(cg(g.H)?1:0)+(e||"")+" (cycles="+h+(c?",level="+(c+1):"")+")")}}(this,Dd(this.H)))}return!0}; +7+1;var f;f=a.A[Km];var g=Ia[a.A[Jm]-1];28==g&&(f%4||!(f%100)&&f%400||g++);f=g;++a.A[Im]>f&&(a.A[Im]=1,12<++a.A[Jm]&&(a.A[Jm]=1,a.A[Km]=(a.A[Km]+1)%100))}a.A[Om]|=Yo;a.A[Qd]&Zo&&(a.A[Om]|=To,gh(a,Uo))}a.ma=c-d%b}}l.Gm=function(a,b){var c=this.xa;this.ga&$o&&(this.J&ap?c=this.C[0][1]:this.B&&(c=bp(this.B)));w(this,a,null,b,"PPI_A",c);return c};l.jo=function(a,b,c){w(this,a,b,c,"PPI_A");this.xa=b};l.Hm=function(a,b){var c=this.J;w(this,a,null,b,"PPI_B",c);return c}; +l.ko=function(a,b,c){w(this,a,b,c,"PPI_B");cp(this,b)};function cp(a,b){var c=!!(b&dp),d=!!(a.J&dp);a.J=b;a.B&&ep(a.B,!(b&ap),!!(b&Oo));c!=d&&Um(a,c)}l.Im=function(a,b){var c=0,c=(this.ca|0)==jl?this.J&Mo?c|this.C[1][1]&fp:c|this.C[1][1]>>4&1:this.J&gp?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.J&Lo&&Al(this,vo).gd&&(c=this.J&dp?c|hp:c|ip);w(this,a,null,b,"PPI_C",c,32896);return c};l.lo=function(a,b,c){w(this,a,b,c,"PPI_C");this.Ca=b};l.Jm=function(a,b){var c=this.ga;w(this,a,null,b,"PPI_CTRL",c);return c}; +l.mo=function(a,b,c){w(this,a,b,c,"PPI_CTRL");this.ga=b};l.Sl=function(a,b){var c=this.B?bp(this.B):0;w(this,a,null,b,"8041_KBD",c);this.aa&=~jp;return c};l.tn=function(a,b,c){w(this,a,b,c,"8041_KBD")};l.Rl=function(a,b){var c=this.J;w(this,a,null,b,"8041_CTRL",c);return c};l.sn=function(a,b,c){w(this,a,b,c,"8041_CTRL");cp(this,b)};l.Tl=function(a,b){var c=this.aa;w(this,a,null,b,"8041_STATUS",c);return c}; +l.Ul=function(a,b){var c=this.oa;w(this,a,null,b,"8042_OUTBUFF",c,16384);this.D&=~(jp|kp);this.B&&lp(this.B);return c}; +l.vn=function(a,b,c){w(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.D&mp)switch(this.L){case np:op(this,b);break;case pp:qp(this,b);break;default:if(op(this,this.K&~Nl),this.B){a=this.B;c=b;var d=-1;t(a)&&Lb(a,"sendCmd("+r(c)+")");switch(a.F||c){case rp:d=sp;tp(a);break;case up:a.F&&(c=0);vp(a,sp);a.F=c;break;case wp:a.F&&(c=0);vp(a,sp);a.F=c;break;default:Lb(a,"sendCmd(): unrecognized command")}xp(this,d)}}this.L=b;this.D&=~mp}; +l.Vl=function(a,b){var c=this.J&~(yp|zp)|(Dd(this.H)&64?zp:0);w(this,a,null,b,"8042_RWREG",c,16384);return c};l.wn=function(a,b,c){w(this,a,b,c,"8042_RWREG",null,16384);cp(this,b)};l.Wl=function(a,b){w(this,a,null,b,"8042_STATUS",this.D,16384);a=this.D&255;this.D&kp&&(this.D|=jp,this.D&=~kp);return a}; +l.un=function(a,b,c){w(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.L=b;this.D|=mp;a=0;this.L>=Ap&&(a=this.L^15,this.L=Ap);switch(this.L){case Bp:xp(this,this.K);break;case Cp:op(this,this.K|Nl);break;case Dp:op(this,this.K&~Nl);this.B&&lp(this.B);break;case Ep:this.B&&(a=this.B,a.A=[],t(a)&&Lb(a,"scan codes flushed"));op(this,this.K|Nl);xp(this,Fp);qp(this,Xl|Yl);break;case Gp:xp(this,Hp);break;case Ip:xp(this,this.M);break;case Jp:xp(this,this.qa);break;case Kp:xp(this,this.K&Nl?0:Lp);break;case Ap:a& +1&&jf(this.H)}};function op(a,b){a.K=b;a.D=a.D&~Mp|b&Np;a.B&&ep(a.B,!!(b&Op),!(b&Nl))}function xp(a,b,c){0<=b&&(a.oa=b,c?a.D|=jp:(a.D&=~jp,a.D|=kp))}function qp(a,b){a.qa=b;nc(a.ka,!!(b&Yl));b&Xl||jf(a.H)}function Pp(a,b){a.ca>4)+(c&15),e=!0);if(d==om||d==pm)e&&23=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Qd&&a&Rd&&b&Rd&&Sm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&Ng(this.Tc)}; +l.Xm=function(a){if(t(this,16)&&Vk(this.ba,26,a)){var b=this.H.D>>8;Sf(this.H,a,function(a,d){return function(c){d=Dd(a.H)-d;var e,g=a.H.L&255,h=a.H.L>>8,k=a.H.L&255,m=a.H.L>>8;if(2==b||3==b)e=" CH(hour)="+sa(h)+" CL(min)="+r(g)+" DH(sec)="+r(m);else if(4==b||5==b)e=" CX(year)="+sa(a.H.I)+" DH(month)="+r(m)+" DL(day)="+r(k);g=a.ba;h=d;g.message("INT "+r(26)+": C="+(cg(g.H)?1:0)+(e||"")+" (cycles="+h+(c?",level="+(c+1):"")+")")}}(this,Dd(this.H)))}return!0}; function Um(a,b){if(a.la)try{void 0!==b?a.Ga=b:b=!!(a.Ga&&a.H&&a.H.ea.vb);var c=Math.round(nl/uo(a,vo));if(20>c||2E4>>4,0,this.F,this.C,this.Fd),delete this.Fd);return!0};Xp.prototype.Wb=function(){return!0}; -function Yp(a,b,c,d){if(d)a.Fa("Unable to load system ROM (error "+d+": "+b+")");else{ob(a.ye,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Fd=e.symbols;if(!a.A.length){gb("Empty ROM: "+b);return}if(1==a.A.length){gb(a.A[0]);return}}catch(h){a.Fa("ROM data error: "+h.message);return}else for(b= +function Yp(a,b,c,d){if(d)a.Fa("Unable to load system ROM (error "+d+": "+b+")");else{ob(a.xe,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Fd=e.symbols;if(!a.A.length){gb("Empty ROM: "+b);return}if(1==a.A.length){gb(a.A[0]);return}}catch(h){a.Fa("ROM data error: "+h.message);return}else for(b= c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e>>d.A].cf(e&d.D,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(c=0;c>>d.A].bf(e&d.D,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(c=0;cthis.B?$l:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;jm(a)}}else gb("No RAM allocated")}; +l.reset=function(){if(!this.B&&!this.D&&this.V){var a=1024*Ql(this.V);this.A&&a!=this.A&&(Bc(this.ka,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&oc(this.ka,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.be&&(this.controller=new eq(this),oc(this.ka,fq,4,4,this.controller)));if(this.C){if(this.F||Jc(this.ka,1138,4660),"ramCPQ"!=this.be&&this.V&&(a=this.V,a.A)){var b=1048576>this.B?$l:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;jm(a)}}else gb("No RAM allocated")}; l.save=function(){var a=new Wf(this);this.controller&&a.set(0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function eq(a){this.D=a;this.C=gq;this.H=hq;this.B=iq;this.A=null}l=eq.prototype;l.save=function(){return[this.C,this.B]};l.restore=function(a){this.fc(0,a[0]&255);this.fc(2,a[1]&255);return!0};l.Ia=function(a){var b=255;2>a?b=a&1?this.H>>8:this.H&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b}; -l.fc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){a=this.D.ka;if(b&jq)this.A&&(wc(a,kq,lq,this.A),this.A=null);else{this.A||(this.A=xc(a,kq,lq));var c=xc(a,mq,lq);wc(a,kq,lq,c,b&nq?1:Dc)}this.C=this.C&-256|b}};l.wj=function(){return oq};l.gh=function(){return pq};var fq=-2134900736,mq=16646144,kq=917504,lq=131072,jq=1,nq=2,gq=65535,hq=2575,iq=2,oq=[null,0],pq=[function(a){return this.controller.Ia(a)},null,null,function(a,b){this.controller.fc(a,b)},null,null]; -$a(function(){for(var a=zb(document,"pcx86","ram"),b=0;b=n.ee&&d<=n.z&&(d-=n.ee-n.de),d=Aq[e]==d),d){(a=a.na["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.H=c;this.ba=d;this.V=Wb(a,"ChipSet")}; +c.onmouseout=b),!0;if(d)return this.na[f]=c,c.onclick=function(){e.pa&&e.pa.ld();d&&!e.D&&(e.D=d,Cq(e,300))},!0}return!1};function Dq(a,b,c){if(a.L){for(var d in na)if(b==na[d]){b=+d;(d=ma[d])&&(b=d);break}for(var e in Aq)if((d=Aq[e]==b)||(d=b,d>=n.de&&d<=n.z&&(d-=n.de-n.ce),d=Aq[e]==d),d){(a=a.na["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.H=c;this.ba=d;this.V=Wb(a,"ChipSet")}; function rq(a,b){var c=0;a.ca=null;"string"==typeof b&&(a.ca=b.toUpperCase(),c=Eq.indexOf(a.ca),0>c&&(c=0));if(b=Eq[c])a.Y=parseInt(b.substr(2),10)}function tp(a){Lb(a,"keyboard reset",65792);a.A=[];vp(a,Fq)}function ep(a,b,c){a.J!==c&&(a.J=a.K=c)&&(a.G=!0);a.I!==b&&(a.I=b)&&!a.K&&Rp(a,!0);a.I&&a.K&&(tp(a),a.K=!1)}function vp(a,b){a.V&&(a.A.unshift(b),a.G=!0,Pp(a.V,b))} function lp(a){var b=0;a.A.length&&a.G&&(b=a.A[0],a.V&&Pp(a.V,b));t(a)&&Lb(a,b?"scan code "+r(b)+" available":"no scan codes available")}function bp(a){var b=0;a.A.length&&(b=a.A[0]);t(a)&&Lb(a,"scan code "+r(b)+" delivered");return b}function Rp(a,b){0>=1);if(b&Jq){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.jc)&b):d||b&Kq&&(b=Kq);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in Lq)d="led-"+g,e=Lq[g],c&&c!=e||!(f=a.na[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.jc&=~b,d&&(a.jc|=b);return!0}}return!1} -function uq(a,b,c){if(O[b]&&a.H&&a.H.ea.vb){Hq[b]&&a.B.length&&0e||(e==a.B.length&&(d={},d.ve=b,d.jc=a.jc,Dq(a,b,!0),e++),0b.ud){if(!b.rf){Bq(a,b.ve);return}b.rf=!1;c=a.Z}else c=1==b.ud++?500:100;b.dl=setTimeout(function(a){return function(){Mq(a,b)}}(a),c)}} -function Oq(a,b,c){var d=b;if(b>=n.de&&b<=n.fg)!(a.jc&(Pq|Qq|Rq))==c&&(d=b+(n.ee-n.de));else if(b>=n.ee&&b<=n.z)!!(a.jc&(Pq|Qq|Rq))==c&&(d=b-(n.ee-n.de));else if(!!(a.jc&(Pq|Qq))==c){if(a=na[b])d=a}else if(a=ma[b])d=a;return d}l.Cg=function(a){a||(this.jc&=~Kq)}; -function sq(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Oq(a,g,!0);a.eh&&h==n["`"]&&(g=h=27);if(O[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),zq(a,h,!1,c)){if(20==g||144==g||145==g)a.O||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k=n.de&&b<=n.fg||b>=n.ee&&b<=n.z;e>>>=8;){var g=0,h=e&255;f==ar||f==br?d.push(f|(c?0:$q)):(h==P?a.C&(Pq|Qq)||a.C&Rq&&b||(g=h):h==cr?a.C&(Sq|dr)||(g=h):h==er?a.C&(Tq|fr)||(g=h):d.push(f|(c?0:$q)),g&&(c?d.unshift(g):d.push(g|$q)))}for(c=0;ce||(e==a.B.length&&(d={},d.ue=b,d.jc=a.jc,Dq(a,b,!0),e++),0b.ud){if(!b.qf){Bq(a,b.ue);return}b.qf=!1;c=a.Z}else c=1==b.ud++?500:100;b.cl=setTimeout(function(a){return function(){Mq(a,b)}}(a),c)}} +function Oq(a,b,c){var d=b;if(b>=n.ce&&b<=n.eg)!(a.jc&(Pq|Qq|Rq))==c&&(d=b+(n.de-n.ce));else if(b>=n.de&&b<=n.z)!!(a.jc&(Pq|Qq|Rq))==c&&(d=b-(n.de-n.ce));else if(!!(a.jc&(Pq|Qq))==c){if(a=na[b])d=a}else if(a=ma[b])d=a;return d}l.Bg=function(a){a||(this.jc&=~Kq)}; +function sq(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Oq(a,g,!0);a.dh&&h==n["`"]&&(g=h=27);if(O[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),zq(a,h,!1,c)){if(20==g||144==g||145==g)a.O||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k=n.ce&&b<=n.eg||b>=n.de&&b<=n.z;e>>>=8;){var g=0,h=e&255;f==ar||f==br?d.push(f|(c?0:$q)):(h==P?a.C&(Pq|Qq)||a.C&Rq&&b||(g=h):h==cr?a.C&(Sq|dr)||(g=h):h==er?a.C&(Tq|fr)||(g=h):d.push(f|(c?0:$q)),g&&(c?d.unshift(g):d.push(g|$q)))}for(c=0;c"]]=52|P<<8;O[n["/"]]=53; +O[1009]=15;O[n.q]=16;O[n.Q]=16|P<<8;O[n.To]=17;O[n.Mi]=17|P<<8;O[n.e]=18;O[n.E]=18|P<<8;O[n.r]=19;O[n.Hi]=19|P<<8;O[n.t]=20;O[n.Ji]=20|P<<8;O[n.y]=21;O[n.Oi]=21|P<<8;O[n.Ro]=22;O[n.Ki]=22|P<<8;O[n.Kl]=23;O[n.zi]=23|P<<8;O[n.qn]=24;O[n.Fi]=24|P<<8;O[n.p]=25;O[n.Gi]=25|P<<8;O[n["["]]=26;O[n["{"]]=26|P<<8;O[n["]"]]=27;O[n["}"]]=27|P<<8;O[13]=28;O[1017]=cr;O[n.de]=30;O[n.ce]=30|P<<8;O[n.No]=31;O[n.Ii]=31|P<<8;O[n.d]=32;O[n.vi]=32|P<<8;O[n.Hl]=33;O[n.wi]=33|P<<8;O[n.Il]=34;O[n.xi]=34|P<<8;O[n.Jl]=35; +O[n.yi]=35|P<<8;O[n.an]=36;O[n.Ai]=36|P<<8;O[n.k]=37;O[n.Bi]=37|P<<8;O[n.dn]=38;O[n.Ci]=38|P<<8;O[n[";"]]=39;O[n[":"]]=39|P<<8;O[n["'"]]=40;O[n['"']]=40|P<<8;O[n["`"]]=41;O[n["~"]]=41|P<<8;O[1016]=P;O[n["\\"]]=43;O[n["|"]]=43|P<<8;O[n.z]=44;O[n.eg]=44|P<<8;O[n.x]=45;O[n.Ni]=45|P<<8;O[n.xl]=46;O[n.ui]=46|P<<8;O[n.So]=47;O[n.Li]=47|P<<8;O[n.vl]=48;O[n.ti]=48|P<<8;O[n.n]=49;O[n.Ei]=49|P<<8;O[n.hn]=50;O[n.Di]=50|P<<8;O[n[","]]=51;O[n["<"]]=51|P<<8;O[n["."]]=52;O[n[">"]]=52|P<<8;O[n["/"]]=53; O[n["?"]]=53|P<<8;O[3016]=54;O[1044]=55;O[1018]=er;O[1032]=57;O[vq]=58;O[1112]=59;O[1113]=60;O[1114]=61;O[1115]=62;O[1116]=63;O[1117]=64;O[1118]=65;O[1119]=66;O[1120]=67;O[1121]=68;O[wq]=69;O[xq]=70;O[1036]=71;O[1038]=72;O[1033]=73;O[1109]=74;O[1037]=75;O[1101]=76;O[1039]=77;O[1107]=78;O[1035]=79;O[1040]=80;O[1034]=81;O[1045]=82;O[1046]=Zq;O[4027]=84;O[1122]=87;O[1123]=88;O[1091]=91;O[1093]=93;O[1224]=91;O[ir]=46|cr<<8;O[Uq]=70|cr<<8;O[4046]=Zq|cr<<8|er<<16;O[4045]=82|cr<<8|er<<16; O[4013]=28|cr<<8|er<<16;var rp=255,up=243,wp=237,Fq=170,sp=250,hr=255,gr=20;$a(function(){for(var a=zb(document,"pcx86","keyboard"),b=0;bc.length)c=[!1,0,null,null,0,Array(b>2,32768));this.rc=c[0];this.Xc=c[1];this.$e=c[2];this.fa=c[3];this.ec=c[4]&255;this.Gg=c[4]>>8&255;this.Wa=c[5];this.ph=lr;this.hg=nr;if(b>=aq){this.ph=mr;this.hg=or;(b=c[6])||(b=[!1,0,Array(pr),0,f== -Tl?0:qr,0,0,Array(rr),0,0,0,Array(sr),0,[this.bb,this.Ob,this.qd],Array(this.qd>>2),tr|ur|vr|wr|xr,0,-1,0,-1,0,-1,0,0,0,0,yr,zr,0,0,Ar,Array(Br)]);this.Le=b[0];this.wd=b[1];this.Cc=b[2];this.Ug=Cr;this.Jg=b[3];this.bf=b[4];this.Qf=b[5];this.zd=b[6];this.$d=b[7];this.Wg=Dr;this.Xk=b[8];this.Yk=b[9];this.yd=b[10];this.xd=b[11];this.Vg=Er;this.tb=b[12];d=b[13];"number"==typeof d&&(d=[this.bb,this.Ob,d]);this.bb=d[0];this.Ob=d[1];d=this.qd>>2;if((this.fd=b[14])&&this.fd.length=aq){var c=[];c[0]=a.Le;c[1]=a.wd;c[2]=a.Cc;c[3]=a.Jg;c[4]=a.bf;c[5]=a.Qf;c[6]=a.zd;c[7]=a.$d;c[8]=a.Xk;c[9]=a.Yk;c[10]=a.yd;c[11]=a.xd;c[12]=a.tb;c[13]=[a.bb,a.Ob,a.qd];var d;if(d=a.fd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h>1;f[e++]=k;h=m}f.lengthc.length)c=[!1,0,null,null,0,Array(b>2,32768));this.rc=c[0];this.Xc=c[1];this.Ze=c[2];this.fa=c[3];this.ec=c[4]&255;this.Fg=c[4]>>8&255;this.Wa=c[5];this.oh=lr;this.gg=nr;if(b>=aq){this.oh=mr;this.gg=or;(b=c[6])||(b=[!1,0,Array(pr),0,f== +Tl?0:qr,0,0,Array(rr),0,0,0,Array(sr),0,[this.bb,this.Ob,this.qd],Array(this.qd>>2),tr|ur|vr|wr|xr,0,-1,0,-1,0,-1,0,0,0,0,yr,zr,0,0,Ar,Array(Br)]);this.Ke=b[0];this.wd=b[1];this.Cc=b[2];this.Tg=Cr;this.Ig=b[3];this.af=b[4];this.Pf=b[5];this.zd=b[6];this.$d=b[7];this.Vg=Dr;this.Wk=b[8];this.Xk=b[9];this.yd=b[10];this.xd=b[11];this.Ug=Er;this.tb=b[12];d=b[13];"number"==typeof d&&(d=[this.bb,this.Ob,d]);this.bb=d[0];this.Ob=d[1];d=this.qd>>2;if((this.fd=b[14])&&this.fd.length=aq){var c=[];c[0]=a.Ke;c[1]=a.wd;c[2]=a.Cc;c[3]=a.Ig;c[4]=a.af;c[5]=a.Pf;c[6]=a.zd;c[7]=a.$d;c[8]=a.Wk;c[9]=a.Xk;c[10]=a.yd;c[11]=a.xd;c[12]=a.tb;c[13]=[a.bb,a.Ob,a.qd];var d;if(d=a.fd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h>1;f[e++]=k;h=m}f.length=aq){var d=0,e=0,f=0;switch(b){case Nr:d=Or;a.La==cq&&(e=Pr);break;case Qr:a.La==aq&&(d=Rr);break;case Sr:d=Tr;a.La==cq&&(e=Ur);break;case Vr:d=Wr;a.La==cq&&(e=Xr);break;case Yr:d=Zr;a.La==cq&&(f=$r);break;case as:d=bs,a.La==cq&&(f=cs)}d&&(c|=a.Wa[ds]&d?256:0,c|=a.Wa[ds]&e?512:0,c|=a.Wa[es]&f?512:0)}return c} var lr=18,Nr=6,ds=7,Or=1,Wr=2,Tr=4,Zr=8,bs=16,Rr=32,Pr=32,Xr=64,Ur=128,es=9,$r=32,cs=64,Qr=10,Sr=16,Vr=18,Yr=21,as=24,mr=25,nr="HTOTAL HDISP HSYNC_POS HSYNC_WIDTH VTOTAL VTOTAL_ADJ VDISP VSYNC_POS INTERLACE_POS MAX_SCAN CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO LIGHT_PEN_HI LIGHT_PEN_LO".split(" "),or="HTOTAL HDISP_END HBLANK_START HBLANK_END HRETRACE_START HRETRACE_END VTOTAL OVERFLOW PRESET_SCAN MAX_SCAN CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO VRETRACE_START VRETRACE_END VDISP_END OFFSET UNDERLINE VBLANK_START VBLANK_END MODE_CTRL LINE_COMPARE".split(" "), pr=20,Cr="PAL00 PAL01 PAL02 PAL03 PAL04 PAL05 PAL06 PAL07 PAL08 PAL09 PAL0A PAL0B PAL0C PAL0D PAL0E PAL0F MODE OVERSCAN PLANES HPAN".split(" "),qr=1,yr=1,rr=5,Dr=["RESET","CLOCKING","MAPMASK","CHARMAP","MEMMODE"],zr=255,Ar=0,Br=256,sr=9,Er="SRESET ESRESET COLORCMP DATAROT READMAP MODE MISC COLORDC BITMASK".split(" "),tr=1024,ur=4096,Kr=65280,vr=0,wr=16,Mr=255,xr=-2147483648,Fr=[];Fr[2]=tr;Fr[3]=tr|ur;Fr[16]=1280;Fr[512]=vr;Fr[1024]=vr|32;Fr[1536]=vr|96;Fr[2560]=vr|160;Fr[3584]=vr|224;Fr[768]=vr|wr; -Fr[4096]=1;Fr[8192]=2;Fr[24576]=98;Fr[40960]=162;Fr[57344]=226;var Lr=[];Lr[tr]=function(a){a+=this.H;return(this.controller.tb=this.X[a])>>this.controller.fi&255};Lr[tr|16384]=function(a){return(this.controller.tb=this.X[(a&-4)+this.H])>>((a&3)<<3)&255};Lr[tr|ur]=function(a){a+=this.H;var b=this.controller.tb=this.X[a&-2];return(a&1?b>>8:b)&255}; -Lr[1280]=function(a){a+=this.H;a=this.controller.tb=this.X[a];for(var b=this.controller.rh,c=this.controller.qh&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};Lr[vr]=function(a,b){a+=this.H;b=(b|b<<8|b<<16|b<<24)&this.controller.Md|this.controller.Yd;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; +Fr[4096]=1;Fr[8192]=2;Fr[24576]=98;Fr[40960]=162;Fr[57344]=226;var Lr=[];Lr[tr]=function(a){a+=this.H;return(this.controller.tb=this.X[a])>>this.controller.ei&255};Lr[tr|16384]=function(a){return(this.controller.tb=this.X[(a&-4)+this.H])>>((a&3)<<3)&255};Lr[tr|ur]=function(a){a+=this.H;var b=this.controller.tb=this.X[a&-2];return(a&1?b>>8:b)&255}; +Lr[1280]=function(a){a+=this.H;a=this.controller.tb=this.X[a];for(var b=this.controller.qh,c=this.controller.ph&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};Lr[vr]=function(a,b){a+=this.H;b=(b|b<<8|b<<16|b<<24)&this.controller.Md|this.controller.Yd;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; Lr[vr|32]=function(a,b){a+=this.H;b=b>>this.controller.Qc|b<<8-this.controller.Qc&255;b=(b|b<<8|b<<16|b<<24)&this.controller.Md|this.controller.Yd;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; Lr[vr|96]=function(a,b){a+=this.H;b=b>>this.controller.Qc|b<<8-this.controller.Qc&255;b=(b|b<<8|b<<16|b<<24)&this.controller.Md|this.controller.Yd;b&=this.controller.tb;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; Lr[vr|160]=function(a,b){a+=this.H;b=b>>this.controller.Qc|b<<8-this.controller.Qc&255;b=(b|b<<8|b<<16|b<<24)&this.controller.Md|this.controller.Yd;b|=this.controller.tb;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; @@ -536,295 +536,295 @@ Lr[vr|224]=function(a,b){a+=this.H;b=b>>this.controller.Qc|b<<8-this.controller. Lr[vr|wr]=function(a,b){a+=this.H;var c=a&-2;b=(b|b<<8|b<<16|b<<24)&this.controller.Bb|this.controller.tb&~this.controller.Bb;a=this.controller.gb&(c==a?16711935:-16711936);b=b&a|this.X[c]&~a;this.X[c]!=b&&(this.X[c]=b,this.Oa=!0)};Lr[1]=function(a){a+=this.H;var b=this.X[a]&~this.controller.gb|this.controller.tb&this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; Lr[1|wr]=function(a){a+=this.H;var b=a&-2;a=this.controller.gb&(b==a?16711935:-16711936);a=this.X[b]&~a|this.controller.tb&a;this.X[b]!=a&&(this.X[b]=a,this.Oa=!0)};Lr[2]=function(a,b){a+=this.H;b=fs[b&15];b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; Lr[98]=function(a,b){a+=this.H;b=fs[b&15];b&=this.controller.tb;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)};Lr[162]=function(a,b){a+=this.H;b=fs[b&15];b|=this.controller.tb;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; -Lr[226]=function(a,b){a+=this.H;b=fs[b&15];b^=this.controller.tb;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)};Lr[3]=function(a,b){a+=this.H;b=b>>this.controller.Qc|b<<8-this.controller.Qc&255;b=(b|b<<8|b<<16|b<<24)&this.controller.Bb;b=this.controller.If&b|this.controller.tb&~b;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; +Lr[226]=function(a,b){a+=this.H;b=fs[b&15];b^=this.controller.tb;b=b&this.controller.Bb|this.controller.tb&~this.controller.Bb;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)};Lr[3]=function(a,b){a+=this.H;b=b>>this.controller.Qc|b<<8-this.controller.Qc&255;b=(b|b<<8|b<<16|b<<24)&this.controller.Bb;b=this.controller.Hf&b|this.controller.tb&~b;b=b&this.controller.gb|this.X[a]&~this.controller.gb;this.X[a]!=b&&(this.X[a]=b,this.Oa=!0)}; function Q(a,b,c,d,e){mb.call(this,"Video",a,262144);var f=this;this.Tc=Ta("Gecko/");var g=["","moz","ms","webkit"];this.ca=a.model;var h=gs[this.ca]||gs.mda;this.La=h[0];this.qd=a.memory||0;this.cd=a.switches;this.da=a.mode;if(null==this.da||null==hs[this.da])this.da=h[1];this.Fb=a.charCols;this.sc=a.charRows;if(void 0===this.Fb||void 0===this.sc)this.Fb=hs[this.da][0],this.sc=hs[this.da][1];this.Z=a.screenWidth;this.la=a.screenHeight;this.Uc=a.scale;this.Cd=12<=Math.round(this.Z/this.Fb);this.O= -b;this.L=c;this.D=(this.Qd=d)||b||null;b=a.smoothing;(c=Ua("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c=aq&&(Nc(b,this,rs),Rc(b,this,ss));this.La==cq&&(Nc(b,this,ts),Rc(b,this,us));if(d){var e=this;zl(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.fd){var c,d,f,g=!1,u=8,E=8,G=-1,I=b.video.F>>3;for(c=0;c=d&&(E=d,g=!0);break; -case "p":0<=d&&3>=d&&(G=d);break;case "w":d=b.bb&&(f-=b.bb);a="";for(c=0;cG?q(T):qa(T>>(G<<3),8));g&&(f+=I-E);a&&(a+="\n");a+=J}a&&b.ba.P(a);b.B=f}else b.ba.P("no buffer")}else e.ba.P("BIOSMODE: "+r(e.oa)),b=e.C,Ir(b,"CRTC",b.ec,b.Wa,b.hg),b.La>=aq&&(Ir(b," GRC",b.yd,b.xd,b.Vg),Ir(b," SEQ",b.zd,b.$d,b.Wg),Ir(b," ATC",b.wd,b.Cc, -b.Ug),Ir(b," ATCINDX",b.wd),b.ba.P(" ATCDATA: "+b.Le),Ir(b," FEAT",b.Qf),Ir(b," MISC",b.bf),Ir(b," STATUS0",b.Jg)),Ir(b," STATUS1",b.fa),b.La!=os&&b.La!=ls||Ir(b," MODEREG",b.Xc),b.La==ls&&Ir(b," COLOR",b.$e),b.La>=aq&&(b.ba.P(" LATCHES: "+q(b.tb)),b.ba.P(" ACCESS: "+q(b.ug,4)),b.ba.P("Use 'dump video [addr]' to dump video memory"));else e.ba.P("no active video card")})}if((this.B=Wb(a,"Keyboard"))&&this.O){for(var f in this.na)0=d&&(G=d);break;case "w":d=b.bb&&(f-=b.bb);a="";for(c=0;cG?q(T):qa(T>>(G<<3),8));g&&(f+=I-E);a&&(a+="\n");a+=J}a&&b.ba.P(a);b.B=f}else b.ba.P("no buffer")}else e.ba.P("BIOSMODE: "+r(e.oa)),b=e.C,Ir(b,"CRTC",b.ec,b.Wa,b.gg),b.La>=aq&&(Ir(b," GRC",b.yd,b.xd,b.Ug),Ir(b," SEQ",b.zd,b.$d,b.Vg),Ir(b," ATC",b.wd,b.Cc, +b.Tg),Ir(b," ATCINDX",b.wd),b.ba.P(" ATCDATA: "+b.Ke),Ir(b," FEAT",b.Pf),Ir(b," MISC",b.af),Ir(b," STATUS0",b.Ig)),Ir(b," STATUS1",b.fa),b.La!=os&&b.La!=ls||Ir(b," MODEREG",b.Xc),b.La==ls&&Ir(b," COLOR",b.Ze),b.La>=aq&&(b.ba.P(" LATCHES: "+q(b.tb)),b.ba.P(" ACCESS: "+q(b.tg,4)),b.ba.P("Use 'dump video [addr]' to dump video memory"));else e.ba.P("no active video card")})}if((this.B=Wb(a,"Keyboard"))&&this.O){for(var f in this.na)0c&&(a=Math.round(c/b*100)+"%")}this.Tc?(this.O.style.width=a,this.O.style.width=a,this.O.style.display="block",this.O.style.margin="auto"):(this.N.style.width=a,this.N.style.height="auto");this.N.style.backgroundColor="black";this.N.Ke();a=!0}this.D&&this.D.focus()}return a}; -function js(a,b){!b&&a.N&&(a.Tc?a.O.style.width=a.O.style.height="":a.N.style.width=a.N.style.height="");Lb(a,"notifyFullScreen("+b+")",!0);a.B&&(a.B.eh=b)}l.ne=function(a){var b=!1;this.D&&(a?this.D.ne&&(this.D.ne(),this.G&&this.G.Jf(!0),b=!0):this.D.el&&(this.D.el(),this.G&&this.G.Jf(!1),b=!0),this.D&&this.D.focus());return b};l.Jf=function(a){this.G&&(this.G.Jf(a),this.B&&(this.B.eh=a));var b=this.na.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":this.Dd)}; -function vs(a,b){var c=a.D;c&&!a.tc&&(c.addEventListener("touchstart",function(b){zs(a,b,!0)},!1),c.addEventListener("touchmove",function(b){zs(a,b)},!0),c.addEventListener("touchend",function(b){zs(a,b,!1)},!1),a.tc=b,a.hb=a.ib=a.kd=-1,a.lc=!1,a.Db=null,a.kc=!1,a.Pd=function(){a.kc=!0;a.G.Vd(As,!0)})}l.Cg=function(a){this.B&&this.B.Cg(a)}; +l.Cb=function(a,b,c){var d=this;if(!this.na[b])switch(this.na[b]=c,b){case "fullScreen":return this.N&&this.N.Je?c.onclick=function(){d.Je()}:c.parentNode.removeChild(c),!0;case "lockPointer":return this.Dd=c.textContent,this.D&&this.D.me?c.onclick=function(){d.me(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){ys(d,!0)},!0}return!1}; +l.Je=function(){var a=!1;if(this.N){if(this.N.Je){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Z/this.la;b>c&&(a=Math.round(c/b*100)+"%")}this.Tc?(this.O.style.width=a,this.O.style.width=a,this.O.style.display="block",this.O.style.margin="auto"):(this.N.style.width=a,this.N.style.height="auto");this.N.style.backgroundColor="black";this.N.Je();a=!0}this.D&&this.D.focus()}return a}; +function js(a,b){!b&&a.N&&(a.Tc?a.O.style.width=a.O.style.height="":a.N.style.width=a.N.style.height="");Lb(a,"notifyFullScreen("+b+")",!0);a.B&&(a.B.dh=b)}l.me=function(a){var b=!1;this.D&&(a?this.D.me&&(this.D.me(),this.G&&this.G.If(!0),b=!0):this.D.dl&&(this.D.dl(),this.G&&this.G.If(!1),b=!0),this.D&&this.D.focus());return b};l.If=function(a){this.G&&(this.G.If(a),this.B&&(this.B.dh=a));var b=this.na.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":this.Dd)}; +function vs(a,b){var c=a.D;c&&!a.tc&&(c.addEventListener("touchstart",function(b){zs(a,b,!0)},!1),c.addEventListener("touchmove",function(b){zs(a,b)},!0),c.addEventListener("touchend",function(b){zs(a,b,!1)},!1),a.tc=b,a.hb=a.ib=a.kd=-1,a.lc=!1,a.Db=null,a.kc=!1,a.Pd=function(){a.kc=!0;a.G.Vd(As,!0)})}l.Bg=function(a){this.B&&this.B.Bg(a)}; function zs(a,b,c){var d,e,f=0,g=0;e=a.O;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.Z/a.O.offsetWidth,k=a.la/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(a.tc==xs)d=d/(a.Z/3)|0,e=e/(a.la/3)|0,1!=e?e?uq(a.B,1040,!0):uq(a.B,1038,!0):1!=d&&(d?uq(a.B,1039,!0):uq(a.B,1037,!0));else if(a.G){g=a.lc;f=b.timeStamp-a.kd;!0===c?(a.lc=500f){a.G.Vd(As,!0);a.G.Vd(As,!1);return}}if(c||0>a.hb||0>a.ib)a.hb=d,a.ib=e;c=Math.round(d-a.hb);b=Math.round(e-a.ib);a.hb=d;a.ib=e;a.G.uf(c,b,a.hb,a.ib)}}l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0}; +a.Db=setTimeout(a.Pd,500)):null!=a.Db&&(clearTimeout(a.Db),a.Db=null);void 0===c&&(a.lc=!1);g||b.preventDefault();if(!1===c){a.kc?(a.G.Vd(As,!1),a.kc=!1,b=!0):b=!1;if(b)return;if(200>f){a.G.Vd(As,!0);a.G.Vd(As,!1);return}}if(c||0>a.hb||0>a.ib)a.hb=d,a.ib=e;c=Math.round(d-a.hb);b=Math.round(e-a.ib);a.hb=d;a.ib=e;a.G.tf(c,b,a.hb,a.ib)}}l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0}; l.reset=function(){var a=!0,b=0;this.V&&(b=+Sl(this.V,gl,void 0));this.ca||(this.La=b==Tl?os:ls);this.da=Bs;switch(this.La){case cq:b=7;break;case aq:var c=Cs[this.xb];c&&(b=c[0]);b||(b=4);break;case os:b=Tl;this.da=Ds;break;default:b=2}this.ga!==b&&(this.ga=b,a=!0);this.C=null;this.Y=this.Kb=new jr(this,os);this.K=this.yb=new jr(this,ls);this.La>1&255,d=d>>8&~Hs,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?Is|Js:Ks|Ls)|Ms&d>>8);Jc(this.ka,b,c|d<<8)}ys(this,!0)}};function Es(a){a.A.bf&qr?(a.Y=a.Kb,a.K=a.A):(a.Y=a.A,a.K=a.yb)}l.save=function(){var a=new Wf(this);a.set(0,Hr(this.Kb));a.set(1,Hr(this.yb));a.set(2,[this.ga,this.da,this.oa]);a.set(3,Hr(this.A));return a.data()}; +this.C.bb+this.Xa;for(b=this.C.bb;b>1&255,d=d>>8&~Hs,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?Is|Js:Ks|Ls)|Ms&d>>8);Jc(this.ka,b,c|d<<8)}ys(this,!0)}};function Es(a){a.A.af&qr?(a.Y=a.Kb,a.K=a.A):(a.Y=a.A,a.K=a.yb)}l.save=function(){var a=new Wf(this);a.set(0,Hr(this.Kb));a.set(1,Hr(this.yb));a.set(2,[this.ga,this.da,this.oa]);a.set(3,Hr(this.A));return a.data()}; l.restore=function(a){var b=a[2];this.ga=b[0];this.da=b[1];this.oa=b[2];this.C=null;this.Y=this.Kb=new jr(this,os,a[0]);this.K=this.yb=new jr(this,ls,a[1]);this.A=new jr(this,this.La,a[3],this.qd);this.A.rc&&Es(this);Fs(this);if(!Ns(this))return!1;Os(this);return!0}; -function ks(a,b,c,d){if(d)a.Fa("Unable to load font ROM (error "+d+": "+b+")");else{ob(a.ye,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){gb("Empty font ROM: "+b);return}if(1==f.length){gb(f[0]);return}if(8192==f.length)bq(a,f,[6144,0]);else if(2048==f.length)bq(a,f,[0]);else{a.Fa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Fa("Font ROM data error: "+g.message);return}(a.L||a.ba)&&Ib(a)}} -function Ps(a,b){if(1==b)return a.ha[0]=Qs[Ks],a.ha[1]=Qs[Is],a.ha;if(2==b){var c=a.C.$e;if(a.C===a.A){var d=a.A.Cc[0],c=d&7;d&16&&(c|=8);18!=a.A.Cc[1]&&(c|=32)}a.ha[0]=Qs[c&15];c=c&32?Rs:Ss;for(d=0;de;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ha[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.Cc[15]?c.Cc:Ts;for(e=0;16>e;e++)f=b[e]&63,k?(f|= +function ks(a,b,c,d){if(d)a.Fa("Unable to load font ROM (error "+d+": "+b+")");else{ob(a.xe,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){gb("Empty font ROM: "+b);return}if(1==f.length){gb(f[0]);return}if(8192==f.length)bq(a,f,[6144,0]);else if(2048==f.length)bq(a,f,[0]);else{a.Fa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Fa("Font ROM data error: "+g.message);return}(a.L||a.ba)&&Ib(a)}} +function Ps(a,b){if(1==b)return a.ha[0]=Qs[Ks],a.ha[1]=Qs[Is],a.ha;if(2==b){var c=a.C.Ze;if(a.C===a.A){var d=a.A.Cc[0],c=d&7;d&16&&(c|=8);18!=a.A.Cc[1]&&(c|=32)}a.ha[0]=Qs[c&15];c=c&32?Rs:Ss;for(d=0;de;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ha[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.Cc[15]?c.Cc:Ts;for(e=0;16>e;e++)f=b[e]&63,k?(f|= (c.Cc[20]&12)<<4,c.Cc[16]&128&&(f&=-49,f|=(c.Cc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ha[e]=[g,h,f,255]}a.Ga=!0}return a.ha}function bq(a,b,c,d){a.wb=b;a.Ta=c;a.Da=d} function Fs(a,b){var c=!1;if(window&&a.wb&&(!b||a.I)){b=0;var d=a.Da?a.Da:8,e=Ps(a);null!=a.Ta[0]&&Us(a,Vs,a.Ta[0],b,d,8,a.wb,e)&&(c=!0);b=a.Da?0:2048;d=a.Da?a.Da:9;null!=a.Ta[1]&&(Us(a,Ws,a.Ta[1],b,d,14,a.wb,Xs,Ys)&&(c=!0),a.Da&&Us(a,a.La,a.Ta[1],0,a.Da,14,a.wb,e)&&(c=!0))}return c}function Us(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(Zs(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Cd&&Zs(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m} -function Zs(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,v=a.va[b],u=16>h.length?h.length:16;v||(v={Fc:e<ua||!T?ua:8,ib=cb.createImageData(m.Fc,m.Gc);for(Sa=0;256>Sa;Sa++){for(db=0;db=ua-2,Ld=ca[db>(8<=rb&&192<=Sa&&223>=Sa?7:rb)?E:xb;$s(ib,vg,ef,wg);I&&$s(ib,vg+1,ef,wg)}cb.putImageData(ib,(Sa&15)*m.Fc,(Sa>>4)*m.Gc)}m.Ce[G]="#"+q(E[0],2)+q(E[1],2)+q(E[2],2);m.Ri[G]=E;m.Tg[G]=za;m=!0}}a.va[b]=v;return m}function at(a){0a.Aa&&(a.Aa=0):a.Aa=-1} +function Zs(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,v=a.va[b],u=16>h.length?h.length:16;v||(v={Fc:e<ua||!T?ua:8,ib=cb.createImageData(m.Fc,m.Gc);for(Sa=0;256>Sa;Sa++){for(db=0;db=ua-2,Ld=ca[db>(8<=rb&&192<=Sa&&223>=Sa?7:rb)?E:xb;$s(ib,vg,ff,wg);I&&$s(ib,vg+1,ff,wg)}cb.putImageData(ib,(Sa&15)*m.Fc,(Sa>>4)*m.Gc)}m.Be[G]="#"+q(E[0],2)+q(E[1],2)+q(E[2],2);m.Qi[G]=E;m.Sg[G]=za;m=!0}}a.va[b]=v;return m}function at(a){0a.Aa&&(a.Aa=0):a.Aa=-1} function Os(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.C.Wa[b])return;var c=a.C.Wa[10],b=c&31,d=a.C.Wa[11]&31,e=a.C.Wa[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)bt(a);else{c=a.C.Wa[15]+((a.C.Wa[14]&63)<<8);a.aa!=c&&(bt(a),a.aa=c);d=d-b+1;if(a.md!=b||a.Hc!=d)a.md=b,a.Hc=d;a.za=e+1;at(a)}}} function bt(a){if(0<=a.aa){if(void 0!==a.M){var b=ct<<8,c=a.M[a.aa];if(c&b){var c=c&~b,b=a.aa%a.F,d=a.aa/a.F|0;a.I&&a.va[a.I]&&(a.Ca&&dt(a,b,d,c,a.Ca),dt(a,b,d,c));a.M[a.aa]=c}}a.aa=-1}} function et(a){var b,c=a.C;a.Pc=!1;var d=c.xd[5];if(null!=d){b=tr;var e=vr,f=c.xd[3]&31;switch(d&3){case 0:if(f){e=vr|32;switch(f&24){case 8:e=vr|96;break;case 16:e=vr|160;break;case 24:e=vr|224}c.Qc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.La==cq&&(e=3,c.Qc=f&7)}d&8&&(b=1280);c=c.$d[4];null!=c&&(c&4||(b|=ur,e|=wr),d&64&&(c&8&&(b|=16384,e|=4),a.Pc=!0));b|=e}return b} -function ft(a,b){var c=a.C;return c&&null!=b&&b!=c.ug?(c.Lg(b),a.ka.Lg(c.bb,c.Ob,c.gh(),!0),!0):!1} +function ft(a,b){var c=a.C;return c&&null!=b&&b!=c.tg?(c.Kg(b),a.ka.Kg(c.bb,c.Ob,c.fh(),!0),!0):!1} function Ns(a,b){var c,d=a.oa,e=a.C;if(e)if(e.La==os)d=Ds;else if(e.La>=aq){var d=null,f=e.qd>>2,g=32768=e.Wa[Vr]?kt:lt:mt:g&128|| 350>f?d=m?nt:ot:480<=f&&(d=a.ga==Tl?pt:qt):d=m?7-d:rt:d-=m?2:0);c=et(a)}}else e.Xc&8&&(e.Xc&2?(d=e.Xc&16?rt:st,e.Xc&4||--d):(d=e.Xc&1?Bs:tt,e.Xc&4&&--d));else a.oa=null,null==d&&(d=a.da);if(!Gs(a,d,b))return!1;ft(a,c);return!0} function Gs(a,b,c){if(null!=b&&(b!=a.oa||c)){a.Ad=0;a.oa=b;a.Ga=!1;b=a.C||(b==Ds?a.Y:a.K);if(b!=a.C||b.bb!=a.bb||b.Ob!=a.Ob){bt(a);if(a.bb){if(!Bc(a.ka,a.bb,a.Ob))return!1;a.C&&(a.C.rc=!1)}a.C=b;b.rc=!0;a.bb=b.bb;a.Ob=b.Ob;if(!oc(a.ka,b.bb,b.Ob,3,b===a.A?b:null))return!1}a:{a.I=0;a.F=a.Fb;a.J=a.sc;a.Ma=a.F;a.Eb=hs[Ds][2];b=0;if(c=hs[a.oa])a.F=c[0],a.J=c[1],a.Eb=c[2],b=c[3],a.I=c[4],4!=a.ga&&7!=a.ga||a.C!==a.A||a.I!=Vs||(7==(a.A.Wa[es]&31)?a.J=350>Jr(a.A,Vr)?43:50:a.I=a.La);a.Wc=a.F*a.J|0;a.Vc=a.Wc/ a.Eb|0;a.Xa=a.Vc;a.Pb=0;void 0!==b&&(a.Xa=(a.Xa<<1)+b|0,a.Pb=a.Xa+b>>1);if(a.va.length){a.qa=a.Z/a.F|0;a.ta=a.la/a.J|0;if(a.I){b=a.va[a.I];if(!b)break a;c=a.va[a.I<<1];a.Uc&&80==a.F?c&&a.qa>=3*c.Fc>>2&&(a.I<<=1,b=c):(c&&a.qa>=c.Fc&&(a.I<<=1,b=c),a.Uc||(a.qa=b.Fc,a.ta=b.Gc));a.Ya=a.eb=0;b&&(a.Ya=a.F*b.Fc,a.eb=a.J*b.Gc)}else a.qa=a.ta=1,a.Ya=a.F,a.eb=a.J;a.Ha=a.L.createImageData(a.Ya,a.eb);a.Ba=document.createElement("canvas");a.Ba.width=a.Ya;a.Ba.height=a.eb;a.Ca=a.Ba.getContext("2d");a.vc=a.zc=0; a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0>1,a.Qb-=b);0>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function vt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);vt(a)} -function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.kf&&(d=h.kf[d]);var k=g>>4&15;h.kf&&(k=h.kf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Ce[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Ce[k],a.L.fillRect(b,c,a.qa,a.ta));g&Ut&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Tg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Tg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Ce[d],e.fillRect(b, -c+f,h.Fc,g)):(a.za&&a.za!==a.ta&&(f=f*a.ta/a.za|0,g=g*a.ta/a.za|0),a.L.fillStyle=h.Ce[d],a.L.fillRect(b,c+f,a.qa,g)))} -function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)vt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.bb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ze&&d.Ze=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&& -(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Ut<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Ut&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b, +c+f,h.Fc,g)):(a.za&&a.za!==a.ta&&(f=f*a.ta/a.za|0,g=g*a.ta/a.za|0),a.L.fillStyle=h.Be[d],a.L.fillRect(b,c+f,a.qa,g)))} +function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)vt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.bb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&& +(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Ut<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c>8|(u&255)<<8;var J=e,T=16;m>=h))>>(T-=h);$s(a.Ha,m++,p,b[ua])}m>E&&(E=m);p=I&&(I=p+1)}k+=2;d++;if(m>=a.F){m=0;p+=2;if(p>a.J)break;p==a.J&&(p=1,k=c+a.Pb)}}a.ma=!0; va.F?a.Ma-a.F-u>>3:0;c>=8;b>v&&(v=b);m=G&&(G=m+1)}c+=I;if(b>=a.F){b=0;if(++m>a.J)break;c+=J}}u||(a.ma=!0);pa.F?a.Ma-a.F-G>>3:0;cJ&&(T=J)):(u<<=G,T-=G,a.ma=!1):(a.ma&&u===a.M[d]?(h+=T,T=0):a.M[d]=u,d++);if(T){hp&&(p=h);b=E&&(E=b+1)}if(h>=a.F){h=0;if(++b>a.J)break;c+=I}}G||(a.ma=!0);ma&&(b.xh=a,a=-a|0);a%b.sh>b.nn&&(c|=1);a%b.vh>b.pn&&(c|=9);b.gi=a/b.vh|0;return c}l.Dm=function(a,b){return Yt(this,this.Y,a,b)};l.ho=function(a,b,c){var d=this.Y;d.Gg=d.ec;d.ec=b&31;w(this,a,b,c,"CRTC.INDX")};l.Cm=function(a,b){return Zt(this,this.Y,a,b)};l.fo=function(a,b,c){$t(this,this.Y,a,b,c)};l.Em=function(a,b){return au(this,this.Y,b)};l.io=function(a,b,c){a=this.Y;w(this,a.port+4,b,c,"MODE");a.Xc=b;Ns(this,!1)}; -l.Fm=function(a,b){return bu(this,this.Y,b)};l.Nk=function(a,b,c){this.A.Qf=this.A.Qf&-4|b&3;w(this,a,b,c,"FEAT")};l.bm=function(a,b){a=this.A.wd;b&&!t(this)||w(this,960,null,b,"ATC.INDX",a);return a};l.sl=function(a,b){a=this.A.Cc[this.A.wd&31];b&&!t(this)||w(this,960,null,b,"ATC."+this.A.Ug[this.A.wd&31],a);return a}; -l.Mk=function(a,b,c){var d=this.A,e=d.wd&32;if(d.Le){d.Le=!1;var f=d.wd&31;if(16<=f||!e)if(cu||d.Cc[f]!==b)c&&!t(this)||w(this,a,b,c,"ATC."+d.Ug[f]),d.Cc[f]=b,ut(this,!1)}else d.wd=b,w(this,a,b,c,"ATC.INDX"),d.Le=!0,b&32&&!e&&Fs(this,!0)&&ys(this,!0),a=(d.Wa[12]<<8)+d.Wa[13]|0,d.vd!=a&&(d.vd=a,ut(this)),d.Ze=0}; -l.Pm=function(a,b){a=0;if(this.La==aq)a=3-((this.A.bf&12)>>2),a=(this.xb&1<>this.A.xc&63;b&&!t(this)||w(this,969,null,b,"DAC.DATA["+r(this.A.dd)+"]["+r(this.A.xc)+"]",a);this.A.xc+=6;12a&&(b.wh=a,a=-a|0);a%b.rh>b.mn&&(c|=1);a%b.uh>b.on&&(c|=9);b.fi=a/b.uh|0;return c}l.Cm=function(a,b){return Yt(this,this.Y,a,b)};l.fo=function(a,b,c){var d=this.Y;d.Fg=d.ec;d.ec=b&31;w(this,a,b,c,"CRTC.INDX")};l.Bm=function(a,b){return Zt(this,this.Y,a,b)};l.eo=function(a,b,c){$t(this,this.Y,a,b,c)};l.Dm=function(a,b){return au(this,this.Y,b)};l.ho=function(a,b,c){a=this.Y;w(this,a.port+4,b,c,"MODE");a.Xc=b;Ns(this,!1)}; +l.Em=function(a,b){return bu(this,this.Y,b)};l.Mk=function(a,b,c){this.A.Pf=this.A.Pf&-4|b&3;w(this,a,b,c,"FEAT")};l.am=function(a,b){a=this.A.wd;b&&!t(this)||w(this,960,null,b,"ATC.INDX",a);return a};l.rl=function(a,b){a=this.A.Cc[this.A.wd&31];b&&!t(this)||w(this,960,null,b,"ATC."+this.A.Tg[this.A.wd&31],a);return a}; +l.Lk=function(a,b,c){var d=this.A,e=d.wd&32;if(d.Ke){d.Ke=!1;var f=d.wd&31;if(16<=f||!e)if(cu||d.Cc[f]!==b)c&&!t(this)||w(this,a,b,c,"ATC."+d.Tg[f]),d.Cc[f]=b,ut(this,!1)}else d.wd=b,w(this,a,b,c,"ATC.INDX"),d.Ke=!0,b&32&&!e&&Fs(this,!0)&&ys(this,!0),a=(d.Wa[12]<<8)+d.Wa[13]|0,d.vd!=a&&(d.vd=a,ut(this)),d.Ye=0}; +l.Om=function(a,b){a=0;if(this.La==aq)a=3-((this.A.af&12)>>2),a=(this.xb&1<>this.A.xc&63;b&&!t(this)||w(this,969,null,b,"DAC.DATA["+r(this.A.dd)+"]["+r(this.A.xc)+"]",a);this.A.xc+=6;12Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ma().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ua("aspect"));f&&.3<=f&&3.33>=f&&(Za("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ta("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Q(d,e,g,f,c);yb(d,c)}}); function du(a){mb.call(this,"ParallelPort",a,4194304);this.G=a.adapter;switch(this.G){case 1:this.D=956;this.C=7;break;case 2:this.D=888;this.C=7;break;case 3:this.D=632;this.C=5;break;default:gb("Unrecognized parallel adapter #"+this.G);return}this.A=this.B=null;a=a.binding;"console"==a?this.B="":wb(this,a,eu)}ba(du,mb);l=du.prototype;l.Cb=function(a,b,c){switch(b){case eu:return this.na[b]=this.A=c,!0}return!1}; -l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.ba=d;this.V=Wb(a,"ChipSet");Nc(b,this,fu,this.D);Rc(b,this,gu,this.D);Ib(this)};l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};l.reset=function(){hu(this)};l.save=function(){var a=new Wf(this),b=0,c=[];c[b++]=this.F;c[b++]=this.Mb;c[b]=this.nf;a.set(0,c);return a.data()};l.restore=function(a){return hu(this,a[0])}; -function hu(a,b){var c=0;b||(b=[0,0,0]);a.F=b[c++];a.Mb=b[c++];a.nf=b[c];return!0}l.qm=function(a,b){var c=this.F;w(this,a,null,b,"DATA",c);return c};l.Om=function(a,b){var c=this.Mb;w(this,a,null,b,"STAT",c);return c};l.mm=function(a,b){var c=this.nf;w(this,a,null,b,"CTRL",c);return c}; -l.Sn=function(a,b,c){w(this,a,b,c,"DATA");this.F=b;this.Mb|=iu;a=!1;Lb(this,"transmitByte("+r(b)+")");this.A&&(8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0);if(null!=this.B){if(10==b||1024<=this.B.length)this.P(this.B),this.B="";10!=b&&(this.B+=String.fromCharCode(b));a=!0}a&&(this.Mb&=~iu);ju(this)};l.Nn=function(a,b,c){w(this,a,b,c,"CTRL");this.nf=b;ju(this)}; -function ju(a){a.V&&a.C&&(a.nf&ku&&!(a.Mb&iu)?gh(a.V,a.C):eh(a.V,a.C))}var eu="buffer",iu=64,ku=16,fu={0:du.prototype.qm,1:du.prototype.Om,2:du.prototype.mm},gu={0:du.prototype.Sn,2:du.prototype.Nn};$a(function(){for(var a=zb(document,"pcx86","parallel"),b=0;b=b)a.preventDefault&&a.preventDefault(),64=b)a.preventDefault&&a.preventDefault(),64");if(2==c.length){var d=Ba(c[0]);if(d!=this.ce)return;c=Ba(c[1]);if(this.D=tb(c)){var e=this.D.exports;if(e){var f=e.connect;f&&f.call(this.D,this.O);if(this.aa=e.receiveData){this.O=a;this.Y=e.receiveStatus;this.status("Connected "+this.ye+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}}; -l.Xb=function(a,b){if(!b)if(this.Aj(this.O),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};l.reset=function(){ru(this)};l.save=function(){var a=new Wf(this),b=0,c=[];c[b++]=this.ga;c[b++]=this.la;c[b++]=this.L;c[b++]=this.N;c[b++]=this.G;c[b++]=this.C;c[b++]=this.Z;c[b++]=this.B;c[b++]=this.A;c[b]=this.J;a.set(0,c);return a.data()};l.restore=function(a){return ru(this,a[0])}; -function ru(a,b){var c=0;b||(b=[0,0,su,0,tu,0,0,uu|vu,a.qa,[]]);a.ga=b[c++];a.la=b[c++];a.L=b[c++];a.N=b[c++];a.G=b[c++];a.C=b[c++];a.Z=b[c++];a.B=b[c++];a.A=b[c++];a.J=b[c];return!0}l.Pf=function(a){if("number"==typeof a)this.J.push(a);else if("string"==typeof a)for(var b=0;b>8:this.N;w(this,a,null,b,this.C&Bu?"DLM":"IER",c);return c};l.ym=function(a,b){var c=this.G;w(this,a,null,b,"IIR",c);return c};l.zm=function(a,b){var c=this.C;w(this,a,null,b,"LCR",c);return c};l.Bm=function(a,b){var c=this.Z;w(this,a,null,b,"MCR",c);return c}; -l.Am=function(a,b){var c=this.B;w(this,a,null,b,"LSR",c);return c};l.Gm=function(a,b){var c=this.A;this.A&=~(xu|yu);w(this,a,null,b,"MSR",c);return c}; -l.qo=function(a,b,c){w(this,a,b,c,this.C&Bu?"DLL":"THR");if(this.C&Bu)this.L=this.L&-256|b;else{this.la=b;this.B&=~(uu|vu);a=!1;Lb(this,"transmitByte("+r(b)+")");this.aa&&this.aa.call(this.D,b)&&(a=!0);if(this.F){if(13==b)this.K=0;else if(8==b)this.F.value=this.F.value.slice(0,-1),0":String.fromCharCode(b);a=d.length;32>b&&1==a&&(a=0);9==b&&(b=this.oa||8,a=b-this.K%b,this.oa&&(d=Aa("",a)));this.ma&&!this.K&&a&&(d=String.fromCharCode(this.ma)+ -d);this.F.value+=d;this.F.scrollTop=this.F.scrollHeight;this.K+=a}a=!0}else if(null!=this.I){if(10==b||1024<=this.I.length)this.P(this.I),this.I="";10!=b&&(this.I+=String.fromCharCode(b));a=!0}a&&(this.B=this.B|uu|vu)}};l.bo=function(a,b,c){w(this,a,b,c,this.C&Bu?"DLM":"IER");this.C&Bu?this.L=this.L&255|b<<8:this.N=b};l.co=function(a,b,c){w(this,a,b,c,"LCR");this.C=b}; -l.eo=function(a,b,c){var d=b^this.Z;w(this,a,b,c,"MCR");this.Z=b;d&(Cu|Du)&&this.Y&&(a=0,this.O?(a|=b&Du?32:0,a|=b&Cu?320:0):(a|=b&Du?16:0,a|=b&Cu?1048576:0),this.Y.call(this.D,a))};function zu(a){var b=-1;a.B&Au&&a.N&Eu?b=Fu:a.A&(xu|yu)&&a.N&Gu&&(b=Hu);0<=b?(a.G&=~(tu|Iu),a.G|=b,a.V&&a.M&&gh(a.V,a.M,100)):(a.G|=tu,a.V&&a.M&&eh(a.V,a.M))} -var ou="buffer",su=384,Eu=1,Gu=8,tu=1,Fu=4,Hu=0,Iu=6,Bu=128,Cu=1,Du=2,Au=1,uu=32,vu=64,xu=1,yu=2,mu=16,nu=32,pu={0:lu.prototype.Lm,1:lu.prototype.xm,2:lu.prototype.ym,3:lu.prototype.zm,4:lu.prototype.Bm,5:lu.prototype.Am,6:lu.prototype.Gm},qu={0:lu.prototype.qo,1:lu.prototype.bo,3:lu.prototype.co,4:lu.prototype.eo};$a(function(){for(var a=zb(document,"pcx86","serial"),b=0;b");if(2==c.length){var d=Ba(c[0]);if(d!=this.be)return;c=Ba(c[1]);if(this.D=tb(c)){var e=this.D.exports;if(e){var f=e.connect;f&&f.call(this.D,this.O);if(this.aa=e.receiveData){this.O=a;this.Y=e.receiveStatus;this.status("Connected "+this.xe+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}}; +l.Xb=function(a,b){if(!b)if(this.zj(this.O),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};l.reset=function(){ru(this)};l.save=function(){var a=new Wf(this),b=0,c=[];c[b++]=this.ga;c[b++]=this.la;c[b++]=this.L;c[b++]=this.N;c[b++]=this.G;c[b++]=this.C;c[b++]=this.Z;c[b++]=this.B;c[b++]=this.A;c[b]=this.J;a.set(0,c);return a.data()};l.restore=function(a){return ru(this,a[0])}; +function ru(a,b){var c=0;b||(b=[0,0,su,0,tu,0,0,uu|vu,a.qa,[]]);a.ga=b[c++];a.la=b[c++];a.L=b[c++];a.N=b[c++];a.G=b[c++];a.C=b[c++];a.Z=b[c++];a.B=b[c++];a.A=b[c++];a.J=b[c];return!0}l.Of=function(a){if("number"==typeof a)this.J.push(a);else if("string"==typeof a)for(var b=0;b>8:this.N;w(this,a,null,b,this.C&Bu?"DLM":"IER",c);return c};l.xm=function(a,b){var c=this.G;w(this,a,null,b,"IIR",c);return c};l.ym=function(a,b){var c=this.C;w(this,a,null,b,"LCR",c);return c};l.Am=function(a,b){var c=this.Z;w(this,a,null,b,"MCR",c);return c}; +l.zm=function(a,b){var c=this.B;w(this,a,null,b,"LSR",c);return c};l.Fm=function(a,b){var c=this.A;this.A&=~(xu|yu);w(this,a,null,b,"MSR",c);return c}; +l.po=function(a,b,c){w(this,a,b,c,this.C&Bu?"DLL":"THR");if(this.C&Bu)this.L=this.L&-256|b;else{this.la=b;this.B&=~(uu|vu);a=!1;Lb(this,"transmitByte("+r(b)+")");this.aa&&this.aa.call(this.D,b)&&(a=!0);if(this.F){if(13==b)this.K=0;else if(8==b)this.F.value=this.F.value.slice(0,-1),0":String.fromCharCode(b);a=d.length;32>b&&1==a&&(a=0);9==b&&(b=this.oa||8,a=b-this.K%b,this.oa&&(d=Aa("",a)));this.ma&&!this.K&&a&&(d=String.fromCharCode(this.ma)+ +d);this.F.value+=d;this.F.scrollTop=this.F.scrollHeight;this.K+=a}a=!0}else if(null!=this.I){if(10==b||1024<=this.I.length)this.P(this.I),this.I="";10!=b&&(this.I+=String.fromCharCode(b));a=!0}a&&(this.B=this.B|uu|vu)}};l.ao=function(a,b,c){w(this,a,b,c,this.C&Bu?"DLM":"IER");this.C&Bu?this.L=this.L&255|b<<8:this.N=b};l.bo=function(a,b,c){w(this,a,b,c,"LCR");this.C=b}; +l.co=function(a,b,c){var d=b^this.Z;w(this,a,b,c,"MCR");this.Z=b;d&(Cu|Du)&&this.Y&&(a=0,this.O?(a|=b&Du?32:0,a|=b&Cu?320:0):(a|=b&Du?16:0,a|=b&Cu?1048576:0),this.Y.call(this.D,a))};function zu(a){var b=-1;a.B&Au&&a.N&Eu?b=Fu:a.A&(xu|yu)&&a.N&Gu&&(b=Hu);0<=b?(a.G&=~(tu|Iu),a.G|=b,a.V&&a.M&&gh(a.V,a.M,100)):(a.G|=tu,a.V&&a.M&&eh(a.V,a.M))} +var ou="buffer",su=384,Eu=1,Gu=8,tu=1,Fu=4,Hu=0,Iu=6,Bu=128,Cu=1,Du=2,Au=1,uu=32,vu=64,xu=1,yu=2,mu=16,nu=32,pu={0:lu.prototype.Km,1:lu.prototype.wm,2:lu.prototype.xm,3:lu.prototype.ym,4:lu.prototype.Am,5:lu.prototype.zm,6:lu.prototype.Fm},qu={0:lu.prototype.po,1:lu.prototype.ao,3:lu.prototype.bo,4:lu.prototype.co};$a(function(){for(var a=zb(document,"pcx86","serial"),b=0;ba.F||0>a.G)a.F=b.clientX,a.G=b.clientY;a.M?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.F,d=b.clientY-a.G);a.F=b.clientX;a.G=b.clientY;a.uf(c,d,a.F,a.G)}} -l.Vd=function(a,b){if(this.rc&&this.H&&this.H.ea.vb){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case As:if(this.K!=b){this.K=b;Pu(this,c);return}break;case Qu:if(this.L!=b){this.L=b;Pu(this,c);return}}Lb(this,c+": ignored")}};l.uf=function(a,b,c,d){this.rc&&this.H&&this.H.ea.vb&&(a||b)&&(this.I=a,this.J=b,Pu(this,null,c,d))}; -function Pu(a,b,c,d){var e=64|(a.K?32:0)|(a.L?16:0)|(a.J&192)>>4|(a.I&192)>>6,f=a.I&63,g=a.J&63;t(a,8388608)&&Lb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+r(e)+","+r(f)+","+r(g)+"]",0,!0);a.D.Pf([e,f,g]);a.I=a.J=0} -l.ql=function(a){var b=1048592==(a&1048592);if(b){if(!this.rc){var c=!1;this.A&16||(this.reset(),Lb(this,"serial mouse reset"),c=!0);this.A&1048576||(Lb(this,"serial mouse ID requested"),c=!0);c&&(this.D.Pf([Ru,Ru]),Lb(this,"serial mouse ID sent"));Ku(this);this.rc=b}}else this.rc&&(Lb(this,"serial mouse inactive"),Lu(this),this.rc=b);this.A=a};var Ru=77,As=0,Qu=2;$a(function(){for(var a=zb(document,"pcx86","mouse"),b=0;ba.F||0>a.G)a.F=b.clientX,a.G=b.clientY;a.M?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.F,d=b.clientY-a.G);a.F=b.clientX;a.G=b.clientY;a.tf(c,d,a.F,a.G)}} +l.Vd=function(a,b){if(this.rc&&this.H&&this.H.ea.vb){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case As:if(this.K!=b){this.K=b;Pu(this,c);return}break;case Qu:if(this.L!=b){this.L=b;Pu(this,c);return}}Lb(this,c+": ignored")}};l.tf=function(a,b,c,d){this.rc&&this.H&&this.H.ea.vb&&(a||b)&&(this.I=a,this.J=b,Pu(this,null,c,d))}; +function Pu(a,b,c,d){var e=64|(a.K?32:0)|(a.L?16:0)|(a.J&192)>>4|(a.I&192)>>6,f=a.I&63,g=a.J&63;t(a,8388608)&&Lb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+r(e)+","+r(f)+","+r(g)+"]",0,!0);a.D.Of([e,f,g]);a.I=a.J=0} +l.pl=function(a){var b=1048592==(a&1048592);if(b){if(!this.rc){var c=!1;this.A&16||(this.reset(),Lb(this,"serial mouse reset"),c=!0);this.A&1048576||(Lb(this,"serial mouse ID requested"),c=!0);c&&(this.D.Of([Ru,Ru]),Lb(this,"serial mouse ID sent"));Ku(this);this.rc=b}}else this.rc&&(Lb(this,"serial mouse inactive"),Lu(this),this.rc=b);this.A=a};var Ru=77,As=0,Qu=2;$a(function(){for(var a=zb(document,"pcx86","mouse"),b=0;b>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.qb);for(c=0;cb.indexOf("/api/v1/dump")&&(a=va(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=Zu(this,b),this.pg=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):wa(b, -"/")&&(c="dir"),f=La()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.Pe?"":d)+"&format=json"));return!!Ka(f,null,!0,function(a,b,c){$u(g,a,b,c)})}; -function $u(a,b,c,d){var e=null;a.Se=!1;var f=!(!(0>d&&a.pa)||a.pa.ea.Yb);if(a.pg)d?a.controller.Fa('Unable to connect to disk "'+a.I+'" (error '+d+": "+c+")",f):(a.D=!0,av(a),e=a);else if(d)a.controller.Fa('Unable to load disk "'+a.F+'" (error '+d+": "+b+")",f);else{ob(a.controller.ye,b,c);try{if(0g&&0>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.qb);for(c=0;cb.indexOf("/api/v1/dump")&&(a=va(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=Zu(this,b),this.og=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):wa(b, +"/")&&(c="dir"),f=La()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.Oe?"":d)+"&format=json"));return!!Ka(f,null,!0,function(a,b,c){$u(g,a,b,c)})}; +function $u(a,b,c,d){var e=null;a.Re=!1;var f=!(!(0>d&&a.pa)||a.pa.ea.Yb);if(a.og)d?a.controller.Fa('Unable to connect to disk "'+a.I+'" (error '+d+": "+c+")",f):(a.D=!0,av(a),e=a);else if(d)a.controller.Fa('Unable to load disk "'+a.F+'" (error '+d+": "+b+")",f);else{ob(a.controller.xe,b,c);try{if(0g&&0c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)gb(h[0]);else{a.qb=h.length;a.kb=h[0].length;a.$a=h[0][0].length;var k=h[0][0][0];a.Na=k&&k.length||512;for(d=c=0;d>2,p=k.pattern;void 0===p&&(p=k.pattern=0);var v=k.data;if(void 0===v){var u=k.bytes;if(void 0!==u&&u.length){for(var E= m<<2,G=u.length;Gb;b++){if(128==dv(a,e,c+0,1)){d.Lf=dv(a,e,c+8,4);(e=cv(a,d.Lf))&&(f=!0);break}c+=16}if(!f)return}d.tf||(d.tf=dv(a,e,19,2)||dv(a,e,32,4),d.sf=dv(a,e,14,2),d.mh=d.sf+dv(a,e,22,2)*dv(a,e,16,1),d.wh=dv(a,e,17,2),d.wf=dv(a,e,13,1));d.kh=d.mh+((32*d.wh+(d.Na-1))/d.Na|0);d.mn=(d.tf-d.kh)/d.wf|0;d.wg=4084>=d.mn?12:16;d.Ol=12==d.wg?4086:65526;b=[];for(e=d.mh;e>=8;f+=2;if(k)for(;m--;)rv(d,f,1),254>=k?(p=k,v=rv(d,f+1),f+=3):(p=rv(d,f+3,1),v=rv(d,f+4),f+=6),d.nd[p]&&(d.nd[p].fe[h]=[v]),d.A[h]=[p,v],h++;else h+=m}(g=gv(e,uv,c))&&vv(e,g+c);g=gv(e,wv,c);h=gv(e,xv,c);g&&h&&vv(e,g,g+h)}}}} -function fv(a,b,c,d,e){var f,g=a.C.length,h=b.Na/32|0;b.eq=d+"\\";for(var k=0;kG)break;for(var I=u.kh+(G-2)*u.wf,J=0;J>3,1),d?e=16==b.wg?e<<8:c&7?e<<4:(e&15)<<8:c&7&&(e>>=4));return e} -function cv(a,b){var c=a.kb*a.$a,d=b/c|0;return dg)break;e|=g<=f)break;e+=String.fromCharCode(f)}return e}function Yu(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Pl=b;a.Ql=c;a.hd=a.Lc=0;a.Oa=!1;return a} +function av(a){var b,c,d={},e;if(a.C&&a.C.length)for(b=a.A,c=0;cb;b++){if(128==dv(a,e,c+0,1)){d.Kf=dv(a,e,c+8,4);(e=cv(a,d.Kf))&&(f=!0);break}c+=16}if(!f)return}d.sf||(d.sf=dv(a,e,19,2)||dv(a,e,32,4),d.rf=dv(a,e,14,2),d.lh=d.rf+dv(a,e,22,2)*dv(a,e,16,1),d.vh=dv(a,e,17,2),d.vf=dv(a,e,13,1));d.jh=d.lh+((32*d.vh+(d.Na-1))/d.Na|0);d.kn=(d.sf-d.jh)/d.vf|0;d.vg=4084>=d.kn?12:16;d.Nl=12==d.vg?4086:65526;b=[];for(e=d.lh;e>=8;f+=2;if(k)for(;m--;)rv(d,f,1),254>=k?(p=k,v=rv(d,f+1),f+=3):(p=rv(d,f+3,1),v=rv(d,f+4),f+=6),d.nd[p]&&(d.nd[p].ee[h]=[v]),d.A[h]=[p,v],h++;else h+=m}(g=gv(e,uv,c))&&vv(e,g+c);g=gv(e,wv,c);h=gv(e,xv,c);g&&h&&vv(e,g,g+h)}}}} +function fv(a,b,c,d,e){var f,g=a.C.length,h=b.Na/32|0;b.eq=d+"\\";for(var k=0;kG)break;for(var I=u.jh+(G-2)*u.vf,J=0;J>3,1),d?e=16==b.vg?e<<8:c&7?e<<4:(e&15)<<8:c&7&&(e>>=4));return e} +function cv(a,b){var c=a.kb*a.$a,d=b/c|0;return dg)break;e|=g<=f)break;e+=String.fromCharCode(f)}return e}function Yu(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ol=b;a.Pl=c;a.hd=a.Lc=0;a.Oa=!1;return a} function Zu(a,b){b="action=open&volume="+b+("&mode="+a.mode);b+="&chs="+a.qb+":"+a.kb+":"+a.$a+":"+a.Na;b+="&machine="+Wu(a.controller);b+="&user="+Xu(a.controller);return La()+"/api/v1/disk?"+b} function Av(a,b,c,d,e,f,g){if(a.D){var h;h="action=read&volume="+a.I;h+="&chs="+a.qb+":"+a.kb+":"+a.$a+":"+a.Na;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+Wu(a.controller));h+="&user="+Xu(a.controller);Ka(La()+"/api/v1/disk?"+h,null,f,function(h,m,p){h=[b,c,d,e,f,g];var k=!1,u=h[0],E=h[1],G=h[2],I=h[3];if(!p){m=JSON.parse(m);for(k=0;I--;){var J=a.seek(u,E,G,!0);if(!J)break;bv(J,m,k);k+=J.length;G++}k=h[4]}(h=h[5])&&h(p,k)})}else g&&g(-1,!1)} function Bv(a,b,c,d,e,f,g){if(a.D){var h={};a.N=!0;h.action="write";h.volume=a.I;h.chs=a.qb+":"+a.kb+":"+a.$a+":"+a.Na;h.addr=b+":"+c+":"+d+":"+e;h.machine=Wu(a.controller);h.user=Xu(a.controller);h.data=JSON.stringify(f);Ka(La()+"/api/v1/disk",h,g,function(f,h,p){var k=[b,c,d,e,g];f=k[0];h=k[1];var m=k[2],E=k[3],k=k[4];a.N=!1;if(0<=f&&fb&&(b=0);2E3>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}l.read=function(a,b){var c=-1;if(a&&b>2,c=(d>((b&3)<<3)&255;return c}; -l.write=function(a,b,c){if(this.Se)return!1;if(b>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Lc?f=a.hd+a.Lc&&(a.Lc+=f-(a.hd+a.Lc)+1):(a.hd=f,a.Lc=1);d[f]=d[f]&~(255<>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Lc?f=a.hd+a.Lc&&(a.Lc+=f-(a.hd+a.Lc)+1):(a.hd=f,a.Lc=1);d[f]=d[f]&~(255<=this.A.length||k>=this.A[h].length||m>=this.A[h][k].length){c="sector (CHS="+h+":"+k+":"+m+") out of range ("+ -b+" changes applied)";b=-1;break}if(this.Se){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.A[h][k][m]){for(k=h.data.length;kb?-2!=b&&this.controller.Fa("Unable to restore disk '"+this.F+": "+c):av(this);return b}; +b+" changes applied)";b=-1;break}if(this.Re){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.A[h][k][m]){for(k=h.data.length;kb?-2!=b&&this.controller.Fa("Unable to restore disk '"+this.F+": "+c):av(this);return b}; l.toJSON=function(){var a;a=0;for(var b;b=cv(this,a++);)Gv(b);a=JSON.stringify(this.A,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")}; -function Gv(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var Tu=0;function zv(a,b,c,d,e,f){this.sa=a;this.$b=c;this.Xg=d;this.bj=e;this.ge=f}function rv(a,b,c){var d;c=c||2;var e=b&511,f=cv(a.sa,a.ge[b>>9]);if(f){if(e+c<=f.length)return dv(a.sa,f,e,c);for(e=d=0;c--;)d|=rv(a,b++,1)<=e.hi&&a<=e.Jk){d=a-=e.hi;var f,g;for(g in e.fe){var h=e.fe[g],k=a-h[0];if(!k){c=this.Sf+"!"+h[1];break}b&&0>9]);if(f){if(e+c<=f.length)return dv(a.sa,f,e,c);for(e=d=0;c--;)d|=rv(a,b++,1)<=e.gi&&a<=e.Ik){d=a-=e.gi;var f,g;for(g in e.ee){var h=e.ee[g],k=a-h[0];if(!k){c=this.Rf+"!"+h[1];break}b&&0'+b+"");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.na[b]=c,c.onchange=function(){var a=oa(c.value,10);null!=a&&Iv(d,a)},!0;case "loadDisk":return this.na[b]=c,c.onclick=function(){var a=d.na.listDisks;a&&Jv(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.M){c.parentNode.removeChild(c);break}this.na[b]=c;c.onclick=function(){var a=d.na.listDrives;a&&a.options&&d.A&&((a=d.A[oa(a.value, -10)||0])?(a=a.sa)?(a=Wa(Fv(a),"octet-stream",!0,a.Kg.replace(".json",".img")),gb(a)):d.Fa("No diskette loaded in drive."):d.Fa("No diskette drive selected."))};return!0;case "mountDisk":if(this.M)return this.na[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Jv(d,ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +10)||0])?(a=a.sa)?(a=Wa(Fv(a),"octet-stream",!0,a.Jg.replace(".json",".img")),gb(a)):d.Fa("No diskette loaded in drive."):d.Fa("No diskette drive selected."))};return!0;case "mountDisk":if(this.M)return this.na[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Jv(d,ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.ba=d;this.pa=a;this.V=Wb(a,"ChipSet");if((this.G=yd(this.pa,"autoMount")||this.G)&&"string"==typeof this.G)try{this.G=eval("("+this.G+")")}catch(e){gb("FDC auto-mount error: "+e.message+" ("+this.G+")"),this.G=null}Kv(this);Nc(b,this,Lv);Rc(b,this,Mv);Nv(this,"None","",!0);this.M&&Nv(this,"Local Disk","?");Nv(this,"Remote Disk","??");Ov(this)||Ib(this)}; l.Xb=function(a,b){if(!b){if(!a){if(this.reset(),this.pa.O){this.B=[];for(a=0;ag.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Sa&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.I=b[c++]||0;a.Zb=b[c]||Wv;return e} -function Qv(a){var b=0,c=[];c[b++]=a.Ua;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.C;c[b++]=a.J;for(var d=b++,e=0,f=[],g=0;gg.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Sa&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.I=b[c++]||0;a.Zb=b[c]||Wv;return e} +function Qv(a){var b=0,c=[];c[b++]=a.Ua;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.C;c[b++]=a.J;for(var d=b++,e=0,f=[],g=0;gUv(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;ha.qb||f[1]>a.kb)&&(this.Fa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Ua)),b=null);b?(a.sa=b,a.$k=c,a.ue=d,Vv(this,c,d,b),f=b.info(),this.I|=Zv,this.Fa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Ua),a.le||e),a.vg=f[0],a.Bf=f[1],a.Cf=f[2],this.pa&&this.pa.ld()):a.Oe=!1;a.le&&(a.le=!1,--this.K||Ib(this));Iv(this,a.Ua)}; +!0)}}else Pv(a,e);else a.Fa("Unable to load the selected drive")}function Uv(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.te.toLowerCase()!=d.toLowerCase())){Pv(a,b,e,!0);if(g.Le)return a.Fa("Drive "+b+" busy"),0;g.Le=!0;e&&(g.ke=!0,a.K++,t(a)&&Lb(a,"loading diskette '"+c+"'"));g.Ne=!!f;return(new Su(a,g,"preload")).load(c,d,f,a.lj)?1:0}return-1} +l.lj=function(a,b,c,d,e){var f;a.Le=!1;b&&(f=b.info(),b&&f[0]>a.qb||f[1]>a.kb)&&(this.Fa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Ua)),b=null);b?(a.sa=b,a.Zk=c,a.te=d,Vv(this,c,d,b),f=b.info(),this.I|=Zv,this.Fa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Ua),a.ke||e),a.ug=f[0],a.Af=f[1],a.Bf=f[2],this.pa&&this.pa.ld()):a.Ne=!1;a.ke&&(a.ke=!1,--this.K||Ib(this));Iv(this,a.Ua)}; function Nv(a,b,c,d){if((a=a.na.listDisks)&&a.options){for(var e=0;e=this.C&&(this.fa&=~(bw|cw),this.D=this.C=0);return c}; -l.Un=function(a,b,c){t(this)&&w(this,a,b,c,"DATA["+this.C+"]");this.C=ew[a].Id){b=!1;this.D=0;a=fw(this);var d,e,f,g,h=a&dw;switch(h){case gw:fw(this);fw(this);hw(this);break;case iw:c=fw(this);this.Ua=c&3;d=this.A[this.Ua];hw(this);jw(this,(d.rb&kw)>>>24);break;case lw:case mw:c=fw(this);b=c>>2&1;this.Ua=c&3;d=this.A[this.Ua];d.Za=b;c=d.Gb=fw(this);e=fw(this);f=d.mb=fw(this);g=fw(this);d.ub=128<>2&1;this.Ua= -c&3;d=this.A[this.Ua];c=d.Gb;e=d.Za=b;f=d.mb=1;g=0;d.rb=Yv;d.sa&&(d.cb=d.sa.seek(d.Gb,d.Za,d.mb))?g=d.cb.length>>8:d.rb=nw|ow;qw(this,d,a,b,c,e,f,g);b=!0;break;case xw:c=fw(this);b=c>>2&1;this.Ua=c&3;d=this.A[this.Ua];c=d.Gb;e=d.Za=b;f=1;g=fw(this);d.ub=128<>2&1,c=fw(this),d.Gb+=c-d.Sd,0>d.Gb&&(d.Gb=0),d.Gb>=d.qb&&(d.Gb=d.qb-1),d.Sd=c,d.rb=sw,d.Gb||(d.rb|=tw),hw(this),b=!0}0>>8);jw(a,(b.rb&Aw)>>>16);var k=0;if(e!=b.Gb||f!=b.Za)k=g=1;c&Bw&&(f^=k,d||(k=0));jw(a,e+k);jw(a,f);jw(a,g);jw(a,h)}function fw(a){var b=a.F[a.D];a.D++;return b}function hw(a){a.D=a.C=0}function jw(a,b){a.F[a.C++]=b}l.kl=function(a,b,c){void 0===b||0>b?this.te(a,c):c(-1,!1)};l.ll=function(a,b){return void 0!==b&&0<=b?Cw(a,b):-1}; -l.Dl=function(a,b){if(void 0!==b&&0<=b)a:if(a.rb)a=-1;else{a.$c[a.He++]=b;if(a.He==a.$c.length){a.Gb=a.$c[0];a.Za=a.$c[1];a.mb=a.$c[2];a.ub=128<Cw(a,a.Xi)){a=-1;break a}a.kg++}a.kg>=a.Td&&(b=-1);a=b}else a=-1;return a};l.te=function(a,b){var c=-1,d=null,e=0;if(!a.rb&&a.sa){do{if(a.cb&&(e=a.Sa,0<=(c=a.sa.read(a.cb,a.Sa++)))){d=a.cb;break}a.cb=a.sa.seek(a.Gb,a.Za,a.mb);if(!a.cb){a.rb=Dw|ow;break}a.Sa=0;Ew(a)}while(1)}b(c,!1,d,e)}; -function Cw(a,b){if(a.rb||!a.sa)return-1;do{if(a.cb&&a.sa.write(a.cb,a.Sa++,b))break;a.cb=a.sa.seek(a.Gb,a.Za,a.mb);if(!a.cb){a.rb=Fw|ow;b=-1;break}a.Sa=0;Ew(a)}while(1);return b}function Ew(a){a.mb++;a.mb>=a.Cf+1&&(a.mb=1,a.Za++,a.Za>=a.Bf&&(a.Za=0,a.Gb++))}var Tv="Floppy Drive",$v=4,aw=8,cw=16,bw=64,Rv=128,gw=3,iw=4,lw=5,mw=6,rw=7,uw=8,ww=10,xw=13,yw=15,dw=31,Bw=128,Yv=0,nw=8,sw=32,ow=64,Sv=192,vw=255,pw=512,Dw=1024,Fw=8192,zw=65280,Aw=16711680,tw=268435456,kw=-16777216,Zv=128,Wv=0;aa={}; -var ew={3:{Id:3,Ud:0,name:aa.Xp},4:{Id:2,Ud:1,name:aa.Vp},5:{Id:9,Ud:7,name:aa.aq},6:{Id:9,Ud:7,name:aa.Rp},7:{Id:2,Ud:0,name:aa.Tp},8:{Id:1,Ud:2,name:aa.Wp},10:{Id:2,Ud:7,name:aa.Sp},13:{Id:6,Ud:7,name:aa.Op},15:{Id:3,Ud:0,name:aa.Up}},Lv={1009:Hv.prototype.sm,1012:Hv.prototype.um,1013:Hv.prototype.rm,1015:Hv.prototype.tm},Mv={1010:Hv.prototype.Vn,1013:Hv.prototype.Un,1015:Hv.prototype.Tn}; -$a(function(){for(var a=zb(document,"pcx86","fdc"),b=0;b=this.C&&(this.fa&=~(bw|cw),this.D=this.C=0);return c}; +l.Tn=function(a,b,c){t(this)&&w(this,a,b,c,"DATA["+this.C+"]");this.C=ew[a].Id){b=!1;this.D=0;a=fw(this);var d,e,f,g,h=a&dw;switch(h){case gw:fw(this);fw(this);hw(this);break;case iw:c=fw(this);this.Ua=c&3;d=this.A[this.Ua];hw(this);jw(this,(d.rb&kw)>>>24);break;case lw:case mw:c=fw(this);b=c>>2&1;this.Ua=c&3;d=this.A[this.Ua];d.Za=b;c=d.Gb=fw(this);e=fw(this);f=d.mb=fw(this);g=fw(this);d.ub=128<>2&1;this.Ua= +c&3;d=this.A[this.Ua];c=d.Gb;e=d.Za=b;f=d.mb=1;g=0;d.rb=Yv;d.sa&&(d.cb=d.sa.seek(d.Gb,d.Za,d.mb))?g=d.cb.length>>8:d.rb=nw|ow;qw(this,d,a,b,c,e,f,g);b=!0;break;case xw:c=fw(this);b=c>>2&1;this.Ua=c&3;d=this.A[this.Ua];c=d.Gb;e=d.Za=b;f=1;g=fw(this);d.ub=128<>2&1,c=fw(this),d.Gb+=c-d.Sd,0>d.Gb&&(d.Gb=0),d.Gb>=d.qb&&(d.Gb=d.qb-1),d.Sd=c,d.rb=sw,d.Gb||(d.rb|=tw),hw(this),b=!0}0>>8);jw(a,(b.rb&Aw)>>>16);var k=0;if(e!=b.Gb||f!=b.Za)k=g=1;c&Bw&&(f^=k,d||(k=0));jw(a,e+k);jw(a,f);jw(a,g);jw(a,h)}function fw(a){var b=a.F[a.D];a.D++;return b}function hw(a){a.D=a.C=0}function jw(a,b){a.F[a.C++]=b}l.jl=function(a,b,c){void 0===b||0>b?this.se(a,c):c(-1,!1)};l.kl=function(a,b){return void 0!==b&&0<=b?Cw(a,b):-1}; +l.Cl=function(a,b){if(void 0!==b&&0<=b)a:if(a.rb)a=-1;else{a.$c[a.Ge++]=b;if(a.Ge==a.$c.length){a.Gb=a.$c[0];a.Za=a.$c[1];a.mb=a.$c[2];a.ub=128<Cw(a,a.Wi)){a=-1;break a}a.jg++}a.jg>=a.Td&&(b=-1);a=b}else a=-1;return a};l.se=function(a,b){var c=-1,d=null,e=0;if(!a.rb&&a.sa){do{if(a.cb&&(e=a.Sa,0<=(c=a.sa.read(a.cb,a.Sa++)))){d=a.cb;break}a.cb=a.sa.seek(a.Gb,a.Za,a.mb);if(!a.cb){a.rb=Dw|ow;break}a.Sa=0;Ew(a)}while(1)}b(c,!1,d,e)}; +function Cw(a,b){if(a.rb||!a.sa)return-1;do{if(a.cb&&a.sa.write(a.cb,a.Sa++,b))break;a.cb=a.sa.seek(a.Gb,a.Za,a.mb);if(!a.cb){a.rb=Fw|ow;b=-1;break}a.Sa=0;Ew(a)}while(1);return b}function Ew(a){a.mb++;a.mb>=a.Bf+1&&(a.mb=1,a.Za++,a.Za>=a.Af&&(a.Za=0,a.Gb++))}var Tv="Floppy Drive",$v=4,aw=8,cw=16,bw=64,Rv=128,gw=3,iw=4,lw=5,mw=6,rw=7,uw=8,ww=10,xw=13,yw=15,dw=31,Bw=128,Yv=0,nw=8,sw=32,ow=64,Sv=192,vw=255,pw=512,Dw=1024,Fw=8192,zw=65280,Aw=16711680,tw=268435456,kw=-16777216,Zv=128,Wv=0;aa={}; +var ew={3:{Id:3,Ud:0,name:aa.Xp},4:{Id:2,Ud:1,name:aa.Vp},5:{Id:9,Ud:7,name:aa.aq},6:{Id:9,Ud:7,name:aa.Rp},7:{Id:2,Ud:0,name:aa.Tp},8:{Id:1,Ud:2,name:aa.Wp},10:{Id:2,Ud:7,name:aa.Sp},13:{Id:6,Ud:7,name:aa.Op},15:{Id:3,Ud:0,name:aa.Up}},Lv={1009:Hv.prototype.rm,1012:Hv.prototype.tm,1013:Hv.prototype.qm,1015:Hv.prototype.sm},Mv={1010:Hv.prototype.Un,1013:Hv.prototype.Tn,1015:Hv.prototype.Sn}; +$a(function(){for(var a=zb(document,"pcx86","fdc"),b=0;bk.sa.restore(g)&&(E=!1),E&&void 0!==k.Sa&&(k.cb=k.sa.seek(k.Od,k.Za,k.mb+k.jg)));E||(e=!1);null!=a.O&&1>=d&&(a.O|=(f.type&3)<<(1-d<< +a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,m=a.Z[d],p=b[d],v=c,u=0,E=!0;p||(p=[Rw,0,!1,Array(8)]);k.Ua=h;k.errorCode=p[u++];k.al=p[u++];k.Oe=p[u++];k.De=p[u++];k.Ee=p[u++];k.Za=p[u++];k.kb=p[u++];k.Od=p[u++];k.mb=p[u++];k.Td=p[u++];k.ub=p[u++];k.ig=g.M?0:1;k.name=m.name;void 0===k.name&&(k.name=Sw);k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||Xu(g)||(k.mode="local");k.type=m.type;if(void 0===k.type||void 0===Tw[g.G][k.type])k.type= +g.ma;m=Tw[g.G][k.type];k.$a=m[2]||17;k.Na=m[3]||512;if(v&&g.V){var m=g.V,G=k.type;if(m.A){var v=null,I=m.A[18];15k.sa.restore(g)&&(E=!1),E&&void 0!==k.Sa&&(k.cb=k.sa.seek(k.Od,k.Za,k.mb+k.ig)));E||(e=!1);null!=a.O&&1>=d&&(a.O|=(f.type&3)<<(1-d<< 1))}0<=a.Ua&&(a.B=a.A[a.Ua]);return e} -function Ow(a){var b=0,c=[];a.M?(c[b++]=a.I,c[b++]=a.va,c[b++]=a.J,c[b++]=a.ga,c[b++]=a.da,c[b++]=a.aa,c[b++]=a.Y,c[b++]=a.fa,c[b++]=a.ha,c[b++]=[a.L,a.Ua]):(c[b++]=a.O,c[b++]=a.fa,c[b++]=a.F,c[b++]=a.D,c[b++]=a.C,c[b++]=a.ta,c[b++]=a.qa,c[b++]=a.oa,c[b++]=a.N);for(var d=0,e=[],f=0;f=this.C&&(this.D=this.C=0,this.fa&=~(Xw|Yw|Zw));return c};l.so=function(a,b,c){w(this,a,b,c,"DATA["+this.C+"]");this.C=a&&(this.fa|=Xw,this.fa&=~ax,bx(this))};l.Vm=function(a,b){var c=this.fa;w(this,a,null,b,"STATUS",c);this.D=a.B.Na?(a.fa=dx,a.te(a.B,function(b){0<=b?(ex(a),a.V&&a.V.ca==wl&&(a.fa=0),a.fa=a.fa|Pw|fx|gx):(a.fa=hx,a.I=ix)},!1)):a.fa=Pw|fx));return d}l.ol=function(a,b){return cx(this,a,b)|cx(this,a,b)<<8}; -function jx(a,b,c,d){if(a.B&&a.B.ub>=a.B.Na)if(0>kx(a.B,c))a.fa=hx,a.I=ix;else if(1==a.B.Sa||a.B.Sa==a.B.Na)t(a,1048832)&&w(a,b,c,d,"DATA["+a.B.Sa+"]"),1=a.B.Na&&(a.fa|=gx))}l.Bn=function(a,b,c){jx(this,a,b&255,c);jx(this,a,b>>8&255,c)};l.am=function(a,b){var c=this.I;w(this,a,null,b,"ERROR",c);return c};l.Gn=function(a,b,c){w(this,a,b,c,"WPREC");this.va=b};l.cm=function(a,b){var c=this.J;w(this,a,null,b,"SECCNT",c);return c}; -l.En=function(a,b,c){w(this,a,b,c,"SECCNT");this.J=b};l.dm=function(a,b){var c=this.ga;w(this,a,null,b,"SECNUM",c);return c};l.Fn=function(a,b,c){w(this,a,b,c,"SECNUM");this.ga=b};l.Zl=function(a,b){var c=this.da;w(this,a,null,b,"CYLLO",c);return c};l.An=function(a,b,c){w(this,a,b,c,"CYLLO");this.da=b};l.Yl=function(a,b){var c=this.aa;w(this,a,null,b,"CYLHI",c);return c};l.zn=function(a,b,c){w(this,a,b,c,"CYLHI");this.aa=b};l.$l=function(a,b){var c=this.Y;w(this,a,null,b,"DRVHD",c);return c}; -l.Cn=function(a,b,c){w(this,a,b,c,"DRVHD");this.Y=b;this.fa=this.A[this.Y&lx?1:0]?this.fa|Pw|fx:this.fa&~Pw};l.em=function(a,b){var c=this.fa;w(this,a,null,b,"STATUS",c);this.fa&Pw&&(this.fa&=~dx);return c};l.yn=function(a,b,c){w(this,a,b,c,"COMMAND");this.ha=b;this.V&&eh(this.V,14);mx(this)};l.Dn=function(a,b,c){w(this,a,b,c,"FDR");this.L&nx&&!(b&nx)&&(this.I=ox);this.L=b}; -function mx(a){var b=!1,c=a.ha,d=a.Y&lx?1:0,e=a.Y&px,f=a.da|(a.aa&qx)<<8,g=a.ga,h=a.J||256;a.Ua=-1;a.B=null;a.I=rx;a.fa=Pw|fx;var k=a.A[d];k?(k.Od=f,k.Za=e,k.mb=g,k.ub=h*k.Na,c=c>=sx?c:c&tx,k.cb=null,k.Sa=0,k.errorCode=0,a.Ua=d,a.B=k):c=-1;switch(c&tx){case ux:b=!0;break;case vx:a.fa=dx;a.te(k,function(b){0<=b&&a.V?(ex(a),a.fa=Pw|fx|gx):(a.fa=hx,a.I=ix)},!1);break;case wx:a.fa=gx;break;case xx:b=!0;break;case yx:b=!0;break;case sx:a.I=ox;b=!0;break;case zx:k.kb=e+1,k.$a=h,b=!0}b&&ex(a)} +function Ow(a){var b=0,c=[];a.M?(c[b++]=a.I,c[b++]=a.va,c[b++]=a.J,c[b++]=a.ga,c[b++]=a.da,c[b++]=a.aa,c[b++]=a.Y,c[b++]=a.fa,c[b++]=a.ha,c[b++]=[a.L,a.Ua]):(c[b++]=a.O,c[b++]=a.fa,c[b++]=a.F,c[b++]=a.D,c[b++]=a.C,c[b++]=a.ta,c[b++]=a.qa,c[b++]=a.oa,c[b++]=a.N);for(var d=0,e=[],f=0;f=this.C&&(this.D=this.C=0,this.fa&=~(Xw|Yw|Zw));return c};l.ro=function(a,b,c){w(this,a,b,c,"DATA["+this.C+"]");this.C=a&&(this.fa|=Xw,this.fa&=~ax,bx(this))};l.Um=function(a,b){var c=this.fa;w(this,a,null,b,"STATUS",c);this.D=a.B.Na?(a.fa=dx,a.se(a.B,function(b){0<=b?(ex(a),a.V&&a.V.ca==wl&&(a.fa=0),a.fa=a.fa|Pw|fx|gx):(a.fa=hx,a.I=ix)},!1)):a.fa=Pw|fx));return d}l.nl=function(a,b){return cx(this,a,b)|cx(this,a,b)<<8}; +function jx(a,b,c,d){if(a.B&&a.B.ub>=a.B.Na)if(0>kx(a.B,c))a.fa=hx,a.I=ix;else if(1==a.B.Sa||a.B.Sa==a.B.Na)t(a,1048832)&&w(a,b,c,d,"DATA["+a.B.Sa+"]"),1=a.B.Na&&(a.fa|=gx))}l.An=function(a,b,c){jx(this,a,b&255,c);jx(this,a,b>>8&255,c)};l.$l=function(a,b){var c=this.I;w(this,a,null,b,"ERROR",c);return c};l.Fn=function(a,b,c){w(this,a,b,c,"WPREC");this.va=b};l.bm=function(a,b){var c=this.J;w(this,a,null,b,"SECCNT",c);return c}; +l.Dn=function(a,b,c){w(this,a,b,c,"SECCNT");this.J=b};l.cm=function(a,b){var c=this.ga;w(this,a,null,b,"SECNUM",c);return c};l.En=function(a,b,c){w(this,a,b,c,"SECNUM");this.ga=b};l.Yl=function(a,b){var c=this.da;w(this,a,null,b,"CYLLO",c);return c};l.zn=function(a,b,c){w(this,a,b,c,"CYLLO");this.da=b};l.Xl=function(a,b){var c=this.aa;w(this,a,null,b,"CYLHI",c);return c};l.yn=function(a,b,c){w(this,a,b,c,"CYLHI");this.aa=b};l.Zl=function(a,b){var c=this.Y;w(this,a,null,b,"DRVHD",c);return c}; +l.Bn=function(a,b,c){w(this,a,b,c,"DRVHD");this.Y=b;this.fa=this.A[this.Y&lx?1:0]?this.fa|Pw|fx:this.fa&~Pw};l.dm=function(a,b){var c=this.fa;w(this,a,null,b,"STATUS",c);this.fa&Pw&&(this.fa&=~dx);return c};l.xn=function(a,b,c){w(this,a,b,c,"COMMAND");this.ha=b;this.V&&eh(this.V,14);mx(this)};l.Cn=function(a,b,c){w(this,a,b,c,"FDR");this.L&nx&&!(b&nx)&&(this.I=ox);this.L=b}; +function mx(a){var b=!1,c=a.ha,d=a.Y&lx?1:0,e=a.Y&px,f=a.da|(a.aa&qx)<<8,g=a.ga,h=a.J||256;a.Ua=-1;a.B=null;a.I=rx;a.fa=Pw|fx;var k=a.A[d];k?(k.Od=f,k.Za=e,k.mb=g,k.ub=h*k.Na,c=c>=sx?c:c&tx,k.cb=null,k.Sa=0,k.errorCode=0,a.Ua=d,a.B=k):c=-1;switch(c&tx){case ux:b=!0;break;case vx:a.fa=dx;a.se(k,function(b){0<=b&&a.V?(ex(a),a.fa=Pw|fx|gx):(a.fa=hx,a.I=ix)},!1);break;case wx:a.fa=gx;break;case xx:b=!0;break;case yx:b=!0;break;case sx:a.I=ox;b=!0;break;case zx:k.kb=e+1,k.$a=h,b=!0}b&&ex(a)} function ex(a){!a.V||a.L&Ax||gh(a.V,14,120)} -function bx(a){a.D=0;var b=Bx(a),c=Bx(a),d=c&32,e=d>>5,f=c&31,g=Bx(a),h=Bx(a),k=g<<2&768|h,m=g&63,p=Bx(a),v=Bx(a),u=a.A[e];u&&(u.Od=k,u.Za=f,u.mb=m,u.ub=p*u.Na);switch(b){case Cx:Dx(a,u?u.errorCode:Ex);Fx(a,c);Fx(a,g);Fx(a,h);Fx(a,Gx|d);b=-1;break;case $w:for(c=0;0<=(b=Bx(a));)u&&cb?this.te(a,c):c(-1,!1)};l.nl=function(a,b){return void 0!==b&&0<=b?kx(a,b):-1}; -l.El=function(a,b){void 0!==b&&0<=b?(a.Sakx(a,a.Xi)){a=-1;break a}a.kg++}a.kg>=a.Td&&(b=-1);a=b}else a=-1;return a}; +function bx(a){a.D=0;var b=Bx(a),c=Bx(a),d=c&32,e=d>>5,f=c&31,g=Bx(a),h=Bx(a),k=g<<2&768|h,m=g&63,p=Bx(a),v=Bx(a),u=a.A[e];u&&(u.Od=k,u.Za=f,u.mb=m,u.ub=p*u.Na);switch(b){case Cx:Dx(a,u?u.errorCode:Ex);Fx(a,c);Fx(a,g);Fx(a,h);Fx(a,Gx|d);b=-1;break;case $w:for(c=0;0<=(b=Bx(a));)u&&cb?this.se(a,c):c(-1,!1)};l.ml=function(a,b){return void 0!==b&&0<=b?kx(a,b):-1}; +l.Dl=function(a,b){void 0!==b&&0<=b?(a.Sakx(a,a.Wi)){a=-1;break a}a.jg++}a.jg>=a.Td&&(b=-1);a=b}else a=-1;return a}; function Ox(a,b,c){b.errorCode=Ex;if(b.sa&&(b.cb=null,a.V)){b.errorCode=Rw;In(a.V,3,a,"dmaRead",b);zn(a.V,3,function(a){a||b.errorCode!=Rw||(b.errorCode=Ex);c(b.errorCode?Hx:Gx)});return}c(b.errorCode?Hx:Gx)}function Qx(a,b,c){b.errorCode=Ex;if(b.sa&&(b.cb=null,a.V)){b.errorCode=Rw;In(a.V,3,a,"dmaWrite",b);zn(a.V,3,function(a){a||(b.errorCode==Rw&&(b.errorCode=Ex),b.errorCode==Tx&&(b.errorCode=Rw));c(b.errorCode?Hx:Gx)});return}c(b.errorCode?Hx:Gx)} -function Sx(a,b,c){b.errorCode=Ex;b.Fe&&b.Fe.length==b.ub||(b.Fe=Array(b.ub));b.Sa=0;a.V?(b.errorCode=Rw,In(a.V,3,a,"dmaWriteBuffer",b),zn(a.V,3,function(a){a||b.errorCode!=Rw||(b.errorCode=Ex);c(b.errorCode?Hx:Gx)})):c(b.errorCode?Hx:Gx)} -l.te=function(a,b,c){var d=-1,e=null,f=0;if(a.errorCode)return b&&b(d,!1,e,f),d;var g=!1!==c?1:0;if(a.cb&&(f=a.Sa,d=a.sa.read(a.cb,a.Sa),a.Sa+=g,0<=d))return e=a.cb,b&&b(d,!1,e,f),d;if(b){if(a.sa)return a.sa.seek(a.Od,a.Za,a.mb+a.jg,!1,function(c,k){(a.cb=c)?(e=c,f=a.Sa=0,Ux(a),d=a.sa.read(a.cb,a.Sa),a.Sa+=g):a.errorCode=Tx;b(d,k,e,f)}),d;a.errorCode=Tx;b(d,!1,e,f)}return d}; -function kx(a,b){if(a.errorCode)return-1;do{if(a.cb&&a.sa.write(a.cb,a.Sa++,b))break;a.sa&&a.sa.seek(a.Od,a.Za,a.mb+a.jg,!0,function(b){a.cb=b});if(!a.cb){a.errorCode=Tx;b=-1;break}a.Sa=0;Ux(a)}while(1);return b}function Ux(a){a.mb++;var b=1-a.jg;a.mb>=a.$a+b&&(a.mb=b,a.Za++,a.Za>=a.kb&&(a.Za=0,a.Od++))}l.Wm=function(){var a=this.H.L&255;!(this.H.D>>8)&&128>8||!this.V)||(a=!(this.V.hc[0].od&64));return a?!0:!1}; +function Sx(a,b,c){b.errorCode=Ex;b.Ee&&b.Ee.length==b.ub||(b.Ee=Array(b.ub));b.Sa=0;a.V?(b.errorCode=Rw,In(a.V,3,a,"dmaWriteBuffer",b),zn(a.V,3,function(a){a||b.errorCode!=Rw||(b.errorCode=Ex);c(b.errorCode?Hx:Gx)})):c(b.errorCode?Hx:Gx)} +l.se=function(a,b,c){var d=-1,e=null,f=0;if(a.errorCode)return b&&b(d,!1,e,f),d;var g=!1!==c?1:0;if(a.cb&&(f=a.Sa,d=a.sa.read(a.cb,a.Sa),a.Sa+=g,0<=d))return e=a.cb,b&&b(d,!1,e,f),d;if(b){if(a.sa)return a.sa.seek(a.Od,a.Za,a.mb+a.ig,!1,function(c,k){(a.cb=c)?(e=c,f=a.Sa=0,Ux(a),d=a.sa.read(a.cb,a.Sa),a.Sa+=g):a.errorCode=Tx;b(d,k,e,f)}),d;a.errorCode=Tx;b(d,!1,e,f)}return d}; +function kx(a,b){if(a.errorCode)return-1;do{if(a.cb&&a.sa.write(a.cb,a.Sa++,b))break;a.sa&&a.sa.seek(a.Od,a.Za,a.mb+a.ig,!0,function(b){a.cb=b});if(!a.cb){a.errorCode=Tx;b=-1;break}a.Sa=0;Ux(a)}while(1);return b}function Ux(a){a.mb++;var b=1-a.ig;a.mb>=a.$a+b&&(a.mb=b,a.Za++,a.Za>=a.kb&&(a.Za=0,a.Od++))}l.Vm=function(){var a=this.H.L&255;!(this.H.D>>8)&&128>8||!this.V)||(a=!(this.V.hc[0].od&64));return a?!0:!1}; var Sw="Hard Drive",Vw=["XTC","ATC","COMPAQ"],Tw=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966, 6],19:[1023,8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}],Lw=496,ox=1,rx=0,ix=16,qx=3,px=15,lx=16,hx=1,gx=8,fx=16,Pw=64,dx=128,ux=16,vx=32,wx=48,xx=64,yx= -112,sx=144,zx=145,tx=240,Ax=2,nx=4,Gx=0,Hx=2,Kx=0,Lx=1,Cx=3,Mx=5,Nx=8,Px=10,$w=12,Rx=15,Ix=224,Jx=228,Rw=0,Ex=4,Tx=20,Qw=0,ax=1,Xw=2,Yw=4,Zw=8,Ww=32,Iw={800:Gw.prototype.Um,801:Gw.prototype.Vm,802:Gw.prototype.Tm},Hw={496:Gw.prototype.ol,497:Gw.prototype.am,498:Gw.prototype.cm,499:Gw.prototype.dm,500:Gw.prototype.Zl,501:Gw.prototype.Yl,502:Gw.prototype.$l,503:Gw.prototype.em},Kw={800:Gw.prototype.so,801:Gw.prototype.vo,802:Gw.prototype.uo,803:Gw.prototype.to,807:Gw.prototype.ii,811:Gw.prototype.ii, -815:Gw.prototype.ii},Jw={496:Gw.prototype.Bn,497:Gw.prototype.Gn,498:Gw.prototype.En,499:Gw.prototype.Fn,500:Gw.prototype.An,501:Gw.prototype.zn,502:Gw.prototype.Cn,503:Gw.prototype.yn,1014:Gw.prototype.Dn};$a(function(){for(var a=zb(document,"pcx86","hdc"),b=0;bthis.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.ga?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b}; +112,sx=144,zx=145,tx=240,Ax=2,nx=4,Gx=0,Hx=2,Kx=0,Lx=1,Cx=3,Mx=5,Nx=8,Px=10,$w=12,Rx=15,Ix=224,Jx=228,Rw=0,Ex=4,Tx=20,Qw=0,ax=1,Xw=2,Yw=4,Zw=8,Ww=32,Iw={800:Gw.prototype.Tm,801:Gw.prototype.Um,802:Gw.prototype.Sm},Hw={496:Gw.prototype.nl,497:Gw.prototype.$l,498:Gw.prototype.bm,499:Gw.prototype.cm,500:Gw.prototype.Yl,501:Gw.prototype.Xl,502:Gw.prototype.Zl,503:Gw.prototype.dm},Kw={800:Gw.prototype.ro,801:Gw.prototype.uo,802:Gw.prototype.to,803:Gw.prototype.so,807:Gw.prototype.hi,811:Gw.prototype.hi, +815:Gw.prototype.hi},Jw={496:Gw.prototype.An,497:Gw.prototype.Fn,498:Gw.prototype.Dn,499:Gw.prototype.En,500:Gw.prototype.zn,501:Gw.prototype.yn,502:Gw.prototype.Bn,503:Gw.prototype.xn,1014:Gw.prototype.Cn};$a(function(){for(var a=zb(document,"pcx86","hdc"),b=0;bthis.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.ga?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b}; function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a<<32-b>>32-b:(b=Math.pow(2,b-1),a>=b?(d=a%b,(a/b|0)&1&&(d-=b)):a<-b&&(d=a%b,((-a-1)/b|0)&1?d&&(d+=b):d||(d-=b)));a!=d&&(a=d);return a} function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&= -f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&fy(a,null,d)}return d} -function gy(a,b){var c,d=a.ha[0],e=a.ha[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=ey(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?dy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Qk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Z-a.la}if(null== +k||"^-"==k){p=p<<2|2;continue}if("^L"==k){p=p<<2|3;continue}}m=!0;break}if(void 0===G)if(f)f.push(h),G=0;else{m=!0;f=[];break}v.push(Wx(G));if(" "==k)if(c=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&e&&fy(a,null,d)}return d} +function gy(a,b){var c,d=a.ha[0],e=a.ha[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=ey(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?dy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Z-a.la}if(null== e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b){for(;b;){switch(b&3){case 1:a=-Wx(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a} -function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.hh(b);if(0<=f)f=a.ih(f);else if(f=a.Y[b]&&a.Y[b].value,null!=f){var g=a.Y[b]&&a.Y[b].ae;g&&(a.ae?(d||(a.P(b+" has too many undefined values ("+g+","+a.ae+")"),d=!0),f=void 0):a.ae=g)}else f=oa(b,1c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function hy(a,b){if(b)return fy(a,b,a.Y[b].value);var c=0;for(b in a.Y)fy(a,b,a.Y[b].value),c++;return 0c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function hy(a,b){var c=0;if(a.I){if(b)return fy(a,b,a.I[b]&&a.I[b].value);b=Object.keys(a.I);b.sort();for(var d=0;d=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c} -var by={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},ay={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20}; -function iy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.L=jy(this);this.Ma=jy(this);this.da=jy(this);this.D=[];this.B=this.aa=this.N=[];ky(this);this.xa=0;ly(this);this.Ba={};my(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ny(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ny(b,a)})}ba(iy,Vx);l=iy.prototype; +var by={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},ay={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20}; +function iy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.M=jy(this);this.Ma=jy(this);this.da=jy(this);this.D=[];this.B=this.aa=this.O=[];ky(this);this.xa=0;ly(this);this.Ba={};my(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ny(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ny(b,a)})}ba(iy,Vx);l=iy.prototype; l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.eb=Wb(a,"FDC");this.Ta=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&my(this,a);this.ma=b.I>>2;this.wa=b.N;this.Ya=new Ud(this.H,7,"DBG");this.qa=oy;80186<=this.H.ca&&(this.qa=oy.slice(),this.qa[15]=py,80286<=this.H.ca&&(this.qa[15]=qy,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){ry(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=sy(d, b,ty),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ma)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=uy[a.type];e&&(c=e[0],b=e[1])}!c||a.lb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.ma)+" limit="+vy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+ " dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=jy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(wy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+xy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){ry(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+ -a);break a}a=sy(d,b,ty)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.ma));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?yy:zy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;mu;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I= -null;this.Ha=0;this.Ca=!1;Rf(this.H,48,this.Zm.bind(this));Rf(this.H,65,this.$m.bind(this));this.V=null;Rf(this.H,104,this.an.bind(this));Ib(this)};function Ay(a,b,c,d,e,f){b=xy(a,b);var g=sy(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=By(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)} +a);break a}a=sy(d,b,ty)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.ma));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?yy:zy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;mu;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.J= +null;this.Ha=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.Y=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function Ay(a,b,c,d,e,f){b=xy(a,b);var g=sy(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=By(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)} function Cy(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=Dy(a,b,4),h=Dy(a,b,4),k=jy(a,Dy(a,b,4),a.Yc(b,2));b=jy(a,Dy(a,b,4),a.Yc(b,2));b=xy(a,b).toUpperCase();var k=xy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=By(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Ey(a,b,c){c=xy(a,c).toUpperCase();Fy(a,c,b)} -l.Zm=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=jy(this,z(a)+12,a.Y.U);switch(Dy(this,d)){case 336:Cy(this,jy(this,a.G,b),!c,!!this.I)}}return!0}; -l.$m=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:Ay(this,jy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Fy(this,null, -d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=jy(this,b.L,e),this.Ha++?(this.P("TRAPFAULT failed"),Gy(this,this.B,a,!0,!0),this.Ha=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Hy(a)),this.Gd(this.B,a,!0),ly(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:Cy(this,jy(this,b.G,f),!g,!!this.I);break;case 338:Ey(this,d,jy(this,b.J,f))}this.Ca=!1;return!this.I}; -l.an=function(a){var b=this.H,c=b.D&255,d=b.D>>8&255,e=b.G&65535,f=b.I&65535,g=b.L&65535,h=b.J&65535,k=b.oa.U;if(null==this.V){if(67==d){if(609437257==b.ia((b.Z.U<<4)+10)||1111835735==b.ia((b.Z.U<<4)+95))return!0;Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x68 handling enabled",128),a.I=a.V=!0):(Lb(a,"INT 0x68 monitoring enabled",128),a.V=!1)}}(this))}return!0}switch(d){case 67:this.V&&(b.D=b.D&-65536|62342);break;case 68:this.V&&(a=Wd(b.Z,this.zl.bind(this)))&& -(b.J=a[0],ne(b,a[1]));break;case 72:Fy(this,null,e);break;case 80:32==c?Ay(this,jy(this,h,k),0,f,!0,!!this.V):128>c?Ay(this,jy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):Cy(this,jy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.zl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1}; +l.Ym=function(){var a=this.H;if(null!=this.J&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=jy(this,z(a)+12,a.Y.U);switch(Dy(this,d)){case 336:Cy(this,jy(this,a.G,b),!c,!!this.J)}}return!0}; +l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.J)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.J=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.J=!1)}}(this)),!0;switch(c){case 79:this.J&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:Ay(this,jy(this,h,k),d+1,e,!(g&1),!!this.J);break;case 82:Fy(this,null, +d);break;case 127:this.J&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.J&&(a=jy(this,b.L,e),this.Ha++?(this.P("TRAPFAULT failed"),Gy(this,this.B,a,!0,!0),this.Ha=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Hy(a)),this.Gd(this.B,a,!0),ly(this,!0)));break;case 141:this.J&&(b.D=b.D&-65536|1);break;case 336:Cy(this,jy(this,b.G,f),!g,!!this.J);break;case 338:Ey(this,d,jy(this,b.J,f))}this.Ca=!1;return!this.J}; +l.$m=function(a){var b=this.H,c=b.D&255,d=b.D>>8&255,e=b.G&65535,f=b.I&65535,g=b.L&65535,h=b.J&65535,k=b.oa.U;if(null==this.Y){if(67==d){if(609437257==b.ia((b.Z.U<<4)+10)||1111835735==b.ia((b.Z.U<<4)+95))return!0;Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x68 handling enabled",128),a.J=a.Y=!0):(Lb(a,"INT 0x68 monitoring enabled",128),a.Y=!1)}}(this))}return!0}switch(d){case 67:this.Y&&(b.D=b.D&-65536|62342);break;case 68:this.Y&&(a=Wd(b.Z,this.yl.bind(this)))&& +(b.J=a[0],ne(b,a[1]));break;case 72:Fy(this,null,e);break;case 80:32==c?Ay(this,jy(this,h,k),0,f,!0,!!this.Y):128>c?Ay(this,jy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.Y):Cy(this,jy(this,h,k),!(c&1),!!this.Y),this.Y&&(b.D=b.D&-256|1)}return!this.Y};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1}; l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ny(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A>>0)+1;a.lb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=sy(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Ly)|0,b&&My(this,a,b));return c}; -l.jb=function(a,b){return a.Hb?Dy(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Ly)|0,b&&My(this,a,b));return c};function Dy(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Ly)|0,c&&My(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Ly)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].cf(e&f.D,b&255,e)}c&&My(this,a,c);d||Bd(this.H,!0)}}; -l.jl=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Ly?this.H.fb(d,b):Jc(this.ka,d,b),c&&My(this,a,c),Bd(this.H,!0))};function jy(a,b,c,d,e,f,g){return Ny(a,{},b,c,d,e,f,g)}function Ny(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Jy(a)?ty:Ky);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Oy(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Ge,a.dh]}function Py(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Ge:a[6],dh:a[7]}} +l.jb=function(a,b){return a.Hb?Dy(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Ly)|0,b&&My(this,a,b));return c};function Dy(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Ly)|0,c&&My(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Ly)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&My(this,a,c);d||Bd(this.H,!0)}}; +l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Ly?this.H.fb(d,b):Jc(this.ka,d,b),c&&My(this,a,c),Bd(this.H,!0))};function jy(a,b,c,d,e,f,g){return Ny(a,{},b,c,d,e,f,g)}function Ny(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Jy(a)?ty:Ky);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Oy(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Py(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}} function Qy(a,b,c){if(null!=b.U&&(a=sy(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0f?null!=h?(g=ey(a,b,void 0),f=null):(f=ey(a,b,void 0),null==f&&(g=null)):(h=ey(a,b.substring(0,f),void 0),g=ey(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=jy(a,g,h,f,c),d||Qy(a,e,!0)||(a.P("invalid offset: "+Hy(e)),e=null));return e}function Uy(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.tl=a.Dg(b.Zk=c[2]))}l.Qk=function(a,b){var c=Ry(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")}; +function Ry(a,b,c,d){var e,f=c?a.M:a.Ma;c=d?Sy:f.type;var g=f.Ja,h=f.U,f=f.ya;if(void 0!==b){b=gy(a,b);e=b.charAt(0);f=b.indexOf(":");switch(e){case "&":c=Ky;break;case "#":c=ty;break;case "%":c=Ty;e=b.charAt(1);"%"==e&&(c=Ly,e+=e);g=0;h=null;break;default:0<=f&&(c=Sy),e=""}e&&(b=b.substr(e.length),f-=e.length);e=b;var k;if(e.match(/^[a-z_][a-z0-9_]*$/i))for(var m=e.toUpperCase(),p=0;pf?null!=h?(g=ey(a,b,void 0),f=null):(f=ey(a,b,void 0),null==f&&(g=null)):(h=ey(a,b.substring(0,f),void 0),g=ey(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=jy(a,g,h,f,c),d||Qy(a,e,!0)||(a.P("invalid offset: "+Hy(e)),e=null));return e}function Uy(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Ry(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")}; function My(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Qy(a,b)||(b.Ja=0,b.ya=null))}function wy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Hy(a){var b;switch(a.type){case Ky:case Vy:b="&";break;case ty:b="#";break;case Ty:b="%";break;case Ly:b="%%";break;default:b=a.U?"":"%"}return a.type>=Ty||null==a.U?b+q(a.ya):b+wy(a.Ja,a.U,a.dc)} function xy(a,b,c){var d="";for(c=c||256;d.length>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<c&&(c=Ha(Xy,a.substr(b,2))));return c}; -function Yy(a,b){var c=0,d=a.ih(b);if(null!=d)switch(b){case Zy:case $y:case az:case bz:case cz:case dz:case ez:case fz:c=2;break;case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz:case oz:case pz+qz:case pz+rz:case pz+sz:case pz+tz:case pz+uz:case pz+vz:c=4;break;case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:case Hz:case Iz:c=8;break;case Jz:c=a.ta}return c?q(d,c):"??"} -l.ih=function(a){var b;if(0<=a){var c=this.H;switch(a){case Zy:b=c.D&255;break;case $y:b=c.I&255;break;case az:b=c.L&255;break;case bz:b=c.G&255;break;case cz:b=c.D>>8&255;break;case dz:b=c.I>>8&255;break;case ez:b=c.L>>8&255;break;case fz:b=c.G>>8&255;break;case gz:b=c.D&65535;break;case hz:b=c.I&65535;break;case iz:b=c.L&65535;break;case jz:b=c.G&65535;break;case kz:b=z(c)&65535;break;case lz:b=c.M&65535;break;case mz:b=c.K&65535;break;case nz:b=c.J&65535;break;case oz:b=A(c)&65535;break;case Jz:b= -qe(c);break;case pz+qz:b=c.oa.U;break;case pz+rz:b=c.Z.U;break;case pz+sz:b=c.Y.U;break;case pz+tz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Ez&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case wz:b=c.D;break;case xz:b=c.I;break;case yz:b=c.L;break;case zz:b=c.G;break;case Az:b=z(c);break;case Bz:b=c.M;break;case Cz:b=c.K;break;case Dz:b=c.J;break;case Ez:b=c.qa;break;case Fz:b=c.Pg;break;case Gz:b=c.Cd;break;case Hz:b=c.Wc;break;case pz+uz:b=c.Ga.U;break;case pz+vz:b=c.Ha.U;break;case Iz:b=A(c)}}}return b}; -function Kz(a,b){b=gy(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.hh(b,c+1),0<=e&&(b=b.substr(0,c)+Yy(a,e)+b.substr(c+1+Xy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Ry(a,e))?(d=e+' "'+xy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Ry(a,e))?(My(a,d), -d=e+' "'+xy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Hy(jy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.We=0,Bd(a)))}; +function ry(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.Sb(Ry(a,c));if(-1===e){a.P("invalid address: "+c);return}f=e>>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<c&&(c=Ha(Xy,a.substr(b,2))));return c}; +function Yy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Zy:case $y:case az:case bz:case cz:case dz:case ez:case fz:c=2;break;case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz:case oz:case pz+qz:case pz+rz:case pz+sz:case pz+tz:case pz+uz:case pz+vz:c=4;break;case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:case Hz:case Iz:c=8;break;case Jz:c=a.ta}return c?q(d,c):"??"} +l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Zy:b=c.D&255;break;case $y:b=c.I&255;break;case az:b=c.L&255;break;case bz:b=c.G&255;break;case cz:b=c.D>>8&255;break;case dz:b=c.I>>8&255;break;case ez:b=c.L>>8&255;break;case fz:b=c.G>>8&255;break;case gz:b=c.D&65535;break;case hz:b=c.I&65535;break;case iz:b=c.L&65535;break;case jz:b=c.G&65535;break;case kz:b=z(c)&65535;break;case lz:b=c.M&65535;break;case mz:b=c.K&65535;break;case nz:b=c.J&65535;break;case oz:b=A(c)&65535;break;case Jz:b= +qe(c);break;case pz+qz:b=c.oa.U;break;case pz+rz:b=c.Z.U;break;case pz+sz:b=c.Y.U;break;case pz+tz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Ez&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case wz:b=c.D;break;case xz:b=c.I;break;case yz:b=c.L;break;case zz:b=c.G;break;case Az:b=z(c);break;case Bz:b=c.M;break;case Cz:b=c.K;break;case Dz:b=c.J;break;case Ez:b=c.qa;break;case Fz:b=c.Og;break;case Gz:b=c.Cd;break;case Hz:b=c.Wc;break;case pz+uz:b=c.Ga.U;break;case pz+vz:b=c.Ha.U;break;case Iz:b=A(c)}}}return b}; +function Kz(a,b){b=gy(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Yy(a,e)+b.substr(c+1+Xy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Ry(a,e))?(d=e+' "'+xy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Ry(a,e))?(My(a,d), +d=e+' "'+xy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Hy(jy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))}; function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Lz.indexOf(b),!d)){var g=Mz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Kz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+wy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d} -function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.ce+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+wy(e,h):""))}l.jh=function(){this.P("Type ? for help with PCx86 Debugger commands");Nz(this);if(this.Ga){var a=this.Ga;this.Ga=null;ny(this,a)}}; -function ly(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Oz);for(c=0;c>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Vz(this,a,a.length-1,"set"),ly(this)));return d}; -function Gy(a,b,c,d,e){for(var f=!1,g=Wz(a,a.Sb(c)),h=1;h>>f.hb].Gd(e&f.Db,a==this.O);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Vz(this,a,a.length-1,"set"),ly(this)));return d}; +function Gy(a,b,c,d,e){for(var f=!1,g=Wz(a,a.Sb(c)),h=1;h>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=dA[f])&&(v=u[E]);v&&(p=eA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=fA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==gA? p="CWDE":m==hA?p="CDQ":m>=iA&&m<=jA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,G=1;G<=u;G++){var I,J;I="";J=k[G];if(void 0!==J){0>f&&(f=J>>kA);m==lA&&(f==mA?v="[%800]":f==nA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=J&oA;if(T!=pA)if(T==qA)E=!1;else{var L=J&rA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!J.dc&&6==za||J.dc&&5==za))xb=2;else{if(J.dc)if(4!=za)za+= 8;else{var ca=L,cb=xb,Sa=J,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=tA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=tA[rc+8],db&&(ib+="*"+(1<>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),J.dc?(L=Dy(L,J,4),ca+=q(L)):(L=L.Yc(J,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";I&=oA;I==S&&(I=J.Hb?uA:U);switch(I){case vA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16"; break}L="WORD";break;case uA:L="DWORD";break;case wA:if(T){L="INT32";break}case xA:L="REAL32";break;case yA:if(T){L="INT64";break}case zA:L="REAL64";break;case AA:L="REAL80";break;case BA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=CA(L,za,I,J);I=ca}else I=L==sA?CA(a,g&7,J,b):CA(a,g>>3&7,J,b);else if(L==DA)I="1";else if(L==W){I=a;T=J;L=b;J=" ";switch(T&oA){case V:T&X&&(J=q(I.Ia(L,1),2));break;case EA:J=q(I.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){J=q(Dy(I,L,4));break}case U:J=q(I.Yc(L,2),4);break; case vA:L=jy(I,I.jb(L,!0),I.Yc(L,2),null,L.type,L.Hb,L.dc);J=Hy(L);I=FA(I,L);I[0]&&(J+=" ("+I[0]+")");break;default:J="imm("+sa(T)+")"}I=J}else L==GA?(b.dc?(I=8,J=Dy(a,b,4)):(I=4,J=a.Yc(b,2)),I="["+q(J,I)+"]"):L==HA?(I=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),J=b.Ja+I&(b.Hb?-1:65535),I=q(J,b.Hb?8:4),J=FA(a,jy(a,J,b.U)),J[0]&&(I+=" ("+J[0]+")")):L==Y?I=T==IA?"ST":T==JA?"ST("+(g&7)+")":CA(a,(J&KA)>>8,J,b):L==LA?I=CA(a,(J&KA)>>8,MA,b):L==NA?I="DS:[SI]":L==OA&&(I="ES:[DI]");if(!I||!I.length){v="INVALID";break}0< -v.length&&(v+=",");v+=I||"???"}}}g="";k=Hy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.cavz||b>=uz&&80386>a.H.ca)return"??";b+=pz}else if(e==RA)b+=Ez;else if(e==SA)b+=TA;else if(e==UA)b+=VA;else if(a=c&oA,a>=U&&(b=gz&&b<=nz&&4a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+YA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=YA(a,a.H.Ga,b)+" "+YA(a,a.H.Ha,b)+"\n");c+=ZA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+ZA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+ZA(a,"ID", -null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+XA(a,Ez);80386<=a.H.ca&&(c+=XA(a,Gz)+XA(a,Hz))}else 80386<=a.H.ca&&(c+=YA(a,a.H.Ga,b)+" "+YA(a,a.H.Ha,b)+" ");return c+=XA(a,Jz)+WA(a,"V")+WA(a,"D")+WA(a,"I")+WA(a,"T")+WA(a,"S")+WA(a,"Z")+WA(a,"A")+WA(a,"P")+WA(a,"C")}l.hj=function(a,b){return a[0]>b[0]?1:a[0]>>0,p],I=Da(E,u,a.hj);0>I&&E.splice(-(I+1),0,u)}G&&(v.a=G.replace(/''/g,'"'))}a.D.push({Sf:b,qn:c,U:d,Ja:e,ya:f,fn:g,Fd:h,Qi:m})} -function Fy(a,b,c){for(var d=0;d>>0,f=a.Sb(b)>>>0,g=0;g>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.fn;48==k&&(k=40);if(k==b.U&&e>=m&&e=p&&fb[0]?1:a[0]>>0,p],I=Da(E,u,a.gj);0>I&&E.splice(-(I+1),0,u)}G&&(v.a=G.replace(/''/g,'"'))}a.D.push({Rf:b,pn:c,U:d,Ja:e,ya:f,en:g,Fd:h,Pi:m})} +function Fy(a,b,c){for(var d=0;d>>0,f=a.Sb(b)>>>0,g=0;g>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e=p&&fc?(a.P("out of data at address "+Hy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H, +function fB(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Ry(a,b[1]);if(g&&(d=Zx(a,b[2],"drive #"),void 0!==d)){if(!c){e=Zx(a,b[3],"sector #");if(void 0===e)return;f=Zx(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.eb;2<=d&&a.Ta&&(d-=2,h=a.Ta);if(h){var k=h.hj(d);if(k)if(k.sa)if(c)bB(a),a.P(k.sa.toJSON());else if(h.$k(k,e,f)){var m=0,p=!1;for(b=Hy(g);!p&&0c?(a.P("out of data at address "+Hy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H, !0);a.P(m+" bytes read at "+b)}else a.P("sector "+e+" request out of range");else a.P("drive "+d+" not loaded");else a.P("invalid drive: "+d)}else a.P("disk controller not present")}}else a.P("load commands:"),a.P("\tl [address] [drive #] [sector #] [# sectors]")} function Rz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1f;f++){var g=c,e=null;if(f=a.ta&&(h=null);switch(h){case "AL":a.H.D= a.H.D&-256|g&255;break;case "AH":a.H.D=a.H.D&-65281|g<<8&255;break;case "AX":a.H.D=a.H.D&-65536|g&65535;break;case "BL":a.H.G=a.H.G&-256|g&255;break;case "BH":a.H.G=a.H.G&-65281|g<<8&255;break;case "BX":a.H.G=a.H.G&-65536|g&65535;break;case "CL":a.H.I=a.H.I&-256|g&255;break;case "CH":a.H.I=a.H.I&-65281|g<<8&255;break;case "CX":a.H.I=a.H.I&-65536|g&65535;break;case "DL":a.H.L=a.H.L&-256|g&255;break;case "DH":a.H.L=a.H.L&-65281|g<<8&255;break;case "DX":a.H.L=a.H.L&-65536|g&65535;break;case "SP":ge(a.H, -z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=jy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=jy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g? +z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.M=jy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.M=jy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g? rg(a.H):pg(a.H);break;case "Z":g?sg(a.H):qg(a.H);break;case "S":g?(e=a.H,e.resultType&=-17,e.O|=128):(e=a.H,e.resultType&=-17,e.O&=-129);break;case "I":g?(e=a.H,e.O|=512):(e=a.H,e.O&=-513);break;case "D":g?(e=a.H,e.O|=1024):(e=a.H,e.O&=-1025);break;case "V":g?lg(a.H):mg(a.H);break;default:var k=!0;if(80286<=a.H.ca)switch(k=!1,h){case "MS":tg(a.H,g);break;case "TR":-1===a.H.la.load(g)&&(f=!1);break;default:if(k=!0,80386<=a.H.ca)switch(k=!1,h){case "EAX":a.H.D=g;break;case "EBX":a.H.G=g;break;case "ECX":a.H.I= -g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P($A(a,d));c&&(a.L=jy(a,A(a.H),a.H.Z.U),Sz(a,Hy(a.L)))}} +g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P($A(a,d));c&&(a.M=jy(a,A(a.H),a.H.Z.U),Sz(a,Hy(a.M)))}} function hB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Kz(a,c[2])):ey(a,b,!1)}function iB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Zz(a,b,g,f);b.dh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}} -l.Dg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else a=this.C[this.A+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b}; -function Yz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.ga&&(a.P("ended assemble at "+Hy(a.da)),a.L=a.da,a.ga=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0p||"z"h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Zz(a,b,g,f);b.bh||d||d++;a.P(f);a.M=b;e-=b.ya-k;c++}}} +l.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else a=this.C[this.A+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b}; +function Yz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.ga&&(a.P("ended assemble at "+Hy(a.da)),a.M=a.da,a.ga=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0p||"z">>20;Qa.Ui=a.H.Wc+Qa.Kk;Qa.nb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.nb.Nd(Qa.Kk);Qa.Lk=(Qg&4190208)>>>10;Qa.Vi=(Qa.Bj&-4096)+Qa.Lk;Qa.ob=qf.aa[(Qa.Vi&qf.C)>>>qf.A];Qa.Cj=Qa.ob.Nd(Qa.Lk);Qa.vl=(Qa.Cj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Wy(pf.Ui,pf.Bj)),ve= -ve+(" %%"+Wy(pf.Vi,pf.Cj,!0)),ve=ve+(" %%"+q(pf.vl));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";fB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var wt=a.Ba[xb];wt?(ca.shift(),ca.shift(),wt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.ib||"db")}else a.ib=za;if("dh"==za){var xt=cb,yt=Sa,zt="",At=0,Lc=a.oa,jd=a.O;if(jd.length){var uc=+xt||a.Xa,Rg=+yt||10;isNaN(uc)?uc=Rg:zt="more ";uc>jd.length&&(a.P("note: only "+ -jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==yt&&(Rg=1E5,rm=["CALL"]);for(void 0!==xt&&a.P(uc+" instructions earlier:");0=jd.length&&(Lc=0);a.Xa=uc;At++;Rg--}}At||(a.P("no "+zt+"history available"),a.Xa= +(bB(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.nb=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.nb.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.ob=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.ob.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var we="%"+q(Qg),we=we+(" %%"+Wy(pf.Ti,pf.Aj)),we= +we+(" %%"+Wy(pf.Ui,pf.Bj,!0)),we=we+(" %%"+q(pf.ul));a.P(we)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";fB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var wt=a.Ba[xb];wt?(ca.shift(),ca.shift(),wt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.ib||"db")}else a.ib=za;if("dh"==za){var xt=cb,yt=Sa,zt="",At=0,Lc=a.oa,jd=a.V;if(jd.length){var uc=+xt||a.Xa,Rg=+yt||10;isNaN(uc)?uc=Rg:zt="more ";uc>jd.length&&(a.P("note: only "+ +jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==yt&&(Rg=1E5,rm=["CALL"]);for(void 0!==xt&&a.P(uc+" instructions earlier:");0=jd.length&&(Lc=0);a.Xa=uc;At++;Rg--}}At||(a.P("no "+zt+"history available"),a.Xa= void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255>>0,65536>4||1;cC--&&0Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Gt)}Ug&&a.P(Ug);a.Ma=rf}}}}}break;case "e":if("else"==g[0])break;var $i= -1,Ht=255,It=a.Ia,Jt=a.fc;"ew"==g[0]&&($i=2,Ht=65535,It=a.Yc,Jt=a.jl);var Kt=$i<<1,Lt=g[1];if(null==Lt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Ry(a,Lt);if(aj)for(var bj=2;bjAm;){for(var kd=null,hC=256;Sd.Ja>>>0>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!hC--)break;Zg.U=Nt;if(kd=iB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=iB(a,Zg,!0)){Nt=a.jb(Sd,!0);0Am;){for(var kd=null,hC=256;Td.Ja>>>0>>0;){Zg.Ja=a.jb(Td,!0);if(null==Td.ya||!hC--)break;Zg.U=Nt;if(kd=iB(a,Zg))break;Zg.U=a.jb(Td);if(kd=iB(a,Zg,!0)){Nt=a.jb(Td,!0);0\nLicense: GPL version 3 or later ");for(b=0;b\nLicense: GPL version 3 or later ");for(b=0;bFB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",PB);this.F.load()&&(QB(this,d),a=RB,SB(this.F));this.F.set(MB,Ea());TB(this.F);var e=this.A&&!this.I;if(a==NB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=LB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!= -g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(UB,""),this.B=null)):this.P(f+": "+g),SB(d),d.load()?(c=LB(d),e=!0):c=!1))}e&&JB(this,c?d:null)}else a==RB&&d.clear()}else JB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;fa[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(VB(this,this.H,b,c,a),this.H.mf());this.Y&&(QB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0}; +l.Lf=function(a){void 0===a&&(a=this.A||(this.L?NB:FB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Wf(this,"1.34.3");if(a==OB)b=!0;else if(a>FB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",PB);this.F.load()&&(QB(this,d),a=RB,SB(this.F));this.F.set(MB,Ea());TB(this.F);var e=this.A&&!this.I;if(a==NB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=LB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!= +g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(UB,""),this.B=null)):this.P(f+": "+g),SB(d),d.load()?(c=LB(d),e=!0):c=!1))}e&&JB(this,c?d:null)}else a==RB&&d.clear()}else JB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;fa[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(VB(this,this.H,b,c,a),this.H.lf());this.Y&&(QB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0}; function QB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}} function kB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",KB),h=Ea();g.set(MB,h);f.set(MB,h);f.set(WB,"1.34.3");f.set(XB,window?window.location.href:null);f.set(YB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k>>b.A;d=d+e-1>>>b.A;c.bh=0;for(c.Hd=0;f<=d;)e=b.aa[f],c.bh+=e.size,e.size&&(c.Sg.push(Fa(bc,f,0,0,e.type)),c.Hd++),f++;a.A=c;a.da=a.A.Hd*a.ka.B/(ac*kc);d=0;a.A.aj=0;a.A.lf||(a.A.lf=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.Nc>>b.A;d=d+e-1>>>b.A;c.ah=0;for(c.Hd=0;f<=d;)e=b.aa[f],c.ah+=e.size,e.size&&(c.Rg.push(Fa(bc,f,0,0,e.type)),c.Hd++),f++;a.A=c;a.da=a.A.Hd*a.ka.B/(ac*kc);d=0;a.A.$i=0;a.A.kf||(a.A.kf=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.Nc>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var PB="failsafe",KB="validate",MB="timestamp",WB="version",XB="url",YB="browser",UB="user",OB=-1,FB=0,NB=1,RB=2,$B=3; -$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;b]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g, "©"),a=Wa(c,"javascript",!1,g),a=a+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('
\n')+"...\n",a=a+('