File IOTR2.

Directory of image this file is from
This file as a plain text file

/IOTRACE
/MASCHINEN-I/O UEBERWACHUNG 
/ZUR HERKON-EINSCHMELZSTEUERUNG


/F.WESSELY	MAY 75


/ADRESSEN & IOT'S IM STEUERPROGRAMM

ACI=5250
BPC=0115
BQC=0116
BIC=0117
AYS=5225
BZE=0114
BKC=0113
AAC=5244
BSCHRI=0101
BSTD=77
BMNT=100

EXLEV=0002	/LEVEL OF EXIT TASK
PRLEV=0007	/LEVEL OF PRINT TASK
X=0020		/FIELD OF THIS PROGRAM ^10
IDF=22	/IF & DF FOR TASK CALLS


LDRG=6151
OUTR=6154
SETO=6152
SETI=6142
RDCH=6144

PAGE

/ANFANGSDIALOG

START,	CLA CLL			/TITELAUSGABE
	CALL	WRITE
	STRG1
	CLA CLL		/CLEAR BUFFER AREA
	TAD BUFAD
	DCA CLEP
	TAD	(-1004
	DCA	COUNTR
	DCA I	CLEP
	ISZ	CLEP
	ISZ	COUNTR
	JMP	.-3
	TAD	BUFAD
	DCA	POPP
	TAD	BUFAD
	DCA	PUSHP

GRUPPE,	CLA CLL
	CALL	WRITE
	STRG2

	TAD	(-12		/DEZIMAL INPUT
	CALL	INXO4		/GET GROUPNO
	JMP	GRUPPE		/IF ERROR
	CMA IAC
	DCA I	(GRP

MASCH,	CLA CLL
	CALL	WRITE
	STRG3

	TAD	(-10		/OCTAL INPUT
	CALL	INXO4		/MASKE HOLEN
	JMP	MASCH
	DCA I	(MSK

	CALL	WRITE
	STRG4+7

	JMP I (SAVE

CLEP,	0
COUNTR,	0

/STRINGBUFFER STRG1, 215;212;212 "M;"A;"S;"C;"H;"I;"N;"E;"U;"E;"B;"E;"R;"W;"A;"C;"H "U;"N;"G 215;212;0 STRG2, 215;212 "G;"R;"U;"P;"P;"E;"? 215;212;0 STRG3, 215;212 "M;"A;"S;"K;"E;"? 215;212;0 PAGE /SAVE LOCATONS OF HERK4 I/O-ROUTINES /INPUT ROUTINE SAVE, CDF 0 TAD ACI1AD DCA SAVP TAD I SAVP DCA ACBF ISZ SAVP TAD I SAVP DCA ACBF+1 ISZ SAVP TAD I SAVP DCA ACBF+2 /OUTPUT ROUTINE TAD AYS4AD DCA SAVP TAD I SAVP DCA AYBF ISZ SAVP TAD I SAVP DCA AYBF+1 ISZ SAVP TAD I SAVP DCA AYBF+2 /OVERLAY MASCHINE I/O-ROUTINES WITH /LINKS TO THE TRACE PROGRAM /INPUT ROUTINE TAD ACI1AD DCA SAVP IOF TAD CIFX DCA I SAVP ISZ SAVP TAD JMPX DCA I SAVP ISZ SAVP TAD ITRAD DCA I SAVP /OUTPUT ROUTINE TAD AYS4AD DCA SAVP TAD CIFX DCA I SAVP ISZ SAVP TAD JMPX+1 DCA I SAVP ISZ SAVP TAD OTRAD DCA I SAVP /EXIT INITIALIZATION PROGRAM CDF CIF X /RESTORE FIELDS JMS 3 1 /CONSTANTS & VARIABLES CIFX, CIF X JMPX, RELOC ACI+2 JMP1, JMP I .+1 RELOC RELOC AYS+5 JMP2, JMP I .+1 RELOC ACI1AD, ACI+1 AYS4AD, AYS+4 SAVP, 0 ACBF, 0 0 0 AYBF, 0 0 0 ITRAD, ITRACE OTRAD, OTRACE /TASK TO RESTORE MASCHINE I/O-ROUTINES /IN THE TRACED SYSTEM /AND TO EXIT FROM TRACE PROGRAMM REST, CLA CLL CDF 0 TAD ACI1AD DCA SAVP IOF TAD ACBF DCA I SAVP ISZ SAVP TAD ACBF+1 DCA I SAVP ISZ SAVP TAD ACBF+2 DCA I SAVP TAD AYS4AD DCA SAVP TAD AYBF DCA I SAVP ISZ SAVP TAD AYBF+1 DCA I SAVP ISZ SAVP TAD AYBF+2 DCA I SAVP ION CDF CIF X /PRINT ENDE AND EXIT IOTRACE CALL WRITE STRG4 OSR /RESTART IF BIT 2=0 AND (2000 SNA CLA JMP START SCALL ORG 1
STRG4, 215;212 "E;"N;"D;"E;"!; 215;212;212;0
PAGE /TRACE PART OF IOTR /RUNS AS PART OF HERKON-CONTROL TASK /MASCHINE INPUT ROUTINE ITRACE, TAD I BPCL SCALL SETI CLA JMS AAT RDCH ION DCA I BQCL NOP SETI TAD I BPCL //SELECTED GROUP? TAD GRP SNA CLA JMS ISTORE /YES- STORE INPUT ISZ I BPCL /NO- RETURN TO HERK4 CDF CIF 0 JMP I ITREX AAT, NOP /TO ADJUST DELAYS JMP I AAT ZBLOCK 20 /ROOM FOR TRIALS /MASCHINE OUTPUT ROUTINE OTRACE, TAD I BZEL LDRG SCALL OUTR CLA TAD I BKCL SETO CLA NOP SETO ION OSR AND (4000 /SW-REGISTER BIT 0 SET? SMA CLA JMP .+2 /NO- JMS XIT /YES- CALL EXIT TASK CDF 0 TAD I BKCL TAD GRP /SELECTED GROUP ? SNA CLA JMS OSTORE CDF CIF 0 /NO- RETURN TO HERK4 JMP I OTREX /STORE INPUT ISTORE, HLT TAD I BQCL /GET MASCH. INPUT AND MSK /MASK OUT LINES OF INTEREST DCA DATA TAD DATA CMA IAC TAD OLDINP SZA CLA /INPUT CHANGED? JMP .+4 /YES TAD I LSTEP /NO- STEP ZERO? SZA CLA JMP I ISTORE /NO- DONT PUSH DATA TAD DATA DCA OLDINP TAD I (BIC /GET CURRENT STEPS SZA CLA /NULL-STEP? JMP .+6 /NO TAD I (BSTD /GET TIME & STORE DCA STD TAD I (BMNT DCA MNT TAD (1000 /SET TIME DATA BIT TAD (2000 /SET INPUT DATA BIT TAD I (BIC /GET CURRENT & STORE DCA CURR JMS I LSTORE JMP I ISTORE /STORE OUTPUT OSTORE, HLT TAD I BZEL AND MSK SNA /DATA ZERO? JMP I OSTORE /YES- DON'T PUSH DCA DATA /STORE MASCH -OUTP. CMD TAD (4000 /SET OUTPUT DATA BIT TAD I (BIC /GET CURRENT DCA CURR /AND STORE JMS I LSTORE JMP I OSTORE /SUBROUTINE FOR EXIT CALLS XIT, NOP SCALL ORG 0 EXLEV REST IDF JMP I XIT /CONSTANTS & VARIABLES BPCL, BPC /INPUT MASCHINE GROUP BQCL, BQC /INPUT DATA BKCL, BKC /OUTPUT MASCHINE GROUP BZEL, BZE /OUTPUT DATA ITREX, ACI+13 /RETURN ADDRESS TO HERK4 OTREX, AAC /SAME GRP, 0 /MASCHINE GROUP TO TRACE MSK, 0 /DATA MASK DATA, 0 /DATA STORAGE OLDINP, 0 /LAST INP. DATA SEEN CURR, 0 /CURRENT BIAS STEP LSTORE, STORE LSTEP, BSCHRI /HERK4 CYCLES STD, 0 MNT, 0
PAGE /STORE DATA & CURRENT IN CIRCULAR BUFFER STORE, HLT CDF CIF X TAD PUSHP /RESET BUFFERPOINTER AND BFLE TAD BUFAD DCA PUSHP JMS FREE TAD I (CURR DCA I PUSHP ISZ PUSHP TAD I (CURR AND (1000 /TIME BIT SET ? SNA CLA JMP .+11 /NO- JMS FREE TAD I (MNT /YES- PUSH TIME DCA I PUSHP ISZ PUSHP JMS FREE TAD I (STD DCA I PUSHP ISZ PUSHP JMS FREE TAD I (DATA DCA I PUSHP ISZ PUSHP TAD PRFLG SZA CLA /PRINT TASK RUNNING? JMP RET /YES- RETURN CMA /NO- SET FLAG DCA PRFLG /AND CALL BUFFER-OUTP. TASK SCALL ORG 0 PRLEV /EBENE BUFOUT /STARTADR. IDF /FELD RET, CDF 0 JMP I STORE /RETURN FREE, HLT TAD I PUSHP /CHECK IF ROOM IN BUFFER SNA CLA JMP I FREE /YES- SO PUSH JMS I (XIT /NO- EXIT TRACE PROGR. JMP RET PUSHP, 0 BFLE, 777 /BUFFERLENGTH BUFAD, DATBUF /BUFFERADDRESS PRFLG, 0 /RUNFLAG FOR PRINTTASK PAGE /PRINT TASK FOR CIRCULAR BUFFER BUFOUT, CLA CMA /PRINT TASK IS RUNNING DCA PRFLG TAD POPP /ADJ. POP-POINTER AND BFLE TAD BUFAD DCA POPP TAD POPP /BUFFER EMPTY? CMA IAC TAD PUSHP SNA CLA JMP FINIT /YES- STOP TASK TAD (-27 /MOVE SPACES TO STRING DCA SPCCNT TAD (STRBUF DCA STRP NSPACE, TAD (240 DCA I STRP ISZ STRP ISZ SPCCNT /DONE? JMP NSPACE /NOT YET TAD I POPP /MOVE CURRENT TO STRING DCA IOFLG TAD I POPP AND (777 /FORGET IOFLG-BITS JMS I (DASC /CHANGE TO DEZ. ASCII & LOAD STRBUF+11 /ADDRESS IN STRING DCA I POPP /CLEAR BUFFERLOCATION ISZ POPP TAD IOFLG AND (1000 /TIME BIT SET ? SNA CLA JMP .+15 /NO TAD I POPP JMS I (DASC STRBUF+3 DCA I POPP ISZ POPP TAD I POPP JMS I (DASC STRBUF DCA I POPP ISZ POPP TAD (272 DCA I (STRBUF+4 /MOVE I/O-DATA TO STRING TAD IOFLG /MASCHINR INPUT? SNA /IF ZERO JMS I (XIT /ERRROR EXIT SPA CLA TAD (5 /NO- ALTER LOC. IN STRING TAD (STRBUF+16 DCA DATPOS TAD I POPP /GET DATA JMS I LOASC /TRANSF. TO ASCII &STORE DATPOS, 0 DCA I POPP /CLEAR BUFFERLOCATION ISZ POPP /CALL FOR TTY-OUTPUT SCALL ORG 5; 0 STRBUF JMP BUFOUT /PRINT NEXT LINE FINIT, SCALL CLA CLL DCA PRFLG /CLEAR RUN FLAG ORG 1 /EXIT SPCCNT, 0 STRP, 0 /STRING POINTER POPP, 0 /POP-POINTER TO DATABUFFER IOFLG, 0 /IF MINUS DATA IS MASCHINE OUTPUT LOASC, OCTASC PAGE /SUBROUTINE OCTASC /TRANSFERS A 4-DIGIT OCT. NUMBER (IN AC) /TO ASCII AND STORES CHARACTERS AT SPECIFIED ADDRESS /CALLING SEQUENCE: / TAD VALUE / JMS OCTASC /CALL / STRING /ADDRESS OF CHARACTER STORAGE / ...... /NORMAL RETURN OCTASC, HLT DCA OVALUE /STORE OCT NUMBER TAD I OCTASC /GET & LOAD STRINGADR. DCA STRADR TAD (-4 DCA BYTEC /LOAD BYTECOUNT TAD OVALUE RAL DCA OVALUE NXTDIG, TAD OVALUE RAL; RTL DCA OVALUE TAD OVALUE AND (7 TAD (260 DCA I STRADR ISZ STRADR ISZ BYTEC /READY? JMP NXTDIG /NO-PROCEED ISZ OCTASC JMP I OCTASC /SUBROUTINE DEZIMAL TO ASCII DASC, HLT DCA OVALUE /STORE OCT. VALUE TAD I DASC /GET STRINGADR. TAD (3 DCA STRADR /& LOAD STRINGPOINTER TAD (-4 /LOAD BYTECOUNT DCA BYTEC DCA QUOT /CLEAR QUOTIENT ISZ DASC /ADJ. RETURN ADR. TAD OVALUE SUB10, TAD (-12 SPA /AC<=0? JMP .+3 /YES- WE HAVE ADIGIT ISZ QUOT /COUNT QUOTIENT JMP SUB10 TAD (12 /GET REST OF DIVISION TAD (260 /MAKE A CHARACTER DCA I STRADR /AND STORE IN STRING CLA CMA /DECR. STRINGPOINTER TAD STRADR DCA STRADR ISZ BYTEC /4 DIGITS PUSHED? JMP .+14 TAD (-4 DCA ZCNT ISZ STRADR /SUPPR.TRAILING NULLS TAD I STRADR TAD (-260 ISZ ZCNT SZA CLA JMP I DASC /NONZERO DIGIT SO RETURN TAD (240 DCA I STRADR JMP .-10 TAD QUOT /GET NEXT DIGIT DCA OVALUE DCA QUOT
JMP SUB10-1 OVALUE, 0 /0CTAL NUMBER TO TRANSFER STRADR, 0 /STRINGADRESS BYTEC, 0 ZCNT, 0 /MAX. COUNT OF TRAILING NULLS QUOT, 0 /STRINGBUFFER STRBUF, ZBLOCK 27 215;212;0 PAGE /DATABUFFER DATBUF, ZBLOCK 1000+4 ENDE, 0 $



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search