      JSB MFSR1     FAILURE, REPORT 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      ISY           ROLLOVER YET??
      JMP OLPG2      NO, DO OUTER LOOP AGAIN. 
      SPC 1 
      LDB TWN2K     SET B=22K 
      JSB MEMAD     AND WRITE MEMAD IN SYSTEM PAGE10
      SPC 1 
      SJP *+2       ENABLE THE SYSTEM MAP 
      LDA TWNTK     SET THE SOURCE AND
      LDB TWNTK      DESTINATION ADDRESSES
      LDX MASK7      AND COUNT, AND 
      MWI            MOVE SEVEN WORDS INTO THE USER 
      NOP 
      DJP *+2       DISABLE FOR CHECK/VERIFY
      LDA TWNTK     PUT THE 'ACTUAL' AND
      LDB TWN2K      'EXPECTED' ADDRESS,
      LDX NDN07      THE COMPARE COUNT
      JSB GCOMP     AND COMPARE SEVEN MOVED WORDS 
      JSB MTUR1     FAILURE DETECTED, REPORT
      SPC 1 
      SJP *+2       REENABLE THE SYSTEM MAP 
      LDA TWNTK     POINT TO PAGE 10 OF 
      LDB TWNTK     THE SYSTEM AND USER MAPS
      LDX OCT2K     AND MOVE 2K(8)
      MWI           WORDS 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       NOW DISABLE THE SYSTEM
      LDA TWNTK     SET THE POINTERS
      LDB TWN2K      TO THE SOURCE AND DESTINATION
      LDX NON2K      AND COMPARE THE
      JSB GCOMP      SOURCE AND DESTINATION 
      JSB MTUR1     ERROR RETURN, TELL CONSOLE
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      LDB TWNTK     WRITE MEMORY ADDRESSES
      JSB MEMAD     IN THE SOURCE 
      LDB TWN2K     AND ZERO THE
      JSB GZERO     DESTINATION 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      UJP *+2       ENABLE THE USER AREA
      LDA TWNTK     POINT TO ADDRESS 20000
      LDB TWNTK     AND 22000(WHEN SYS IS ENABLED)
      LDX MASK7     COUNT OF SEVEN, AND 
      MWI           MOVE THE WORDS
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE FOR VERIFICATION
      LDA TWN2K     POINT TO DESTINATION
      LDB TWNTK     AND SOURCE, 
      LDX NDN07     COMPARE THE TWO 
      JSB GCOMP     AREAS 
      JMP MTSR1     ERROR DETECTED, REPORT
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      UJP *+2       RE-ENABLE THE USER MAP
      LDA TWNTK     SOURCE (USER 20000) 
      LDB TWNTK     DESTINATION (SYSTEM 20000)
      LDX OCT2K     MOVE 2000 (OCTAL) WORDS 
      MWI           INTO THE SYSTEM AREA
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+1       DISABLE FOR THE COMPARE ROUTINE 
      LDA TWN2K     GET THE ACTUAL ADDRESS POINTER
      LDB TWNTK     AND THE EXPECTED ADDRESS POINTER
      LDX NON2K     COMPARE THE TWO 
      JSB GCOMP      PAGES TO VERIFY MWI
      JSB MTSR1     ERROR DECTECTED, REPORT 
      NOP 
      SPC 1 
      JSB GINIT     SETUP POINTER AND COUNTER 
MTUOL LDB TWNTK 
      JSB CHPTN     CHANGE THE PATTERN
      SJP *+2       ENABLE THE SYSTEM 
      LDA TWNTK     POINT TO PAGE TEN, SOURCE 
      LDB TWNTK     AND DESTINATION 
      LDX OCT2K     MOVE 2000B WORDS FROM THE 
      MWI           SYSTEM TO THE USER
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE SYSTEM
      LDA TWNTK     COMPARE THE SOURCE AND
      LDB TWN2K      DESTINATION AREAS
      LDX NON2K      USING THE COMPARE
      JSB GCOMP      ROUTINE. 
      JSB MTUR1     ERROR RETURN- REPORT
      NOP 
      ISY           ROLLOVER YET??
      JMP MTUOL     DO AGAIN UNTIL XTHRU ROLLOVER 
      SPC 1 
      JSB GINIT     SETUP POINTER AND COUNTER 
MTSOL LDB TWN2K     CHANGE THE PATTERN
      JSB CHPTN     THE SOURCE AREA 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      UJP *+2       ENABLE THE USER MAP 
      LDA TWNTK     MOVE 2K WORDS FROM FROM THE 
      LDB TWNTK     USER TO THE SYSTEM
      LDX OCT2K     MAP USING THE 
      MWI           MWI INSTRUCTION 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE THE M.E.M.
      LDA TWN2K      AND COMPARE THE
      LDB TWNTK      SOURCE AND DESTINATION 
      LDX NON2K      ADDRESS USING THE
      JSB GCOMP      COMPARE ROUTINE
      JSB MTSR1     ERROR DETECTED, REPORT
      ISY           ROLLOVER YET??
      SPC 1 
      JMP MTSOL     DO AGAIN UNTIL ROLLOVER 
      CCA           STORE ALL ONES WORD INTO SOURCE 
      STA TWNTK,I   ADDRESS FOR NEXT TEST 
      SJP *+2       ENABLE THE SYSTEM 
      LDA TWNTK     SET A SOURCE ADDRESS OF 
      LDB A         20K AND A DESTINATION 
      INB           ADDRESS OF 20K+1
      LDX OTC01 
      MWW           WITHIN THE USER AREA
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE FOR CHECK 
      LDA TWKP1,I   GET THE MOVED VALUE 
      CCB           AND PUT AN EXPECTED IN B
      CPA B         COMPARE THE TWO 
      JMP *+4       OVER THE ERROR
      LDX TWKP1     DID NOT COMPARE, GET ADDRESS
      JSB MWUR1     AND REPORT ERROR
      SPC 1 
      LDA PTRN1     PUT DIFFERENT PATTERNS
      STA TWN2K,I   IN THE SOURCE AND 
      CMA           DESTINATION ADDRESSES 
      STA TW2P1,I   FOR NEXT CHECK
      UJP *+2       ENABLE THE USER MAP 
      LDA TWNTK     MOVE ONE WORD IN THE
      LDB TWKP1     SYSTEM AREA FROM
      LDX OTC01 
      MWW           (PHYSICAL ADDRESSES 22K & 22K+1)
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE FOR VERIFICATION
      LDA TW2P1,I   GET ACTUAL
      LDB PTRN1     AND EXPECTED PATTERNS 
      CPA B         COMPARE THE TWO 
      JMP *+4       COMPARE OK, OVER ERROR
      LDX TW2P1     DID NOT COMPARE, GET ADDRESS
      JSB MWSR1     AND REPORT THE FAILURE. 
      SPC 1 
      LDB TWNTK     WRITE A MEMORY ADDRESS
      JSB MEMAD     IN THE SOURCE&DESTINATION 
      SJP *+2       ENABLE THE SYSTEM 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA TWNTK     GET SOURCE ADDRESS=20K
      LDB TWN1K     AND DESTINATION=21K 
      LDX OC100     MOVE THE 1ST 100 WORDS AT 20K 
      MWW           TO THE 1ST 100 WORDS AT 21K 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE FOR VERIFICATION
      LDB TWNTK     GET ACTUAL ADDRESS
      LDA TWN1K     AND ESTABLISH AN EXPECTED 
      STA GPAD1     ADDRESS POINTER 
      LDY NO100     AND XTHRU COUNTER OF 100
MWLP1 LDA GPAD1,I   GET MOVED DATA
      CPA B         COMPARE TO UNMOVED
      JMP *+4       COMPARE OK, ONWARD
      LDX GPAD1     WHOOPS, GET THE ADDRESS 
      JSB MWUR1     AND REPORT THE ERROR
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      INB           BUMP:       SOURCE POINTER
      ISZ GPAD1                 DESTINATION POINTER 
      ISY                       XTHRU 
      JMP MWLP1     DO UNTIL XTHRU=10 
      LDB TWN2K     WRITE A MEMORY ADDRESS
      JSB MEMAD     IN THE SYSTEM SOURCE & DEST.
      UJP *+2       ENABLE THE USER 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA TWNTK     MOVE 100 WORDS FROM THE 
      LDB TWN1K     SYSTEM ADDRESS 20K TO THE 
      LDX OC100     21K ADDRESS 
      MWW 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE TO ALLOW CHECK
      SPC 1 
      LDB TWN2K     ESTABLISH A POINTER TO ACTUAL 
      LDY NO100     AND XTHRU COUNTER 
      LDA TWN3K     AND FINALLY TO THE
      STA GPAD1     EXPECTED ADDRESSES
MWLP2 LDA GPAD1,I   GET MOVED WORD
      CPA B         VALID?
      JMP *+4       YES, OVER THE ERROR 
      LDX GPAD1     NO, GET THE ADDRESS 
      JSB MWSR1     AND REPORT THE ERROR
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      INB           BUMP THE ACTUAL 
      ISZ GPAD1     AND EXPECTED POINTERS,
      ISY           AND THE XTHRU COUNTERS
      JMP MWLP2     THEN DO AGAIN UNTIL ROLLOVER
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      JSB GINIT     SETUP POINTER AND COUNTER 
MWLP3 LDA TWNTK     WRITE A RECOGNIZABLE
      JSB CHPTN     PATTERN IN THE SOURCE 
      SJP *+2       TURN SYSTEM MAP ON
      LDA TWNTK     MOVE THE CONTENTS 
      LDB TWN2K     OF USER PAGE 10 TO
      LDX OCT2K     USER PAGE 11
      MWW 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO CHECK
      LDA TWN4K     POINT TO PHYSICAL PAGE 12 
      LDB TWNTK     AND PAGE 10 
      LDX NON2K     COUNT OF 2K 
      JSB GCOMP     COMPARE THE TWO PAGES 
      JSB MWUR1     ERROR DETECTED, REPORT
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      ISY           AND THE XTHRU 
      JMP MWLP3 
      SPC 2 
      JSB GINIT     SETUP POINTER AND COUNTER 
MWLP4 LDA TWN2K     PUT THE RECOGNIZABLE PATTERN
      JSB CHPTN     INTO THE SOURCE ADDRESSES 
      UJP *+2       ENABLE THE USER 
      LDA TWNTK     MOVE 2K WORDS FROM PHYSICAL(11),
      LDB TWN2K     SYSTEM(10) TO PHYSICAL(13), 
      LDX OCT2K     SYSTEM(11)
      MWW 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE M.E.M. FOR VERIFICATION 
      LDA TWN6K     VERIFY THAT THE WORDS MOVED 
      LDB TWN2K     WITHIN THE SYSTEM AREA
      LDX NON2K     BY THE USER COMPLETED 
      JSB GCOMP     SUCESSFULLY 
      JSB MWSR1     DID NOT, REPORT ERROR 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      ISY           XTHRU???
      JMP MWLP4 
      SPC 2 
      NOP 
      JMP TST06,I 
      SKP 
CHPTN NOP 
      STB UPNTR     STORE THE TARGET ADDRESS
      LDA GPCTR,I   GET THE FIRST PATTERN 
      ISZ GPCTR     BUMP PATTERN TABLE POINTER
      LDB GPCTR,I   GET THE SECOND PATTERN
      ISZ GPCTR     AND BUMP THE POINTER AGAIN
      LDX NON2K     INITIALIZE A 2K XTHRU 
.CHP. STA UPNTR,I   STORE PATTERN 1 
      ISZ UPNTR     AND PATTERN 2 
      STB UPNTR,I   INTO THE TARGET 
      ISZ UPNTR     AREAS 
      ISX           INCREMENT XTHRU COUNTER 
      JMP .CHP.     DO AGAIN UNTIL XTHRU ROLLOVER 
      JMP CHPTN,I   EXIT AFTER 2K PAGE IS FILLED
      SPC 1 
UPNTR OCT 0 
GPCTR OCT 0 
GTBLP DEF MWPT1 
MWPT1 OCT 052525,052525,125252,125252 
      OCT 052525,125252,031463,146314 
      OCT 133333,044444,177777,000000 
      OCT 000377,177400,044444,125252 
      OCT 073567,135673,100201,100001 
MFUR1 NOP 
      STY SVPD4 
      LDY MFUR1 
      JSB ERMS,I
      DEF E122
      LDY SVPD4 
      JMP .GCOM     BACK TO COMPARE ROUTINE 
      SPC 1 
MFSR1 NOP 
      STY SVPD4     SAVE XTHRU COUNTER
      LDY MFSR1 
      JSB ERMS,I
      DEF E123
      LDY SVPD4     RESTORE XTHRU COUNTER 
      JMP .GCOM     BACK TO COMPARE ROUTINE 
      SPC 1 
MTUR1 NOP 
      STY SVPD4     SAVE XTHRU COUNTER
      LDY MTUR1 
      JSB ERMS,I
      DEF E124
      LDY SVPD4 
      SPC 2 
      SKP 
MTSR1 NOP 
      STY SVPD4 
      LDY MTSR1 
      JSB ERMS,I
      DEF E125
      LDY SVPD4 
      JMP .GCOM     BACK TO COMPARE ROUTINE 
      SPC 1 
MWUR1 NOP 
      STY SVPD4 
      LDY MWUR1 
      JSB ERMS,I
      DEF E126
      LDY SVPD4 
      JMP .GCOM     BACK TO COMPARE ROUTINE 
      SPC 1 
MWSR1 NOP 
      STY SVPD4 
      LDY MWSR1 
      JSB ERMS,I
      DEF E127
      LDY SVPD4 
      JMP .GCOM     BACK TO COMPARE ROUTINE 
      SPC 2 
TWKP1 OCT 20001 
TW2P1 OCT 22001 
OTC01 OCT 1 
TWNM5 OCT 17773 
TW2M5 OCT 21773 
GXTHR OCT 0 
NO100 OCT -100
NDN07 OCT -7
NDN10 DEC -10 
      SKP 
GCOMP NOP 
      STX GPAD1     INITIALIZE THE COUNTER
      STB GPAD3      ADDRESS POINTER (EXPECTED) 
      STA GPAD2      ADD PATTERN
GCOM. LDA GPAD2,I   GET ACT PATTERN 
      CPA GPAD3,I   COMPARE A TO THE MOVED PATTERN
      JMP *+5       COMPARE OK, OVER THE ERROR
      LDX GPAD3     DID NOT COMPARE,
      LDB GPAD3,I   GET THE ADDRESS AND EXPECTED
      JMP GCOMP,I    AND USE ERROR EXIT.
.GCOM ISZ GPAD3     INCREMENT THE POINTER 
      ISZ GPAD2     BUMP ACT ADDRESS POINTER
      ISZ GPAD1      AND XTHRU? 
      JMP GCOM.     NO XTHRU, DO AGAIN. 
      ISZ GCOMP     XTHRU ROLLOVER, INCREMENT THE 
      JMP GCOMP,I    RETURN ADDRESS AND EXIT
     SPC 2
GPAD1 OCT 0 
GPAD2 OCT 0 
GPAD3 OCT 0 
NON2K OCT -2000 
      SPC 1 
MEMAD NOP 
      LDX NON2K 
      STB B,I       STORE ADDRESS INTO CONTENTS 
      INB           BUMP ADDRESS
      ISX 
      JMP *-3 
      JMP MEMAD,I    YES, EXIT. 
      SPC 2 
GZERO NOP 
      LDX NON2K     INITIALIZE A 2K COUNT XTHRU 
      CLA           ZERO A
      STA B,I       ZERO CONTENTS OF ADDRESS IN B 
      INB           NEXT ADDRESS
      ISX           BUMP THE TIMES THRU COUNTER 
      JMP *-3 
      JMP GZERO,I    YES, EXIT
      HED MOVE BYTE INSTRUCTIONS
* 
* 
*     TST07 
* 
*     TEST 07VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE 
*     REQUIRED TO EXECUTE THE FOLLOWING INSTRUCTIONS: 
* 
*              MBF - MOVE BYTES FROM THE ALTERNATE MAP
*              MBI - MOVE BYTES INTO THE ALTERNATE MAP
*              MBW - MOVE BYTES WITHIN THE ALTERNATE MAP
* 
*     THESE MACRO INSTRUCTIONS MOVE A STRING OF BYTES USING THE 
*     ALTERNATE PROGRAM MAP AS THE SOURCE AND/OR DESTINATION. 
* 
*     TESTHH IS COMPRISED OF THREE SUBTESTS, AND FOLLOWS THE TEST 
*     PATHS USED IN TSTGG.(MOVE WORDS TEST) 
* 
*     ERROR DETECTION AND REPORTING ARE THE SAME AS EXPLAINED IN
*     TSTGG.
* 
      SKP 
TST07 EQU * 
      SPC 1 
      NOP 
      JSB LODUP     WRITE MAP REGISTERS 
      LDA MWPT1     PLACE A RECOGNIZABLE PATTERN
      STA TWN2K,I   IN BOTH THE DESTINATION (SYSTEM)
      LDA ASCAA     AND IN THE
      STA TWNTK,I   SOURCE (USR)
      SPC 1 
      SJP *+2       ENABLE THE SYSTEM 
      LDA FORTK     MOVE ONE BYTE FROM
      LDB FORTK     THE SOURCE(USER)
      LDX OTC01     TO THE DESTINATION (SYSTEM AREA)
      MBF           USING THE MBT INSTRUCTION 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2 
      LDA TWN2K,I   GET MOVED BYTE
      CPA ASCAU     PROPER OPERATION? 
      JMP HCTU1      YES, JMP TO FIRST CONTINUE 
      LDB ASCAU      NO, PROCESS THE ERROR
      LDX TWN2K     GET THE DESTINATION 
      LDY TWNTK     AND SOURCE ADDRESSES
      JSB MBFU1     THEN REPORT THE FAILURE 
      SPC 1 
HCTU1 LDA ASCUA     PUT ANOTHER PATTERN 
      STA TWNTK,I   IN THE USER DESTINATION ADDRESS 
      UJP *+2       ENABLE THE USER AREA
      LDA FORTK     SOURCE
      LDB FORTK     DESTINATION 
      LDX OTC01     COUNT 
      MBF           MOVE BYTES FROM SYSTEM
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE FOR TEST
      LDA TWNTK,I   GET THE MOVED BYTE
      CPA ASCAA     DID IT MOVE OK? 
      JMP HCTU2      YES, OVER ERROR HANDLING STUFF 
      LDB ASCAA      NO, GET THE EXPECTED PATTERN 
      LDX TWNTK      AND THE DESTINATION
      LDY TWN2K      AND SOURCE ADDRESSES 
      JSB MBFS1      THEN REPORT THE ERROR
      SKP 
HCTU2 JSB GINIT 
HERE1 LDB TWNTK     CHANGE THE DATA 
      JSB CHPTN     PATTERN IN THE SOURCE 
      SJP *+2       ENABLE THE SYSTEM MAP 
      LDA FORTK     MOVE 100 BYTES
      LDB FORTK     FROM THE USER MAP 
      LDX OC101     TO THE SYSTEM MAP 
      MBF           USING THE MBF INSTRUCTION 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO VERIFY 
      LDA TWN2K     ACTUAL AND
      LDB TWNTK     EXPECTED
      LDX OC101     COUNT 
      JSB BYCMP     COMPARE THE TWO 
      JSB MBFU2     ERROR DETECTED, REPORT
      JSB MBFU1     ODD BYTE ERROR DETECTED 
      ISY           XTHRU ROLLOVER? 
      JMP HERE1     NO, DO AGAIN
      SPC 1 
      JSB GINIT     SETUP POINTER AND COUNTER 
HERE2 LDB TWN2K     CHANGE THE PATTERN IN 
      JSB CHPTN     THE SOURCE ADDRESSES
      UJP *+2       ENABLE THE USER 
      LDA FORTK     SOURCE ADDRESS
      LDB FORTK     DESTINATION ADDRESS 
      LDX OC101     COUNT OF 100
      MBF           MOVE 100 BYTES
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO VERIFY 
      LDA TWNTK     GET THE DESTINATION 
      LDB TWN2K     AND SOURCE ADDRESS POINTERS 
      LDX OC101     A COUNT,
      JSB BYCMP      AND COMPARE THE MOVED BYTES
      JSB MBFS2     ERROR DETECTED, REPORT
      JSB MBFS1     ODD BYTE ERROR, REPORT
      ISY           BUMP THE XTHRU
      JMP HERE2     DO AGAIN UNTIL ROLLOVER 
      SKP 
      LDB TWNTK     ZERO THE DESTINATION
      JSB GZERO     ADDRESS 
      JSB GINIT     SETUP POINTER AND COUNTER 
HERE5 LDB TWNTK     PUT THE NEXT PATTERN
      JSB CHPTN     INTO THE SOURCE ADDRESS 
      SPC 1 
      SJP *+2       ENABLE THE SYSTEM 
      LDA FORTK     MOVE 101
      LDB FORTK     BYTES FROM
      LDX OC101     THE CURRENTLY ENABLED 
      MBI           TO THE ALTERNATE MAP
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO VERIFY 
      LDA TWNTK     AND 
      LDB TWN2K     COMPARE THE 
      LDX OC101     SOURCE AND DESTINATION
      JSB BYCMP     AREAS 
      JSB MBTU2     FAILURE IN GCOMP
      JSB MBTU1     FAILURE, REPORT 
      ISY           XTHRU ROLLOVER? 
      JMP HERE5     DO AGAIN UNTIL XTHRU
      SPC 1 
      JSB GINIT     SETUP POINTER AND COUNTER 
HERE6 LDB TWN2K     CHANGE THE
      JSB CHPTN     SOURCE PATTERN
      UJP *+2       ENABLE THE USER MAP 
      LDA FORTK     MOVE 101
      LDB FORTK     BYTES 
      LDX OC101     MAP TO THE
      MBI            SYSTEM MAP 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO VERIFY 
      LDA TWN2K     DESTINATION 
      LDB TWNTK     AND SOURCE ADDRESS
      LDX OC101     BYTE COUNT
      JSB BYCMP     COMPARE SOURCE AND DESTINATION
      JSB MBTS2     FAILURE 
      JSB MBTS1     ERROR RETURN, REPORT
      ISY           BUMP XTHRU
      JMP HERE6     DO AGAIN UNTIL ROLLOVER 
      SKP 
      JSB GINIT     SETUP POINTER AND COUNTER 
HERE7 LDB TWNTK     PLACE A PATTERN 
      JSB CHPTN     IN THE SOURCE 
      LDB TWN1K     AND ZERO THE
      JSB GZERO     DESTINATION 
      SJP *+2       ENABLE
      LDA FORTK     AND 
      LDB FOR2K     MOVE
      LDX OC101     101 
      MBW           BYTES 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO VERIFY 
      LDA TWN1K     MAKE SURE THAT
      LDB TWNTK     THE SOURCE AND
      LDX OC101     DESTINATION 
      JSB BYCMP     ARE THE SAME
      JSB MBWU2 
      JSB MBWU1     ERROR DETECTED, REPORT IT 
      ISY           XTHRU ROLLOVER? 
      JMP HERE7     NO, DO AGAIN
      SPC 1 
      JSB GINIT     SETUP POINTER AND COUNTER 
HERE8 LDB TWN2K     PUT A NEW PATTERN 
      JSB CHPTN     IN THE SOURCE, AND
      LDB TWN3K     ZERO THE
      JSB GZERO     DESTINATION 
      UJP *+2       ENABLE THE USER 
      LDA FOR4K     MOVE 101
      LDB FOR6K     BYTES WITHIN
      LDX OC101     THE SYSTEM
      MBW           MAP 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE TO VERIFY 
      LDA TWN6K     V 
      LDB TWN7K      E
      LDX OC101       R 
      JSB BYCMP        I
      JSB MBWS2         F 
      JSB MBWS1          Y
      ISY 
      JMP HERE8     DO AGAIN UNTIL ROLLOVER 
      NOP 
      JMP TST07,I   EXIT
      SKP 
ASCAA OCT 040501
ASCAU OCT 040525
ASCUA OCT 052501
OC101 OCT 101 
      SPC 2 
GINIT NOP 
      LDA GTBLP 
      STA GPCTR 
      LDY NDN10 
      JMP GINIT,I 
      SPC 2 
BYCMP NOP 
      STA HPAD1     SAVE ACT (SOURCE) 
      STB HPAD2     SAVE EXPECTED (DESTINATION) 
      STX HPAD3     BYTE COUNT
      STX A         CALCULATED
      NOP 
      CMA,INA       THE WORD
      CMA           COUNT 
      RAR           THE BYTE COUNT
      STA HPAD3     SAVE FOR LATER
      CMA,INA       MAKE X REGISTER 
      CAX           NEGATIVE WORD COUNT 
      NOP 
      LDA HPAD1     RESTORE ADDRESS 
      JSB GCOMP     AND COMPARE WORDS 
      JMP BYCMP,I     ERROR EXIT FROM GCOMP 
      ISZ BYCMP     NORMAL RETURN FROM GCOMP
      NOP 
      LDA HPAD3     GET DISPLACEMENT
      ADA HPAD2     CALCULATE THE ODD BYTE(ACT) 
      LDA A,I       NOW GET THE DATA BYTE 
      AND UMASK     STRIP THE UNNEEDED BYTE 
      STA B         PLACE IN B FOR COMPARE
      LDA HPAD3     GET THE DISPLACEMENT AGAIN
      ADA HPAD1     CALCULATE EXPECTED ODD BYTE ADDRESS 
      CAX           SAVE IN CASE OF ERROR 
      LDA A,I       GET THE DATA BYTE 
      AND UMASK     STRIP 
      CPA B          COMPARE??
      JMP *+2       YES OVER ERROR
      JMP BYCMP,I    NO USE ERROR EXIT
      ISZ BYCMP     BUMP PAST ERROR EXIT
                                                                                                                                                                                                                                          