File DIGIO.SB (8k SABR macro assembler source file)

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

/ DIGITAL EIN / AUSGABE ROUTINEN FUER DR8EA	17. APRIL 1974
/						W.HOUBEN
/
/	AUFRUF:
/			CALL IDIG ( ARG1,ARG2,ARG3 )
/			CALL ODIG ( ARG1,ARG2,ARG3 )
/
/			ARG1 = DEVICECODE ( 0 - 7 )
/			ARG2 = 0,	WORTAUSGABE
/			ARG2 = 1 - 12,	BITAUSGABE
/			ARG3 = DATENWORT
/
/			ALLE ARGUMENTE SIND INTEGER
/
	OPDEF JMPI 5400
	OPDEF ]6500 6500	/ DISABLE INTERRUPT
	OPDEF ]6501 6501	/ ENABLE INTERRUPT
	SKPDF ]6502 6502	/ SKIP ON FLAG
	OPDEF ]6503 6503	/ CLEAR INPUT REGISTER
	OPDEF ]6504 6504	/ READ INPUT REGISTER
	OPDEF ]6505 6505	/ CLEAR OUTPUT REGISTER
	OPDEF ]6506 6506	/ SET OUTPUT REGISTER
	OPDEF ]6507 6507	/ READ OUTPUT REGISTER
	SKPDF JMSK 4000
	ENTRY IDIG
	ENTRY ODIG
	DUMMY IARG1
	DUMMY IARG2
	DUMMY IARG3
IARG1,	BLOCK 2
IARG2,	BLOCK 2
IARG3,	BLOCK 2
XPNT,	IARG1
PNTR,	0
CNTR,	0

DV,	0
[1,	0
[2,	0
[3,	0
CDEV,	0		/ CHANGE DEVICE CODE
	TAD DV
	CLL RAL
	RTL
	DCA DV
	TAD (-10
	DCA [3
	TAD TABP
	DCA [1
LOOP0,	TAD I [1
	DCA [2
	TAD I [2
	AND (7707
	TAD DV
	DCA I [2
	INC [1
	ISZ [3
	JMP LOOP0
	JMP I CDEV
TABP,	TAB
TAB,	DBDI#
	DBEI#
	DBSK#
	DBCI#
	DBRI#
	DBCO#
	DBSO#
	DBRO#

/
/	IOT UNTERPROGRAMME
/
DBDI,	0		/ DISABLE INTERRUPT
	]6500
	JMPI DBDI
DBEI,	0		/ ENABLE INTERRUPT
	]6501
	JMPI DBEI
DBSK,	0		/ SKIP ON FLAG
	]6502
	SKP
	INC DBSK
	JMPI DBSK
DBCI,	0		/ CLEAR INPUT REGISTER
	]6503
	JMPI DBCI
DBRI,	0		/ READ INPUT REGISTER
	]6504
	JMPI DBRI
DBCO,	0		/ CLEAR OUTPUT REGISTER
	]6505
	JMPI DBCO
DBSO,	0		/ SET OUTPUT REGISTER
	]6506
	JMPI DBSO
DBRO,	0		/ READ OUTPUT REGISTER
	]6507
	JMPI DBRO

ERR2,	5104; 1107	/ IDIG ERROR
IDIG,	BLOCK 2
	TAD XPNT
	DCA PNTR
	TAD (-6
	DCA CNTR
A1,	TAD I IDIG
	INC IDIG#
	DCA I PNTR
	INC PNTR
	ISZ CNTR
	JMP A1
	TAD I IARG1	/ DEVICECODE HOLEN UND PRUEFEN
	TAD (-10
	SMA
	JMP ERR1
	TAD (10
	DCA DV
	JMS CDEV	/ CHANGE DEVICE CODE
	TAD I IARG2	/ FUNKTIONSCODE HOLEN UND PRUEFEN
	SZA
	JMP IDIG1
	JMS DBRI
	JMS DBCI
	DCA I IARG3
	RETRN IDIG
IDIG1,	DCA DV
	JMS DBRI
	JMS DBCI
	DCA [1
	CALL 2,IGET
	ARG [1
	ARG DV
	DCA I IARG3
	RETRN IDIG
ERR1,	CALL 1,ERROR
	ARG ERR2
	RETRN IDIG

ERR4,	5704; 1107	/ ODIG ERROR
ODIG,	BLOCK 2
	TAD XPNT
	DCA PNTR
	TAD (-6
	DCA CNTR
A2,	TAD I ODIG
	INC ODIG#
	DCA I PNTR
	INC PNTR
	ISZ CNTR
	JMP A2
	TAD I IARG1
	TAD (-10
	SMA
	JMP ERR3
	TAD (10
	DCA DV
	JMS CDEV	/ CHANGE DEVICECODE
	TAD I IARG2	/ FUNKTIONSCODE HOLEN
	SZA
	JMP ODIG2
	CLA CMA
	JMS DBCO
	CLA
	TAD I IARG3	/ WORT HOLEN
	JMS DBSO
	CMA
	JMS DBCO
	CLA
	RETRN ODIG
ODIG2,	DCA DV
	TAD I IARG3
	SNA CLA
	JMP ODIG3
	JMS DBRO
	DCA [1
	CALL 2,SETB
	ARG [1
	ARG DV
ODIG4,	CLA CMA
	JMS DBCO
	CLA
	TAD [1
	JMS DBSO
	CMA
	JMS DBCO
	CLA
	RETRN ODIG
ODIG3,	JMS DBRO
	DCA [1
	CALL 2,CLRB
	ARG [1
	ARG DV
	JMP ODIG4
ERR3,	CALL 1,ERROR
	ARG ERR4
	RETRN ODIG
	END

TXT10, TEXT $('INTERRUPT ! KEIN SKIP')$ \I, 0 \J, 0 DV, 0
[1, 0 [2, 0 [3, 0 END
C DR8EA STATUS REPORT PROGRAMM 11.APRIL 1974 C W. HOUBEN C S SKPDF ]6500 6500 S SKPDF ]6501 6501 S SKPDF ]6502 6502 S SKPDF ]6503 6503 S SKPDF ]6504 6504 S SKPDF ]6505 6505 S SKPDF ]6506 6506 S SKPDF ]6507 6507 S SKPDF SRQ 6003 DIMENSION IS(12),ID(12),II(12) WRITE (1,100) 100 FORMAT ('DR8EA STATUS REPORT PROGRAMM') 110 READ (1,120) IDV 120 FORMAT ('DEVICECODE ( 0-7 ) ? ',I5) IF (IDV) 110,130,130 130 IF (IDV-7) 140,140,110 S\140, CLA CLL S TAD \IDV S CLL RAL S RTL S DCA \IDV S TAD (-10 S DCA Z3 S TAD TABP S DCA Z1 SLOOP0, TAD I Z1 S DCA Z2 S TAD I Z2 S AND (7707 S TAD \IDV S DCA I Z2 S INC Z1 S ISZ Z3 S JMP LOOP0 GOTO 150 SZ1, 0 SZ2, 0 SZ3, 0 STABP, TAB STAB, [6500# S [6501# S [6502# S [6503# S [6504# S [6505# S [6506# S [6507# C C IOT UNTERPROGRAMME C S[6500, 0 S ]6500 S JMP I [6500 S CLA S JMP \999 S[6501, 0 S ]6501 S JMP I [6501 S CLA IAC S JMP \999 S[6502, 0 S ]6502 S SKP S INC [6502 S JMP I [6502 S[6503, 0 S ]6503 S JMP I [6503 S CLA S TAD (3  

 OM 4 S JMP I [6504 S CLA



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