0001 ASMB,A,B,L CARTRIDGE TAPE BINARY LOADER 0002 HED ** HP 2644/45/48 CARTRIDGE TAPE BINARY LOADER (12992C) ** 0003 07700 ORG 7700B 0004******************************************* 0005* * 0006* REV, 2-18-76 * 0007* PART NUMBER 12992-80009 * 0008* PRODUCT NUMBER 12992C * 0009******************************************* 0010 00010 SC EQU 10B 0011 00000 A EQU 0 0012 00001 B EQU 1 0013* 0014* THIS ASSUMES THE INTERFACE IS A 12966 OR 12968 0015* THE BAUD RATE IS EXTERNAL 0016* THE CARTRIDGE IS POSITIONED AT THE FILE TO BE READ 0017**** "RUN" CAN NOT BE PRESSED AFTER HALT 77B OR HALT 11B 0018* 0019 07700 063773 START LDA LDOTP RESET POINTER 0020 07701 073702 STA *+1 0021 07702 063763 NCW LDA OTP GET A WORD FROM THE TABLE 0022 07703 037702 ISZ *-1 MOVE TO NEXT WORD IN TABLE 0023 07704 103610 OTA SC,C OUTPUT CURRENT WORD 0024 07705 053771 CPA EQT END OF TABLE? 0025 07706 027717 JMP NRD YES - START INPUT 0026 07707 001727 ALF,ALF IS THIS A CHARACTER? 0027 07710 013772 AND .377 0028 07711 002002 SZA ? 0029 07712 027702 JMP NCW NO - DO NEXT CONTROL WORD 0030 07713 103710 STC SC,C PUT CARD IN DATA MODE 0031 07714 102310 SFS SC IS CHARACTER OUT? 0032 07715 027714 JMP *-1 NO - WAIT FOR IT 0033 07716 027702 JMP NCW YES - DO NEXT CONTROL WORD 0034 07717 017750 NRD JSB INPUT READ IN FIRST WORD (RECORD COUNT) 0035 07720 005727 BLF,BLF POSITION COUNT TO LOWER BYTE 0036 07721 007007 CMB,INB,SZB,RSS MAKE IT NEG AND IS IT EOF? 0037 07722 102077 HLT 77B YES - END-OF-FILE 0038 07723 006021 SSB,RSS IF COUNT WAS ALL ONES 0039 07724 102000 HLT 0 THEN TAPE ERROR 0040 07725 077776 STB WCT SAVE COUNT 0041 07726 017750 JSB INPUT READ STORE ADDRESS 0042 07727 077774 STB CKSUM START CHECKSUM 0043 07730 077775 STB ADD AND SAVE ADDRESS 0044 07731 017750 NWD JSB INPUT GET WORD TO BE STORED 0045 07732 063775 LDA ADD CHECK IF ADDRESS 0046 07733 043777 ADA MXAD IS ABOVE LOADER 0047 07734 002040 SEZ IS IT? 0048 07735 102055 HLT 55B YES 0049 07736 177775 STB ADD,I NO - PUT WORD IN MEMORY 0050 07737 047774 ADB CKSUM ADD IT TO CHECKSUM 0051 07740 077774 STB CKSUM 0052 07741 037775 ISZ ADD MOVE ADDRESS UP ONE 0053 07742 037776 ISZ WCT FINISHED WITH THIS RECORD? 0054 07743 027731 JMP NWD NO - READ NEXT WORD 0055* 0056 07744 017750 JSB INPUT YES - READ CHECKSUM 0057 07745 057774 CPB CKSUM IS CHECKSUM OK? 0058 07746 027717 JMP NRD YES - READ NEXT RECORD 0059 07747 102011 HLT 11B NO 0060 07750 000000 INPUT NOP INPUT ONE WORD FROM INTERFACE 0061 07751 006700 CLB,CCE ZERO WRD AND START WITH UPPER HALF 0062 07752 102510 LIA SC GET DATA 0063 07753 002021 SSA,RSS IS IT VALID DATA? 0064 07754 027752 JMP *-2 NO 0065 07755 013772 AND .377 YES - ELIMINATE UPPER HALF 0066 07756 044000 ADB A ADD DATA TO B REG. 0067 07757 002041 SEZ,RSS SECOND HALF READ? 0068 07760 127750 JMP INPUT,I YES - RETURN WITH WORD IN B REG 0069 07761 005767 BLF,CLE,BLF NO - MOVE BYTE TO UPPER HALF 0070 07762 027752 JMP INPUT+2 SET LOWER HALF FLAG AHD READ IT 0071* 0072 07763 150077 OTP OCT 150077 MASTER RESET 0073 07764 040740 OCT 40740 INTERFACE CONTROL 0074 07765 030003 OCT 30003 CHAR FRAME CONTROL 0075 07766 000033 CHR1 OCT 33 ASCII "ESC" 0076 07767 050077 OCT 50077 RESET BUFFER STATUS 0077 07770 000145 CHR2 OCT 145 ASCII LOWER CASE "E" 0078 07771 040340 EQT OCT 40340 INPUT COMMAND WORD 0079* 0080 07772 000377 .377 OCT 377 UPPER HALF WORD MASK 0081 07773 063763 LDOTP LDA OTP POINTER TO OUTPUT TABLE 0082 07774 000000 CKSUM NOP CHECKSUM STORAGE 0083 07775 000000 ADD NOP ADDRESS STORAGE 0084 07776 000000 WCT NOP INPUT WORD COUNT 0085 07777 170100 MXAD ABS -START START BINARY LOADER AREA 0086 END .377 007772 01/0080 -- 01/0027 01/0065 A 000000 01/0011 -- 01/0066 ADD 007775 01/0083 -- 01/0043 01/0045 01/0049 01/0052 B 000001 01/0012 -- unreferenced CHR1 007766 01/0075 -- unreferenced CHR2 007770 01/0077 -- unreferenced CKSUM 007774 01/0082 -- 01/0042 01/0050 01/0051 01/0057 EQT 007771 01/0078 -- 01/0024 INPUT 007750 01/0060 -- 01/0034 01/0041 01/0044 01/0056 01/0068 01/0070 LDOTP 007773 01/0081 -- 01/0019 MXAD 007777 01/0085 -- 01/0046 NCW 007702 01/0021 -- 01/0029 01/0033 NRD 007717 01/0034 -- 01/0025 01/0058 NWD 007731 01/0044 -- 01/0054 OTP 007763 01/0072 -- 01/0021 01/0081 SC 000010 01/0010 -- 01/0023 01/0030 01/0031 01/0062 START 007700 01/0019 -- 01/0085 WCT 007776 01/0084 -- 01/0040 01/0053 18 symbols 3 unreferenced 86 lines assembled, 64 words generated 0 errors, 0 warnings