/ SELF-STARTING BINARY LOADER (FOR EDU2 PAL8-V10D NO DATE PAGE 1 / SELF-STARTING BINARY LOADER (FOR EDU20C BASIC) / SIGNIFICANTLY MODIFIED FROM ORIGINAL BINARY LOADER: / DEC-08-LBAA-LA / / NOTES: / NOT RE-START-ABLE, RE-LOAD FOR EACH USE / RUNS ONLY IN INSTRUCTION FIELD 0 / SENSES LOW VS. HIGH SPEED BY QUERYING RIM LOADER / SELF-STARTS FROM RIM TO BIN BY PATCHING 07774 / YOU NEED TO RESET IT TO 3376 TO REUSE RIM / SELF-STARTS FROM BIN TO READ-IN .BN TAPE THROUGH / THE FOLLOWING TWO DEFINITIONS: 6213 STFLD=CIF CDF 10 / EDU20C BASIC STARTS IN FIELD 1 2000 STADDR=2000 / AT ADDRESS 2000 7600 *7600 07600 6032 BEGIN, KCC / START LOW SPEED READER 07601 6014 RFC / START HIGH SPEED READER 07602 1356 TAD RIM1 / GET FIRST WORD OF RIM LOADER 07603 1323 TAD MKCC 07604 7650 SNA CLA / USE WHICH READER? 07605 5210 JMP .+3 / USE LOW SPEED 07606 1324 TAD HSRDR / USE HIGH SPEED 07607 3310 DCA READ+1 07610 4250 JMS BEGG 07611 5210 JMP .-1 / IGNORE LEADER 07612 3331 GO, DCA CHKSUM / NOT LEADER (ANY MORE) 07613 1330 TAD MEMTEM 07614 3233 DCA MEMFLD / SET DATA FIELD TO STORE INTO 07615 1332 TAD CHAR 07616 3334 DCA WORD1 / SAVE 1ST CHAR OF NEXT WORD 07617 4307 JMS READ 07620 3335 DCA WORD2 / SAVE 2ND CHAR OF NEXT WORD 07621 4250 JMS BEGG / LOOK AHEAD 07622 5240 JMP BEND / IS TRAILER: SO FINISH UP 07623 4300 JMS ASSEMB / ISN'T TRAILER: COMBINE PARTS 07624 7420 SNL / NEW ORIGIN SETTING? 07625 5233 JMP MEMFLD / ISN'T NEW ORIGIN: SAVE DATA 07626 3333 DCA ORIGIN / IS NEW ORIGIN: SAVE IT 07627 1334 CHEX, TAD WORD1 / UPDATE CURRENT CHECKSUM 07630 1335 TAD WORD2 07631 1331 TAD CHKSUM 07632 5212 JMP GO 07633 0000 MEMFLD, 0 / NOT ORIGIN, SET DATA FIELD 07634 3733 DCA I ORIGIN / SAVE THE DATA 07635 2333 ISZ ORIGIN / INCREMENT THE ADDRESS 07636 7600 M200, 7600 / SAFETY FOR ORIGIN == 7777 07637 5227 JMP CHEX / GO TO CHECKSUM CALCULATION / TRAILER CODE SEEN, FINISH UP 07640 4300 BEND, JMS ASSEMB / ASSEMBLE CHECKSUM FROM TAPE / SELF-STARTING BINARY LOADER (FOR EDU2 PAL8-V10D NO DATE PAGE 1-1 07641 7041 CIA 07642 1331 TAD CHKSUM / COMPARE TO COMPUTED CHECKSUM 07643 7440 SZA / SAME? 07644 7402 M376, HLT / NO: BAD READ, DON'T SELF-START 07645 6213 STFLD / YES: SET STARTING FIELD 07646 5647 JMP I .+1 / AND GO TO STARTING ADDR 07647 2000 STADDR / EXTRACT ERRORS, FIELDS, LEADER/TRAILER / REQUIRES / AC == 0 / GUARANTEES / ANY ASSEMBLER ERROR OUTPUT HAS BEEN SKIPPED / LAST (IF ANY) NEW FIELD SETTING HAS BEEN SAVED / AC == 0 / RETURNS TO CALL+1 WHEN LEADER/TRAILER WAS READ / RETURNS TO CALL+2 WHEN NOT LEADER/TRAILER READ 07650 0000 BEGG, 0 07651 3336 DCA SWITCH / SET SWITCH FOR ERROR DATA 07652 4307 JMS READ / GET THE NEXT CHARACTER 07653 1244 TAD M376 / TEST FOR ASSEMBLER ERROR 07654 7750 SPA SNA CLA / FOUND A RUBOUT (377)? 07655 5261 JMP .+4 / NO 07656 2336 ISZ SWITCH / YES: COMPLEMENT SWITCH 07657 7040 CMA 07660 5251 JMP BEGG+1 07661 1336 TAD SWITCH / IT'S NOT RUBOUT (377) 07662 7640 SZA CLA / IS SWITCH SET? 07663 5252 JMP BEGG+2 / YES; IGNORE? 07664 1332 TAD CHAR / NO; TEST FOR CODE 07665 0325 AND MASK / SAVE ONLY X00 BITS 07666 1236 TAD M200 07667 7510 SPA 07670 2250 ISZ BEGG / IT'S EITHER DATA OR ORIGIN 07671 7750 SPA SNA CLA 07672 5650 JMP I BEGG / DATA, ORIGIN, OR LDR/TRLR 07673 1332 TAD CHAR / IT'S A FIELD SETTING 07674 0326 AND FMASK 07675 1327 TAD CHANGE 07676 3330 DCA MEMTEM 07677 5252 JMP BEGG+2 / CONTINUE INPUT / ASSEMBLE WORD1, WORD2 INTO A FULL WORD / REQUIRES / AC == 0 / FIRST CHAR (HIGH HALF) IN WORD1 / SECOND CHAR (LOW HALF) IN WORD2 / GUARANTEES / ASSEMBLED WORD IN AC / LINK == 1 IFF IT'S A NEW ORIGIN SETTING 07700 0000 ASSEMB, 0 07701 1334 TAD WORD1 / GET THE HIGH HALF / SELF-STARTING BINARY LOADER (FOR EDU2 PAL8-V10D NO DATE PAGE 1-2 07702 7106 CLL RTL / SHIFT IT INTO PLACE 07703 7006 RTL 07704 7006 RTL 07705 1335 TAD WORD2 / ADD IN THE LOW HALF 07706 5700 JMP I ASSEMB / READS THE NEXT CHAR OFF THE CORRECT TAPE DEVICE / REQUIRES / AC == 0 / GUARANTEES / TAPE DEVICE IS ADVANCING TO NEXT CHARACTER / LAST CHARACTER READ IN BOTH AC AND CHAR 07707 0000 READ, 0 07710 7000 NOP / TTY: --> NOP, PTR: --> JMP HIR 07711 6031 LOR, KSF / WAIT FOR TTY: READER FLAG 07712 5311 JMP .-1 07713 6036 KRB / GET NEXT TTY: CHARACTER 07714 5320 JMP GOTCH 07715 6011 HIR, RSF 07716 5315 JMP .-1 / WAIT FOR PTR: FLAG 07717 6016 RRB RFC / GET NEXT PTR: CHARACTER 07720 3332 GOTCH, DCA CHAR / SAVE THE CHARACTER JUST READ 07721 1332 TAD CHAR / RECALL IT FOR RETURN 07722 5707 JMP I READ / SELF-STARTING BINARY LOADER (FOR EDU2 PAL8-V10D NO DATE PAGE 2 07723 1746 MKCC, -KCC / -FIRST WORD OF LOW SPEED RIM 07724 5315 HSRDR, JMP HIR / JMP HIR IS FOR HIGH SPEED 07725 0300 MASK, 300 / TO LOOK FOR FIELD SETTINGS 07726 0070 FMASK, 70 / MASK TO GET NEW FIELD SETTING 07727 6201 CHANGE, CDF / RAW NEW FIELD SETTING 07730 6201 MEMTEM, CDF 0 / CURRENT FIELD SETTING (DEFAULT 0) 07731 0000 CHKSUM, 0 / RUNNING COMPUTED CHECKSUM 07732 0000 CHAR, 0 / LAST CHAR READ FROM READER 07733 0000 ORIGIN, 0 / CURRENT ADDRESS 07734 0000 WORD1, 0 / HIGH HALF OF NEW WORD 07735 0000 WORD2, 0 / LOW HALF OF NEW WORD 07736 0000 SWITCH, 0 / FOR SKIPPING ASSEMBLER ERRORS 7756 RIM1=7756 / ADDRESS OF FIRST WORD OF RIM / THIS IS THE RIM TO BIN SELF-START PATCH 7774 *7774 07774 5200 JMP BEGIN $ / SELF-STARTING BINARY LOADER (FOR EDU2 PAL8-V10D NO DATE PAGE 3 ASSEMB 7700 BEGG 7650 BEGIN 7600 BEND 7640 CHANGE 7727 CHAR 7732 CHEX 7627 CHKSUM 7731 FMASK 7726 GO 7612 GOTCH 7720 HIR 7715 HSRDR 7724 LOR 7711 MASK 7725 MEMFLD 7633 MEMTEM 7730 MKCC 7723 M200 7636 M376 7644 ORIGIN 7733 READ 7707 RIM1 7756 STADDR 2000 STFLD 6213 SWITCH 7736 WORD1 7734 WORD2 7735 ERRORS DETECTED: 0 LINKS GENERATED: 0