*7400 / MEMORY ADDRESS TEST (HIGH, PAGE 30) / LOAD MEMORY, FORWARD DIRECTION LOADUP, TAD LIMLO DCA ADRES /SET TEST AREA STARTING ADDRESS TAD M7400 DCA CTR TAD ADRES DCA I ADRES / DEPOSIT ADDRESS IN CONTENTS ISZ ADRES ISZ CTR JMP LOADUP+4 TAD LIMLO DCA ADRES TAD M7400 DCA CTR MEMLUP, TAD I ADRES / GET CONTENTS FORWARD DIRECTION CIA TAD ADRES / GET ADDRESS SZA / SKIP IF EQUAL JMS ERROR / CONTENTS NOT SAME AS ADDRESS ISZ ADRES / SELECT NEXT ADDRESS ISZ CTR / SKIP IF END OF TEST AREA JMP MEMLUP / LOAD MEMORY, REVERSE DIRECTION LOADWN, TAD LIMHI DCA ADRES / SET TEST AREA ENDING ADDRESS TAD M7400 DCA CTR TAD ADRES DCA I ADRES / DEPOSIT ADDRESS IN CONTENTS CLA CMA / AC=-1 TAD ADRES / AC=(ADRES)-1 DCA ADRES / DECREMENT ADDRESS ISZ CTR / SKIP WHEN LOWER LIMIT REACHED JMP LOADWN+4 TAD M7400 DCA CTR / SEQUENTIAL LOCATION TEST (DOWN) LOOP2, TAD LIMHI DCA ADRES / SET STARTING ADDRESS TAD I ADRES / GET CONTENTS CIA TAD ADRES / GET ADDRESS SZA / SKIP IF EQUAL JMS ERROR / CONTENTS NOT SAME AS ADDRESS CLA CMA / AC=-1 TAD ADRES / AC=(ADRES)-1 DCA ADRES / SELECT NEXT ADDRESS ISZ CTR / SKIP IF END OF TEST AREA JMP LOOP2+2 ISZ COUNT JMP LOADUP TAD RESTOR DCA COUNT TAD CR JMS PRINT TAD LF JMS PRINT TAD K261 JMS PRINT TAD K261 JMS PRINT JMP LOADUP / CONSTANTS AND VARIABLES ADRES, 0 LIMHI, 7377 LIMLO, 0 M7400, -7400 COUNT, -140 RESTOR, -140 K261, 261 M4, -4 CTR, 0 MSK7, 7 TW6, 260 STOR, 0 NUM, RAL CONT, 0 CR, 215 LF, 212 SPACE, 240 A, 301 C, 303 / ERROR ROUTINE ERROR, 0 CIA / RESTORE CONTENTS TAD ADRES / OF FAILING ADDRESS DCA CONT / PUT RESULT IN CONT / ERROR MESSAGE MESG, TAD CR JMS PRINT TAD LF JMS PRINT TAD A JMS PRINT TAD ADRES JMS TYPAC TAD SPACE JMS PRINT TAD C JMS PRINT TAD CONT JMS TYPAC LAS SPA CLA HLT / HALT ON ERROR (SR0) JMP I ERROR PRINT, 0 TLS TSF JMP .-1 CLA JMP I PRINT / TYPE (AC) IN OCTAL TYPAC, 0 DCA STOR TAD BACK+1 DCA BACK+2 TAD M4 DCA CTR CLL BACK, TAD STOR RTL RTL DCA STOR TAD STOR AND MSK7 TAD TW6 JMS PRINT TAD NUM DCA BACK+2 ISZ CTR JMP BACK JMP I TYPAC $