SE JUST RETURN DCA I XR1 /CLEAR A NAME WORD ISZ CHRCNT /COUNT IT JMP .-2 /KEEP GOING JMP I CLRNAME /RETURN PAGE GETCHAR,.-. /GET A CHARACTER ROUTINE JMS I [GETBYTE] /GET A CHARACTER JMP I (CHARERROR) /COMPLAIN IF REACHED TAD (-"M!300) /COMPARE TO SNA /SKIP IF OTHER JMP I (GOTCR) /JUMP IF IT MATCHES TAD (-140+"M-300) /COMPARE TO LOWER-CA ANY MODEL PDP-8 WITH A KL-STYLE REMOTE LINE SERIAL / INTERFACE OR EQUIVALENT. DEFAULT PARAMETER VALUES ARE CONSISTENT WITH THE / DISTRIBUTION SETTINGS FOR KERMIT-12 ITSELF AND ARE EASILY CHANGED. IT CAN BE / MODIFIED FOR USE ON VARIOUS DECMATE MODELS, BUT WILL BECOME SOMEWHAT LARGER IN / THE PROCESS DUE TO THE MUCH GREATER COMPLEXITY OF THE VARIOUS DECMATE / COMMUNICATIONS INTERFACES UNLESS THE COMPATIBLE PRINTER PORT IS CHOSEN (DEVICE / 32/33). / THIS PROGRAM SHOULD ONLY BE USED IF NO OTHER METHOD IS AVAILABLE AS THE / ASSUMPTION OF AN ERROR-FREE CONNECTION IS UNRELIABLE. DISTRIBUTION PATHS SUCH / AS INTERNET FTP OR CONTACTING THE AUTHOR CAN YIELD COMPLETE COPIES OF THE / PROGRAM DISTRIBUTION ON APPROPRIATE MEDIA WHERE APPLICABLE. / USAGE: / THIS PROGRAM IS RESTRICTED TO A SINGLE-FIELD LOAD ONLY. SEVERAL VARIANT / VERSIONS MUST BE CREATED TO COMPLETELY LOAD KERMIT-12. (AS OF THIS WRITING, / ONLY A FIELD ZERO AND FIELD ONE VERSION NEED BE CREATED. HOWEVER, KERMIT-12 / MAY BECOME LARGER!). THE EXAMPLE GIVEN BELOW ILLUSTRATES USAGE FOR FIELD ONE. / REPEATING THE PROCESTH NULL MODEM. THIS UTILITY IS WRITTEN FOR THE EXPRESS / PURPOSE OF LOADING KERMIT-12 ON PDP-8 SYSTEMS WITHOUT IT. ONCE KERMIT-12 HAS / BEEN LOADED, ITS USE SUPERSEDES THIS PROGRAM ENTIRELY. / THERE IS NO FLOW-CONTROL PROTOCOL PER SE BETWEEN SYSTEMS, SINCE THE UTILITY / STORES DATA DIRECTLY INTO PDP-8 MEMORY AND THEREFORE DOESN'T REQUIRE / SYNCHRONIZATION DELAYS. INITIAL SYNCHRONIZATION CAN BE ACCOMPLISHED BY / SENDING A SINGLE CHARACTER FROM THE PDP-8 TO THE SERVER SIDE WHICH STARTS THE / TRANSMISSION. ALTERNATIVELY THE PDP-8 PROGRAM CAN BE STARTED FIRST, THEN THE / SERVER CAN SEND DATA DIRECTLY TO THE PDP-8; THIS ASSUMES THE ABILITY TO START / THE SERVER TRANSMISSION FROM THE SERVER'S END. / THIS PROGRAM IS FOR STANDARD RELEASE FILE K12MIT.SV: / .LOAD DEV:FIELD1.SV/I,FIELD0.SV/I$ LOAD IMAGE FILES FIELD1.SV, FIELD0.SV / WITH /I SWITCH SET. (FUTURE VERSIONS / MAY REQUIRE LENGTHENING THE COMMAND TO / ADD MORE FILES SUCH AS FIELD2.SV, / FIELD3.SV, ETC.) $ INDICATES USING / TO TERMINATE LINE. / .SAVE DEV K12MIT=1 SAVE COMPLETED FILE ON ANY AVAILABLE / DEVICE DEV (PREFERABLY SYS). / CREATING THE VARIANT VERSIONS. / ONLY ONE PARAMETER NEED BE CHANGED TO PRODUCE THE VARIOUS VERSIONS REQUIRED. / SETTING DFIELD=0 CREATES A VERSION USED TO OBTAIN THE FIELD-ZERO DATA. / SETTING DFIELD=1 CREATES THE FIELD-ONE VERSION. LEGAL VALUES FOR DFIELD / EXTEND UP TO SEVEN. THE DEFAULT VALUE IS ZERO. NOTE THAT THE FIELD-ZERO / VERSION LOADS INTO FIELD ONE WHILE ALL OTHER VERSIONS LOAD INTO FIELD ZERO. / THIS IS NECESSARY TO ALLOW UNRESTRICTED FILE LOADING WITHIN THE SELECTED / FIELD. (OS/8 ITSELF GENERALLY BARS LOADING INTO 7600-7777 OF ANY FIELD, THUS / LOADING IS ACTUALLY RESTRICTED TO 0000-7577 OF THE SELECTED FIELD.) / OTHER ASSEMBLY PARAMETERS. S WITH THE INTENDED CONTENTS OF ALL OTHER FIELDS WILL / (EVENTUALLY) YIELD AN ENTIRE COPY OF KERMIT-12: / .R IPL1 (OR RUN DEV IPL1) / [PRESS AN APPROPRIATE KEY (SUCH AS CR) TO START WAITING FOR THE TRANSFER] / [THE DATA IS TRANSFERRED FROM THE OTHER SYSTEM AT THIS TIME AND THE PROGRAM / EXITS AUTOMATICALLY TO THE KEYBOARD MONITOR.] / .SAVE DEV FIELD1.SV 10000-17577=0 / CHANGING ALL OF THE ONES IN THE ABOVE EXAMPLE TO ZERO WILL YIELD THE / FIELD-ZERO LOAD FILE FIELD0.SV AS WELL. DEV IS ANY CONVENIENT OS/8 DEVICE / SUCH AS SYS OR DSK. (IT ISN'T CRITICAL SINCE THESE FILES CAN BE DELETED ONCE / KERMIT-12 IS CREATED.) ONCE ALL PORTIONS OF KERMIT-12 HAVE BEEN OBTAINED, THE / FOLLOWING COMMANDS WILL COMBINE THEM INTO THE FOR THE FIELD ZERO VERSION (10200). / ASSUMING A CUSTOMIZED FILE SETUP FOR LOADING FIELD ONE DATA IS CALLED IPL1.PA, / THE FOLLOWING COMMANDS WILL CREATE IPL1.SV: / .PAL IPL1 /DEFINE LOADING FIELD ZERO BY DEFAULT / REMOTE LINE RECEIVE DEVICE CODE DEFINED HERE. REMOVE T/ SETTING REC= XX SETS THE REMOTE RECEIVE DEVICE CODE TO / XX (DEFAULT VALUE IS 40). / SETTING SEN= XY SETS THE REMOTE TRANSMIT DEVICE CODE / TO XY (DEFAULT VALUE IS 41). / SETTING BRATE= NN SETS THE BAUD RATE (FOR SYSTEMS THAT / SUPPORT THIS FEATURE SUCH AS THE / VT-78) FROM A TABLE OF VALUES (00-17) / AS FOLLOWS: / NN (OCTAL) BAUD RATE / 00 50 / 01 75 / 02 110 / 03 134.5 / 04 150 / 05 300 / 06 600 / 07 1200 / 10 1800 / 11 2000 / 12 2400 / 13 3600 / 14 4800 / 15 7200 / 16 9600 / 17 19200 / (THE DEFAULT VALUE IS 07 FOR 1200 / BAUD COMMUNICATIONS.) / ASSEMBLY INSTRUCTIONS FOR ANY VARIANT VERSION. / ASSUMING A CUSTOMIZED FILE SETUP FOR LOADING FIELD ZERO DATA IS CALLED / IPL0.PA, THE FOLLOWING COMMANDS WILL CREATE IPL0.SV: / .PAL IPL0 /ALL OTHER VERSIONS LOAD HERE *200 /START AT THE BEGINNING START, KCC /CLEAR KEYBOARD FLAG AND AC TAD INPUT /GET BAUD RATE CONTROL VALUE RSBIOT /SETUP THE BAUD RATE / RKSFIOT /**** FOR DECMATE PRINTER PORT ONLY **** KSF /WAIT FOR JMP .-1 /KEYBOARD INPUT KRB /GET THE CHARACTER RTLSIOT /OUTPUT TO REMOTE TLS /LET USER SEE IT ALSO RKRBIOT /CLEAR REMOTE INPUT FLAG NOW CDF DATFLD /SETUP LOADING FIELD JMS INPUT /TRY TO GET A VALID DATA CHARACTER JMP .-1 /LEADER FOUND, IGNORE IT JMP GOTDATA /LOAD FIRST DATA CHARACTER THERE DATLUP, JMS INPUT /TRY TO GET A VALID DATA CHARACTER JMP LOADEND /TRAILER FOUND, GO FINISH THERE GOTDATA,CLL RTL;RTL;RTL /MOVE HALF-WORD UP DCA I HE / AND FILL IN THE / APPROPRIATE VALUE. / REC= 40 /REMOTE RECEIVE DEVICE CODE IFNDEF REC /DEFAULT RECEIVE DEVICE CODE IS 40 / REMOTE LINE TRANSMIT DEVICE CODE DEFINED HERE. REMOVE THE / AND FILL IN THE / APPROPRIATE VALUE. / SEN= 41 /REMOTE TRANSMIT DEVICE CODE IFNDEF SEN /DEFAULT TRANSMIT DEVICE CODE IS 41 / BAUD RATE CONTROL VALUE DEFINED HERE FOR VT-78, ETC. REMOVE THE / AND FILL IN / THE APPROPRIATE VALUE. / BRATE= 7 /BAUD RATE CONTROL VALUE IFNDEF BRATE /DEFAULT IS VALUE FOR 1200 BAUD / REMOTE LINE IOT DEFINITIONS. / RECEIVE DEFINITIONS. / RKCCIOT=REC^10+6002 /CLEAR REMOTE INPUT FLAG, AC RKRBIOT=REC^10+6006 /READ REMOTE, CLEAR FLAG RKSFIOT=REC^10+6001 /SKIP ON REMOTE INPUT FLAG / TRANSMIT DEFINITIONS. RSBIOT= SEN^10+6003 /SET BAUD RATE FROM AC[8-11] RTLSIOT=SEN^10+6006 /TRANSMIT CHARACTER, CLEAR FLAG / RTSFIOT=SEN^10+6001 /SKIP ON TRANSMIT FLAG / OTHER DEFINITIONS. DATFLD= DFIELD^10 /LOADING FIELD FOR CDF INSTRUCTIONS / THE PROGRAM CODE STARTS HERE. IFZERO DFIELD /FIELD ZERO VERSION LOADS HERE IFNZRO D/ IPL GENERATING PROGRAM / LAST EDIT: 08-OCT-1991 12:00:00 CJL / MUST BE ASSEMBLED WITH '/F' SWITCH SET. / THIS IS A UTILITY NAMED IPLGEN (AKA K12IPG) TO CREATE FIELD0.IPL (AKA / K12FL0.IPL) AND FIELD1.IPL (AKA K12FL1.IPL). THESE FILES ARE IN TURN MEANT / FOR USE WITH THE DIRECT LOADING PROGRAM IPLOAD (AKA K12IPL). FUTURE VERSIONS / OF K12MIT.SV MAY "GROWLOADPTR /STORE HIGH-ORDER HALF JMS INPUT /TRY TO GET A VALID DATA CHARACTER JMP LOADEND /TRAILER FOUND, GO FINISH THERE TAD I LOADPTR /COMBINE LATEST WITH PREVIOUS DCA I LOADPTR /STORE BACK COMPOSITE ISZ LOADPTR /BUMP TO NEXT L177, 177 /CONSTANT 0177; HERE JUST IN CASE IT SKIPS JMP DATLUP /GO BACK FOR MORE / COMES HERE WHEN LOADING IS DONE. LOADEND,CLA!400 /CLEAN UP; ALSO CONSTANT 7600 CIF CDF 00 /GOING TO MONITOR FIELD JMP I LOADEND/(7600) /EXIT TO MONITOR LOADPTR,0000 /LOADING POINTER INPUT, BRATE /INPUT ROUTINE; ALSO HOLDS BAUD RATE VALUE INPAGN, RKSFIOT /ANY REMOTE INPUT? JMP INPAGN /NO, WAIT FOR IT RKRBIOT /YES, READ IT IN AND L177/(177) /REMOVE PARITY BIT TAD L7737/(-41) /COMPARE TO LOWER LIMIT SPA /SKIP IF GREATER THAN THAT JMP INPAGN /ELSE IGNORE IT TAD L7700/(-100) /COMPARE TO UPPER LIMIT SMA /SKIP IF IN RANGE JMP I INPUT /ELSE TAKE IMMEDIATE RETURN ON LEADER/TRAILER AND L77/(77) /REMOVE JUNK BITS ISZ INPUT /BUMP RETURN JMP I INPUT /TAKE SKIP RETURN TO CALLER L77, 77 /CONSTANT 0077 L7700, 7700 /CONSTANT 7700