Trailing-Edge
-
PDP-10 Archives
-
decuslib10-02
-
43,50213/talk10.doc
There are 2 other files named talk10.doc in the archive. Click here to see a list.
1
/*****TALK10.PAL, APRIL 14, 1970****
/
/
/
/PETER LEMKIN
/NATIONAL INSTITUTES OF HEALTH
/BETHESDA, MD. 20014
/
/
/
/INTRODUCTION
/--------------------
/THE ASSEMBLY OF LARGE PROGRAMS FOR SMALL MACHINES SUCH AS
/AS PDP8 IS APT TO BE LABORIOUS, TIME CONSUMING AND ALMOST
/IMPOSSIBLE IS DONE ON THE SMALL MACHINE ITSELF. IN ADDITION,
/THE ABILITY FOR MANY USERS TO ASSEMBLE PDP8 PROGRAMS ON A PDP10
/COMPUTER USING PAL10 OR PAL12 LIGHTENS THE LOAD OF SOFTWARE
/DEVELOPMENT ON THE SMALLER MACHINE. TALK10 IS A PDP8
/UTILITY/LOADER PROGRAM. IT, 1) DECODES AND LOADS ASCII-CODED
/BINARY FILES (ENCODED BY TALK8F) SENT FROM THE PDP10. 2) IT
/CAN TRANSMIT INFORMATION TO OR FROM THE PDP10 APPEARING TO IT AS
/A REGULAR TELETYPE.
/
/
/
/MINIMUM HARDWARE NEEDED FOR USE AS IS:
/---------------------------------------------
/4K OR GREATER PDP8 OR LINC8.
/PT08 PARALLEL-SERIAL INTERFACE BETWEEN PDP8-PDP10
/
/
/
/
/
/DESCRIPTION
/---------------
/PAL10 GENERATES AN OUTPUT FILE<BINARY>
/(USUALLY .BIN EXTENSION) WHICH IS USED AS THE
/INPUT TO THE TALK8F.SAV PROGRAM .(TALK8F IS A PDP10 PROGRAM
/USED TO CONVERT IMAGE BINARY TO A FORM OF CODED
/ASCII FOR TRANSMISSION OVER THE DATA LINES TO THE PDP8 COMPUTER.)
/THE PDP8 SUBPROGRAM "OCTLDR" (IN TALK10) CAN READ AND
/LOAD THIS CODE.) AFTER A FILE IS CONVERTED, JUST PIP
/THE OUTPUT FILE OF TALK8F (A ".DAT" FILE)
/TO THE TTY WHICH IN THIS CASE IS THE PDP8'S PT08 INTERFACE
/TO THE PDP10. THE STRING OF A'S IN THE
/BEGINNING OF THE TALK8F OUTPUT ".DAT" FILE
/CAUSE THE TALK10 PROGRAM ON THE PDP8 TO
/GO INTO OCTAL LOADER MODE AND LOAD THE
/FILE BEING SENT . THE STRING OF A'S AT THE END OF
/THE ".DAT" FILE ARE USED TO TELL TALK10
/TO RETURN TO BUFFERED TTY MODE AND STOP LOADING DATA INTO MEMORY.
/
/
2
/
/CONTROL CHARACTERS:
/---------------------
/TYPING A CONTROL-O DURING BUFFERED TTY MODE
/WILL KILL THE PRINTING BUFFER.
/
/TYPING A CONTROL-T WHILE IN
/BUFFERED TTY MODE WILL TURN CONTROL OF
/THE PDP8 OVER TO THE FIELD 0 SYSTEM @7600.
/
/
/
/
/
/
/ERROR CONDITIONS:
/-----------------
/IF TALK10 HALTS DURING TTY BUFFER MODE,
/IT IS BECAUSE THE BUFFER HAS OVERFLOWED
/ITS 2048 CHARACTER LIMIT. NOTE THAT THIS LIMIT
/MAY BE DECREASED BY CHANGING (TQMIN,TQMAX).
/THE OCTAL LOADER WILL NOT PROTECT TALK10 ITSELF.
/
/
/
/CHANGING THE PROGRAM LIMITS:
/----------------------------
/NOTE: TO CHANGE THE FIELD IN WHICH TALK10 RESIDES,
/ CHANGE INSFLD=DATFLD= THE NEW FIELD, AND REASSEMBLE
/ TALK10 USING PAL10.
/
/
/
/
/
/SAVING A LOADED CORE IMAGE:
/---------------------------
/AFTER USING THE TALK10 LOADER TO LOAD A PAL10
/OUTPUT FILE FROM THE PDP10, IT IS USEFUL
/TO CALL THE PDP8 MONITOR SYSTEM WHICH IS RESIDENT AT 7600
/FIELD 0 IN ORDER TO SAVE THE CORE IMAGE JUST LOADED.
/THE MONITOR SYSTEM IS REACHED BY TYPING A CONTROL/T.
/
/
/
/
/STARTING ADDRESSES:
/--------------------
/TALK10 STARTS AT 7000
/CURRENTLY IT REQUIRES <7000,7577> FOR TALK10 PROGRAM.
/AND <3201,6777> FOR THE TTY BUFFER.
/
/
/
3
/
/....................................................
/
/
/EXAMPLE OF OPERATION:
/---------------------
/.R PAL10
/*TEST.BIN,TEST.LST_TEST.SRC
/*
/^C
/
/.RUN DSK:TALK8F.SAV
/INPUT FILE: TEST
/EXTENSION?: BIN
/OUTPUT FILE: TEST
/
/YOU MAY NOW PIP "TEST.DAT" FROM YOU DISK AREA.
/
/EXIT
/.
/ASSIGN TTY: PDP8
/R PIP
/*PDP8:_DSK:TEST.DAT
/
/( THE PDP10 IS NOW SENDING THE ASCII CODED FILES TO THE PDP8)
/(AFTER THE PDP8 TTY FINISHES TYPING THE STRING OF A'S THE
/TALK10 PROGRAM.)
/
/PROGRAM IS LOADED INTO THE PDP8 MEMORY AND CONTROL RETURNS TO THE
/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
/. (IF YOU TYPE A CONTROL/T AT THIS TIME CONTROL RETURNS TO
/ THE PDP8 MONITOR SYSTEM AND THE IMAGE MAY BE SAVED.)
/.SAVE S:TEST!0-2777;0200 (I.E. SAVE IT WITH THE DISK MONITOR SYSTEM.)
/
/.......................................
/
6411 PTSF=6411 /PT08 INSTRUCTION DEFINITIONS
6401 PKSF=6401
6416 PTLS=6416
6406 PKRB=6406
6412 PTCF=6412
3001 TQMIN=3001 /LOWER LIMIT OF THE TTY BUFFER
6777 TQMAX=6777 /UPPER LIMIT OF THE TTY BUFFER.
0000 DATFLD=00 /****** THE WORKING FIELD*** CHANGE THIS TO CHANGE FIELD.!!!
0000 INSTFD=DATFLD
/
0000 FIELD INSTFD
7000 *7000
7000 7200 TALK10, CLA
7001 1377 TAD ("#
7002 6046 TLS
7003 6201 CDF INSTFD
7004 7200 CLA
7005 1273 TAD Q20 /-20
4
7006 3274 DCA ATRAP
7007 6031 GGO, KSF
7010 5235 JMP LISTN
7011 6036 KRB /GET TTY
7012 6416 PTLS /TTYI-->PDP10
/TEST IF GOTO THE SYSTEM
/FROM CONTROL-T
7013 3270 DCA SSS
7014 1270 TAD SSS
7015 7041 CIA
7016 1302 TAD CTRLT
7017 7640 SZA CLA
7020 5225 JMP GO2 /NO
/YES, GO TO SYSTEM
7021 6201 CDF 00
7022 6202 CIF 00
7023 5624 JMP I .+1
7024 7600 7600
/TEST IF KILL TTY BUFFER
7025 1270 GO2, TAD SSS
7026 1301 TAD CTRLO
7027 7640 SZA CLA
7030 5235 JMP LISTN /NO
/YES
7031 1276 TAD MIN
7032 3677 DCA I PKRQ
7033 1677 TAD I PKRQ
7034 3700 DCA I PKFQ
7035 6401 LISTN, PKSF
7036 5260 JMP TTYTST
7037 6406 PKRB /GET PDP10
/TEST IF LOTS OF A-S
7040 3270 DCA SSS
7041 1270 TAD SSS
7042 0272 AND QT177
7043 1271 TAD MA
7044 7640 SZA CLA
7045 5253 JMP PUSHC
7046 2274 ISZ ATRAP
7047 5255 JMP PUSHA
7050 1273 TAD Q20
7051 3274 DCA ATRAP /FOR NEXT TIME
7052 5675 JMP I OCTST /GO TO LOADER
7053 1273 PUSHC, TAD Q20
7054 3274 DCA ATRAP
7055 1270 PUSHA, TAD SSS
7056 4667 JMS I IINSRQ /CHAR-->QUEUE
7057 7402 HLT /OVERFLOW
/TTY OUTPUT READY?
7060 6041 TTYTST, TSF
7061 5207 JMP GGO /NO
7062 4666 JMS I ITTYFQ
7063 5207 JMP GGO /NO
7064 6046 TLS
5
7065 5207 JMP GGO
7066 7226 ITTYFQ, TTYFQ
7067 7200 IINSRQ, INSRQ
7070 0000 SSS, 0
7071 7677 MA, -101
7072 0177 QT177, 177
7073 7732 Q20, -46
7074 0000 ATRAP, 0
7075 7261 OCTST, START /LOADER
7076 3001 MIN, TQMIN
7077 7256 PKRQ, KRQ
7100 7257 PKFQ, KFQ
7101 7561 CTRLO, -217
7102 0224 CTRLT, 224 /CONTROL T
/END...
/............................................
7177 0243
7200 PAGE
/SUBROUTINE INSRQ
/INSERTS A DATA WORD IN THE
/AC--> THE TTY OUTPUT BUFFER
/AT THE REAR OF THE QUEUE.
/CALLING SEQUENCE1G
/ JMS INSRQ /DATA IN AC
/ ERROR RETURN /BUFFER OVERFLOW
/ NORMAL RETURN /DATA ENTERED
/ /RQ POINTER ADVANCED.
/
7200 0000 INSRQ, 0
7201 3260 DCA TQDAT /SAVE DATA
/A.1 COMPUTE NEW KRQ
7202 1254 TAD ITQMAX
7203 7041 CIA
7204 1256 TAD KRQ
7205 7700 SMA CLA
7206 5211 JMP .+3
7207 2256 ISZ KRQ /KRQ<--KRQ+1
7210 5213 JMP .+3
7211 1255 TAD ITQMIN /KRQ<--TQMIN
7212 3256 DCA KRQ
/A.2 TEST FOR OVERFLOW
7213 1256 TAD KRQ
7214 7041 CIA
7215 1257 TAD KFQ
7216 7650 SNA CLA
7217 5600 JMP I INSRQ /ERROR RETURN
7220 2200 ISZ INSRQ
/A.3 INSERT DATA INTO THE REAR OF THE QUEUE.
7221 1260 TAD TQDAT
7222 6201 CDF DATFLD
7223 3656 DCA I KRQ
7224 6201 CDF INSTFD
7225 5600 JMP I INSRQ /RETURN
/.........................................
6
/
/SUBROUTINE TTYFQ
/GET A DATA WORD FROM THE REAR
/OF THE TTY QUEUE-->AC.
/CALLING SEQUENCE:
/ JMS TTYFQ /DATA-->AC
/ ERROR RETURN /BUFFER EMPTY
/ NORMAL RETURN /DATA IN AC.
7226 0000 TTYFQ, 0
/A.1 TEST IF KFQ=KRQ
/IF SO BUFFER EMPTY
7227 7200 CLA
7230 1257 TAD KFQ
7231 7041 CIA
7232 1256 TAD KRQ
7233 7650 SNA CLA
7234 5626 JMP I TTYFQ /ERROR RETURN
7235 2226 ISZ TTYFQ /SET UP NORMAL RETURN.
/A.2 ADVANCE THE KFQ POINTER
7236 7200 CLA
7237 1254 TAD ITQMAX
7240 7041 CIA
7241 1257 TAD KFQ
7242 7700 SMA CLA
7243 5246 JMP .+3 /YES, SET KFQ=TQMIN
7244 2257 ISZ KFQ /NO, SET KFQ=KFQ+1
7245 5250 JMP .+3
7246 1255 TAD ITQMIN
7247 3257 DCA KFQ
/A.3 GET DATA FROM THE QUEUE.
7250 6201 CDF DATFLD
7251 1657 TAD I KFQ
7252 6201 CDF INSTFD
7253 5626 JMP I TTYFQ /RETURN
/...CONSTANTS...
7254 6777 ITQMAX, TQMAX
7255 3001 ITQMIN, TQMIN
7256 3001 KRQ, TQMIN
7257 3001 KFQ, TQMIN
7260 0000 TQDAT, 0
/..........................................
/P. LEMKIN, APRIL 14, 1970...
/****TITLE****: OCTLDR
7261 7200 START, CLA
7262 1321 TAD T20
7263 3320 DCA TRAPA /SET UP A COUNTER
7264 4304 PDP10, JMS PPREAD /GET PDP10
7265 3315 DCA TTT /SAVE IT
7266 1315 TAD TTT
7267 1317 TAD MAA
7270 7640 SZA CLA
7271 5277 JMP PUSHCC
7272 2320 ISZ TRAPA
7273 5301 JMP PUSHAA
7
7274 1321 TAD T20 /RESET TRAPA
7275 3320 DCA TRAPA
7276 5716 JMP I STRTGO /BACK TO TALK10
7277 1321 PUSHCC, TAD T20
7300 3320 DCA TRAPA /RESET TAP
7301 1315 PUSHAA, TAD TTT
7302 5703 JMP I ISRCH /SEARCH
7303 7400 ISRCH, CEARCH
7304 0000 PPREAD, 0
7305 6401 PKSF
7306 5305 JMP .-1
7307 6406 PKRB
7310 0313 AND K177
7311 1314 TAD K200
7312 5704 JMP I PPREAD /RETURN
7313 0177 K177, 177
7314 0200 K200, 200
7315 0000 TTT, 0
7316 7007 STRTGO, GGO
7317 7477 MAA, -301
7320 0000 TRAPA, 0
7321 7732 T20, -46
/
7400 PAGE
7400 3251 CEARCH, DCA CCHAR
/TEST IF F
7401 1251 TAD CCHAR
7402 7041 CIA
7403 1241 TAD FFFF
7404 7640 SZA CLA
7405 5215 JMP ZTEST
/YES GO SET DATA FIELD
7406 1245 TAD BUFFER
7407 7006 RTL
7410 7004 RAL
7411 0243 AND K0070
7412 1377 TAD (CDF 00
7413 3233 DCA FLDCHK
7414 5644 JMP I ISTART
/
/TEST IF SET POINTER
7415 1251 ZTEST, TAD CCHAR
7416 7041 CIA
7417 1250 TAD ZZZZ
7420 7640 SZA CLA
7421 5225 JMP CRTEST
/YES GO SET POINTER
7422 1245 TAD BUFFER
7423 3246 DCA POINTR
7424 5644 JMP I ISTART
/
/TEST IF STORE DATA
7425 1251 CRTEST, TAD CCHAR
7426 7041 CIA
8
7427 1247 TAD CRCR
7430 7640 SZA CLA
7431 5642 JMP I MORTST
/YES STORE DATA
7432 1245 TAD BUFFER
7433 6201 FLDCHK, CDF 00
7434 3646 DCA I POINTR
7435 6201 CDF INSTFD
7436 2246 ISZ POINTR
7437 7000 NOP
7440 5644 JMP I ISTART
/...CONSTANTS...
7441 0306 FFFF, "F
7442 7452 MORTST, NUMS
7443 0070 K0070, 0070
7444 7264 ISTART, PDP10
7445 0000 BUFFER, 0
7446 0000 POINTR, 0
7447 0215 CRCR, 215
7450 0332 ZZZZ, "Z
7451 0000 CCHAR, 0
/
7452 1251 NUMS, TAD CCHAR
7453 7041 CIA
7454 1313 TAD EEEE
7455 7640 SZA CLA /TEST IF DONE...
7456 5262 JMP NUMTST
7457 1315 TAD BELL
7460 6046 TLS
7461 5721 JMP I BACK /BACK TO TTY MODE
/
/TEST IF NUMBER --> BUFFER
7462 7300 NUMTST, CLA CLL
7463 1251 TAD CCHAR /GET CHAR/
7464 7041 CIA
7465 1317 TAD K7
7466 7500 SMA /SKIP IF >267
7467 5271 JMP .+2
7470 5644 JMP I ISTART /TOO LARGE.
7471 7300 CLA CLL
7472 1316 TAD K0
7473 7041 CIA
7474 1251 TAD CCHAR
7475 7500 SMA /SKIP IF <260
7476 5300 JMP .+2
7477 5644 JMP I ISTART /TOO SMALL
/PASSED... IT IS A
7500 7300 CLA CLL
7501 1245 TAD BUFFER /OLD BUFFER
7502 7006 RTL
7503 7004 RAL
7504 0314 AND K7770
7505 3245 DCA BUFFER /SAVE CONV.
7506 1251 TAD CCHAR /GET CHAR
9
7507 0320 AND K0007
7510 1245 TAD BUFFER
7511 3245 DCA BUFFER
7512 5644 JMP I ISTART
/...CONSTANTS.....
7513 0305 EEEE, "E
7514 7770 K7770, 7770
7515 0207 BELL, 207
7516 0260 K0, 260
7517 0267 K7, 267
7520 0007 K0007, 7
7521 7007 BACK, GGO
/....................................................
$
7577 6201