File IPT.PA (PAL assembler source file)

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

/CIS IPT-BOARD TEST PROGRAM
/
/J HALL   COMPUTER INTERFACE SYSTEMS INC  MAY,1974
/
/
/**********GENERAL INFORMATION*******************************
/
/   THIS PROGRAM IS DESIGNED TO TEST A SUSPECTED BAD IPT
/BOARD AGAINST A KNOWN GOOD ONE.  IT CAN BE RUN IN ONE OR
/TWO MACHINES.  THE GOOD BOARD IS PLACED IN THE "B"
/MACHINE, AND THE BAD BOARD IS PLACED IN THE "A" MACHINE.
/THE BOARDS MUST THEN BE CONNECTED WITH AN IPT CABLE.
/   WHEN RUNNING BOTH BOADS IN THE SAME MACHINE, A
/MINIMUM OF 8K OF MEMORY IS REQUIRED.
/
/************************************************************
/
/
/**********OPERATING INSTRUCTIONS****************************
/
/STARTING ADDRESSES: 
/	200 - RUN A MACHINE PROGRAM
/	201 - RUN B MACHINE PROGRAM
/	202 - RUN A&B IN SAME MACHINE
/
/
/ERROR PRINTOUTS:
/
/ PRGM   GOOD*  BAD*   ERR*    ERROR
/ COUNT  DATA   DATA   LOC    MESSAGE
/ XXXX   XXXX   XXXX   XXXX   XX.....................XX
/
/	*THESE APPEAR ONY IN APPLICABLE MESSAGES
/
/SWITCH SETTINGS:
/
/	SW0=0 - HALT ON ERROR
/	SW0=1 - NO HALT ON ERROR
/
/	SW1=0 - DO ALL TESTS
/	SW1=1 - CYCLE ON TEST
/
/	SW2=0 - PRINT ERROR DIAGNOSTIC
/	SW2=1 - SUPPRESS ERROR PRINTOUT
/
/
/TO USE PROGRAM WITHOUT SWITCH REGISTER
/PUT 'SKP' IN LOC 'LASE+1' AND SET UP
/LOC 'SWREG' AS ABOVE.
/
/************************************************************

/ / /SOME PDP-8E IOT'S / CAF=6007 SP1=7301 SP2=7305 S2K=7332 S4K=7330 SM1=7340 SM2=7344 MQL=7421 MQF=7701 MQA=7501 ACL=7701 SWP=7521 BSW=7002 CLC=7340 CIA=7041 EJECT / /PAGE ZERO / *0 / /INTERRUPT LOCATIONS / ZERO, 0 JMP I .+1 INTADR, INTERR /INITIAL ERROR ADDRESS EJECT / /SOME CONSTANTS AND FLAGS / *20 K7, 7 K400, 400 K1K, 1000 K2K, 2000 K4K, 4000 K6K, 6000 KM100, -100 KM203, -203 /CTRL/C IN ASCII PASS, -100 /NBR OF PASSES ERRFLG, 0 /ERROR FLAG - SET=7777 DPOINT, 0 /DATA AREA POINTER COUNT, 0 /TEMPORARY DOWNCOUNTER DSTART, 2000 /START OF DATA AREA WORDS, -5577 /NBR OF WORDS IN TRANSFER BUFLOC, 0 /BUFFER POINTER BUFFLG, 0 /BUFFER FLAG LOOP, 0 LOOP1, 0 PTEMP, 0 /TEMP PRINT LOC SAVE1, 0 SAVE2, 0 EJECT / /A MACHINE IOT SUBROUTINES / A6XX0=JMS . 0 IOTA0, 0 /SKIP ON WORD TRANSFER FLAG JMP I .-2 /AC11=1 OTHER CPU WORD ON BUS ISZ .-3 /AC10=1 OTHER CPU TAKEN WORD JMP I .-4 A6XX1=JMS . 0 IOTA1, 0 /LOAD DMA ADDRESS-1 JMP I .-2 A6XX2=JMS . 0 IOTA2, 0 /LOAD EMA, DIRECTION & STATUS JMP I .-2 A6XX3=JMS . 0 IOTA3, 0 /CLEAR FLAG AND LOAD DATA INTO AC JMP I .-2 A6XX4=JMS . 0 IOTA4, 0 /LOAD WC & START DATA BREAK JMP I .-2 A6XX5=JMS . 0 IOTA5, 0 /CLEAR DMA DONE FLAG JMP I .-2 A6XX6=JMS . 0 IOTA6, 0 /LOAD DATA ONTO BUS JMP I .-2 /AND SET INTERRUPT A6XX7=JMS . 0 IOTA7, 0 /SKIP ON DMA DONE FLAG JMP I .-2 ISZ .-3 JMP I .-4 EJECT / /B MACHINE IOT SUBROUTINES / B6XX0=JMS . 0 IOTB0, 0 /SKIP ON WORD TRANSFER FLAG JMP I .-2 ISZ .-3 JMP I .-4 B6XX1=JMS . 0 IOTB1, 0 /LOAD DMA ADDRESS-1 JMP I .-2 B6XX2=JMS . 0 IOTB2, 0 /LOAD EMA, DIRECTION & STATUS JMP I .-2 B6XX3=JMS . 0 IOTB3, 0 /CLEAR FLAG AND LOAD DATA JMP I .-2 B6XX4=JMS . 0 IOTB4, 0 /LOAD WC AND START DATA BREAK JMP I .-2 B6XX5=JMS . 0 IOTB5, 0 /CLEAR DMA DONE FLAG JMP I .-2 B6XX6=JMS . 0 IOTB6, 0 /LOAD DATA ONTO BUS JMP I .-2 /AND SET INTERRUPT B6XX7=JMS . 0 IOTB7, 0 /SKIP ON DMA DONE FLAG JMP I .-2 ISZ .-3 JMP I .-4 / /VECTORS / LINE=JMS I . PRTLN OCONV=JMS I . OCTL CHECK=JMS I . CHK, CHKDTA CLEAR=JMS I . CLR PATTERN=JMS I . GETWRD SETUP=JMS I . SETDTA EJECT / /CONTROL-C RETURNS TO OS-8 / CTRLC=JMS . CONC, 0 KSF /WAS KEY STRUCK JMP I CONC /NO KRB /YES - GET CHARACTER TAD KM203 /WAS IT CTRL/C SZA CLA JMP I CONC /NO JMP I .+1 /YES - GO TO OS-8 MSTART, 7600 /START OF OS-8 / /REPEAT TEST SUBROUTINE / REPEAT=JMS . TESTIT, 0 CTRLC LASX /GET SW REG AND K2K /DO WE RECYCLE SNA CLA ISZ TESTIT /NO JMP I TESTIT / /SWITCH READER SUBROUTINE / LASX=JMS . LASE, 0 LAS /MAKE SKP TO DEACTIVATE DCA SWREG TAD SWREG JMP I LASE SWREG, 0 / /HALT ON ERROR SUBROUTINE / HALT=JMS . HALTE, 0 LASX AND K4K SNA CLA JMP I HALTE ISZ HALTE JMP I HALTE
/INITIALIZING ROUTINES / /START 200 - START A MACHINE /START 201 - START B MACHINE /START 202 - START A&B IN SAME MACHINE / *200 / JMP STARTA JMP STARTB / /WE ARE IN SAME MACHINE / CAF JMS INITA /INITIALIZE A JMS INITB /INITIALIZE B RETURN, TAD (B6XX6 DCA INTA2 JMS INTA /CHECK INTERRUPTS REPEAT JMP .-2 JMS SEND1 /CHECK AC XFER REPEAT JMP .-2 JMS DB1 /CHECK DATA BREAK XFER REPEAT JMP .-2 JMS EXIT JMP RETURN EJECT / /AC XFER TEST - SAME MACHINE / / SEND1, 0 TAD DSTART DCA DPOINT TAD WORDS DCA COUNT /SET COUNTER -NBR WORDS XFER CAF SENDIT, PATTERN DCA SAVE1 TAD SAVE1 A6XX6 /SEND DATA FROM A TO B B6XX0 /WAIT FOR B'S FLAG JMP .-1 RAR /CHECK FOR CORRECT BIT SET SNL CLA JMS ERROR3 /WRONG BIT SET B6XX3 /GET A'S WORD DCA SAVE2 A6XX0 /WAIT FOR A'S FLAG JMP .-1 RTR /CHECK BIT SNL CLA JMS ERROR3 /BAD BIT A6XX3 CLA /CLEAR BUS TAD SAVE2 /GET WORD AGAIN B6XX6 /SEND BACK TO A A6XX0 /WAIT FOR A'S FLAG JMP .-1 RAR /CHECK BIT SNL CLA JMS ERROR3 /BAD BIT A6XX3 /GET WORD DCA SAVE2 TAD SAVE1 CIA /SEE IF CORRECT TAD SAVE2 SZA CLA JMS ERROR1 /BAD TRANSFER B6XX0 /WAIT FOR B'S FLAG JMP .-1 B6XX3 /CLEAR BUS CLA CTRLC ISZ DPOINT ISZ COUNT /WE DONE YET JMP SENDIT /NOPE JMP I SEND1 /YES EJECT / /DATA BREAK XFER TEST - SAME MACHINE / DB1, 0 SETUP CDF 10 CLEAR S4K /SET UP FOR OUTPUT A6XX2 SP1 B6XX2 /AND B FOR INPUT CLC TAD DSTART /SET DATA POINTER A6XX1 /INTO DMA ADDRESS TAD WORDS /1> NBR WORDS 1'S COMP A6XX4 /LOAD WC AND START DATA BREAK CLC TAD DSTART /SET UP B'S DMA B6XX1 TAD WORDS /NBR WORDS 1'S COMP B6XX4 /LOAD WC AND GO A6XX7 /DMA DONE? JMP .-1 /NO A6XX5 /YES - CLEAR FLAG B6XX7 /WE DONE B ALSO JMP .-1 /NOT YET B6XX5 /YES - CLEAR IT CHECK /DATA TRANSFER CDF CLEAR S4K /NOW WE TRANSFER BACK IAC B6XX2 A6XX2 CLC TAD DSTART B6XX1 /LOAD DMA TAD WORDS B6XX4 /LOAD WC AND GO CLC TAD DSTART A6XX1 /LOAD DMA TAD WORDS A6XX4 /LOAD WC AND GO B6XX7 /COMPLETE//? JMP .-1 /NO B6XX5 /CLEAR FLAG A6XX7 /CHECK HIM ALSO JMP .-1 A6XX5 /CLEAR HIS FLAG CHECK /DATA TRANSFER CTRLC /AND HIM JMP I DB1 / /LITERALS *0
/ / /INITIALIZE ROUTINES FOR SEPARATE MACHINES / / *400 / /SET UP A'S IOTS / INITA, 0 TAD (AIOT JMS PRINT JMS GETIOT DCA IOTA0 SP1 TAD IOTA0 DCA IOTA1 SP1 TAD IOTA1 DCA IOTA2 SP1 TAD IOTA2 DCA IOTA3 SP1 TAD IOTA3 DCA IOTA4 SP1 TAD IOTA4 DCA IOTA5 SP1 TAD IOTA5 DCA IOTA6 SP1 TAD IOTA6 DCA IOTA7 TAD (CRLF JMS PRINT JMP I INITA EJECT / /SET UP B'S IOTS / INITB, 0 TAD (BIOT JMS PRINT JMS GETIOT DCA IOTB0 SP1 TAD IOTB0 DCA IOTB1 SP1 TAD IOTB1 DCA IOTB2 SP1 TAD IOTB2 DCA IOTB3 SP1 TAD IOTB3 DCA IOTB4 SP1 TAD IOTB4 DCA IOTB5 SP1 TAD IOTB5 DCA IOTB6 SP1 TAD IOTB6 DCA IOTB7 TAD (CRLF JMS PRINT JMP I INITB EJECT / /SET UP DATA AREA / SETDTA, 0 TAD DSTART DCA DPOINT SM1 TAD WORDS DCA COUNT SETDT1, PATTERN DCA I DPOINT ISZ DPOINT ISZ COUNT /WE DONE JMP SETDT1 JMP I SETDTA EJECT / /GET NUMBER FROM TTY / NUMBER, 0 KSF JMP .-1 KRB /GET CHARACTER TAD (-260 /MUST BE 0 OR GREATER SPA JMP I NUMBER /ERROR MQL /SAVE MQF TAD (-10 SMA CLA JMP I NUMBER /GREATER THAN 7 MQF /GET IT TAD (260 /RESTORE IT TLS /ECHO IT TSF /WAIT FOR FLAG JMP .-1 MQF /GET AGAIN ISZ NUMBER /BUMP RETURN JMP I NUMBER / /GET IOT CODE / GETIOT, 0 JMS NUMBER JMP .-1 CLL RTL RTL RTL DCA LOOP JMS NUMBER JMP .-1 RTL CLL RAL TAD LOOP TAD K6K DCA LOOP LINE /CRLF 0 TAD LOOP JMP I GETIOT / /LITERALS *0
/ / /SEND, RECEIVE AND INTERRUPT SUBROUTINES / / *600 / /CHECK AC XFER FROM A / SENDA, 0 TAD WORDS DCA COUNT TAD DSTART DCA DPOINT SENDA1, PATTERN DCA SAVE1 DCA LOOP TAD SAVE1 A6XX6 /SEND IT A6XX0 /WAIT FOR FLAG JMS TIMLP JMP .+3 JMP .-3 JMP ERROR6 RTR SNL CLA /FLAG OK? JMS ERROR3 /NOPE A6XX3 /CLEAR THE FLAG CLA A6XX0 /WAIT FOR RETURN FLAG JMS TIMLP JMP .+3 JMP .-3 JMP ERROR6 RAR SNL CLA /CHECK FLAG JMS ERROR3 /BAD A6XX3 /GET WORD DCA SAVE2 TAD SAVE2 /CHECK REURNED WORD CIA TAD SAVE1 SZA CLA JMS ERROR1 ISZ DPOINT ISZ COUNT JMP SENDA1 JMP I SENDA EJECT / /TEST INTERRUPTS - A MACHINE / INTA, 0 CLC INTA2, A6XX6 DCA LOOP TAD (-100 DCA LOOP1 INTA1, A6XX0 /CHECK FOR INTERRUPTS JMS ERROR2 SKP JMP INTA1 A6XX2 TAD (INTERR /SET UP TO CHECK IF INTERRUPT WORKS DCA INTADR ION DCA LOOP ISZ LOOP JMP .-1 IOF TAD (INTCHK DCA INTADR S2K A6XX2 /ENABLE INTERRUPTS ION DCA LOOP JMS TIMLP SKP JMP .-2 IOF JMS ERROR5 /WE SHOULD HAVE AN INTERRUPT INTA3, TAD (INTERR DCA INTADR JMP I INTA /EXIT INTCHK, A6XX0 /WE SHOULD HAVE AN INTERRUPT HANGING JMS ERROR5 RAR SNL CLA /CHECK BIT JMS ERROR5 DCA LOOP A6XX3 /CLEAR INTERRUPT A6XX0 /SEE IF WE CLEARED IT JMS TIMLP JMS ERROR5 JMP .-3 JMP INTA3 EJECT / /TIMEOUT LOOP / TIMLP, 0 CTRLC ISZ TIMLP ISZ LOOP JMP I TIMLP JMP TIMLP+2 EJECT / /CHECK FLAGS / FLGSKP, 0 CTRLC B6XX0 JMP DUNSKP RAR CLL SZL JMP WRDXFR SZA CLA JMP BGO DUNSKP, B6XX7 JMP FLGSKP+1 B6XX5 JMP I FLGSKP / /LITERALS *0
/ / /STARTING AND RUNNING ROUTINES FOR TWO MACHINES / / *1000 / /A MACHINE PROGRAM / STARTA, CAF /CLEAR ALL FLAGS JMS INITA /INITIALIZE A JMS INTA /CHECK A'S INTERRUPTS REPEAT JMP .-2 JMS SENDA /AND HIS AC TRANSFER REPEAT JMP .-2 STRTA1, SETUP S4K A6XX2 /SET FOR OUTPUT CLC TAD DSTART A6XX1 /SET UP DMA TAD WORDS /1> NBR WORDS ONES COMPL A6XX4 /LOAD WC AND START BREAK CTRLC /RET TO OS-8/ A6XX7 /WAIT FOR DMA DONE FLAG JMP .-2 A6XX5 /CLEAR FLAG CLEAR A6XX2 /SET TO RECEIVE CLC TAD DSTART A6XX1 /SET DMA TAD WORDS /ONES COMPL NBR WORDS A6XX4 /WC AND START BREAK CTRLC /CHECK HIM A6XX7 /WAIT FOR FLAG JMP .-2 A6XX5 CHECK /DATA TRANSFER REPEAT JMP STRTA1 JMS EXIT JMP STARTA+2 /AND DO ALL OVER AGAIN EJECT / /B MACHINE PROGRAM - SET UP AND READ / STARTB, JMS INITB BGO, CAF CLC TAD DSTART B6XX1 B6XX2 TAD WORDS B6XX4 JMS FLGSKP /WAIT FOR A FLAG / /SET UP AND WRITE BACK / CLC TAD DSTART B6XX1 S4K B6XX2 TAD WORDS B6XX4 JMS FLGSKP JMP BGO / /WORD XFER ROUTINE - B MACHINE / WRDXFR, B6XX3 DCA LOOP /SAVE TAD (-20 DCA COUNT ISZ COUNT /WAIT FOR A MACHINE JMP .-1 /TO CATCH UP TAD LOOP B6XX6 /SEND DATA BACK JMS FLGSKP /WAIT FOR FLAG JMP BGO /IF YOU EVER GET HERE EJECT / /EXIT ROUTINE / EXIT, 0 ISZ PASS JMP I EXIT TAD ERRFLG SZA CLA /ANY ERRORS JMP BADDY /YES LINE GODBRD 0 JMP CONT BADDY, LINE BADBRD 0 CONT, TAD KM100 DCA PASS DCA ERRFLG JMP I EXIT EJECT / /CHECK THE DATA / CHKDTA, 0 TAD DSTART DCA DPOINT SP1 TAD WORDS DCA COUNT CHKD1, TAD I DPOINT DCA SAVE2 PATTERN DCA SAVE1 TAD SAVE1 CIA TAD SAVE2 SZA CLA JMS ERROR4 CTRLC ISZ DPOINT ISZ COUNT JMP CHKD1 JMP I CHKDTA EJECT / /GENERATE A WORD PATTERN / GETWRD, 0 TAD DPOINT /GET ADDR AND K4K SZA CLA /IS IT 4000-7577 JMP FOURS /YES TAD DPOINT /MUST BE 2000-3777 RAR /ODD OR EVEN ADDR SZL CLA CMA JMP I GETWRD FOURS, TAD DPOINT /GET ADDR CMA /COMP OF ADDR IN DATA JMP I GETWRD / /LITERALS / *0
/ *1200 / /PRINT A LINE OF TEXT / PRTLN, 0 PRTLN2, TAD I PRTLN ISZ PRTLN SNA /WE DONE JMP PRTLN1 /YES JMS PRINT /NO - PRINT IT JMP PRTLN2 /AND CONTINUE PRTLN1, TAD (CRLF JMS PRINT JMP I PRTLN EJECT / /PRINT THE BUFFER / PRINT, 0 DCA POINT /STORE POINTER DCA HWD /CLEAR PR2, TAD I POINT ISZ HWD /WE ON LH OF WORD JMP PR4 /YES ISZ POINT /NO, INCR POINTER PR1, AND (77 SNA JMP PR3 /BUFFER DONE MQL MQF TAD (-37 SNA /IS IT LINEFEED JMP LF /YES TAD (-4 SNA CLA JMP CR /YES MQF AND (40 SNA CLA TAD (100 TAD (200 MQA JMP PR5 LF, TAD (212 JMP PR5 CR, TAD (215 PR5, TLS /PRINT IT TSF JMP .-1 CLA JMP PR2 /AND DO ANOTHER PR4, CLC DCA HWD /SET HALFWORD FLAG TAD I POINT /GET WORD CLL RTR RTR RTR /USE BSW***** JMP PR1 PR3, TCF /CLEAR FLAG JMP I PRINT /AND EXIT POINT, 0 HWD, 0 EJECT / /PUT CORE LOCATION IN ASCII BUFFER / OCTL, 0 TAD I OCTL /GET WORD POINTER DCA OLOC TAD I OLOC /GET WORD DCA OLOC ISZ OCTL TAD I OCTL /GET BUFFER POINTER DCA BUFLOC DCA BUFFLG ISZ OCTL TAD (-4 /SET UP COUNT DCA CHCNT OCT1, TAD OLOC CLL RTL RAL DCA OLOC TAD OLOC RAL AND K7 TAD (60 ISZ BUFFLG /WE ON LH SIDE JMP PUT1 /YES TAD I BUFLOC /NO DCA I BUFLOC ISZ BUFLOC JMP PUT2 /EXIT PUT1, CLL RTL /USE BSW***** RTL RTL AND (7700 DCA I BUFLOC /STORE CLC DCA BUFFLG /SET FLAG PUT2, ISZ CHCNT JMP OCT1 /NOT DONE JMP I OCTL /WE DONE OLOC, 0 CHCNT, 0 EJECT / /INTERRUPT ERROR ROUTINE / INTERR, TAD ZERO DCA .+5 CTRLC JMS ERROR5 CAF JMP I .+1 0 / /CLEAR BUFFER ROUTINE / CLR, 0 TAD DSTART DCA DPOINT SM1 TAD WORDS DCA COUNT CLR1, DCA I DPOINT ISZ DPOINT ISZ COUNT JMP CLR1 JMP I CLR / /LITERALS *0
/ /ERROR ROUTINES / *1400 / / ERROR1, 0 JMS PCHK JMP I ERROR1 SM1 TAD ERROR1 JMS MISC LINE PCOUNT PSAVE1 PSAVE2 ERR1 0 HALT HLT JMP I ERROR1 / / ERROR2, 0 ISZ ERROR2 ISZ LOOP JMP I ERROR2 ISZ LOOP1 JMP I ERROR2 LINE ERR2 0 JMP I ERROR2 / / ERROR3, 0 JMS PCHK JMP I ERROR3 SM1 TAD ERROR3 DCA PTEMP OCONV PTEMP PCOUNT LINE PCOUNT ERR3 0 HALT HLT JMP I ERROR3 EJECT ERROR4, 0 JMS PCHK JMP I ERROR4 SM1 TAD I CHK JMS MISC OCONV DPOINT PSAVE3 LINE PCOUNT PSAVE1 PSAVE2 PSAVE3 ERR4 0 HALT HLT JMP I ERROR4 / / ERROR5, 0 JMS PCHK JMP I ERROR5 SM1 TAD ERROR5 DCA PTEMP OCONV PTEMP PCOUNT LINE PCOUNT ERR5 0 HALT HLT JMP I ERROR5 EJECT ERROR6, 0 JMS PCHK JMP I ERROR6 SM1 TAD I ERROR6 DCA PTEMP OCONV PTEMP PCOUNT LINE PCOUNT ERR6 0 HALT HLT JMP I ERROR6 / /CHECK SWREG FLAG / PCHK, 0 CDF CTRLC CLC DCA ERRFLG /SET ERROR FLAG LASX AND K1K /DO WE PRINT SNA CLA ISZ PCHK /NO JMP I PCHK / /MISC SUBROUTINE / MISC, 0 DCA PTEMP OCONV PTEMP PCOUNT OCONV SAVE1 PSAVE1 OCONV SAVE2 PSAVE2 JMP I MISC
/ /TEXT BUFFERS / CRLF, 4337 0 PCOUNT, 4040 4040 4040 4000 PSAVE1, 4040 4040 4040 4000 PSAVE2, 4040 4040 4040 4000 PSAVE3, 4040 4040 4040 4000 GODBRD, TEXT !GOOD BOARD! BADBRD, TEXT !BAD BOARD! AIOT, TEXT !ENTER A MACHINE IOT CODE ! EJECT BIOT, TEXT !ENTER B MACHINE IOT CODE ! ERR1, TEXT !AC XFER INCORRECT! ERR2, TEXT !NO INTERRUPT FROM B! ERR3, TEXT !AC INTERRUPT FLAG INCORRECT! EJECT ERR4, TEXT !TRANSFERRED DATA INCORRECT ! ERR5, TEXT !INTERRUPT ERROR! ERR6, TEXT !TIMEOUT ERROR! $
/IDRTST / /INTERPROCESSOR TEST PROGRAM / /J HALL 5/7/74 / / /SOME PDP-8E IOT'S / CAF=6007 SP1=7301 SP2=7305 S2K=7332 S4K=7330 SM1=7340 MQL=7421 MQF=7701 MQA=7501 AACL=7701 SWP=7521 BSW=7002 / / / / / *0 ZERO, 0 JMP I .+1 INTADR, INTERR /INITIAL ERROR ADDRESS / / /AUTOINDEX REGISTERS / *10 AUTO10, 0 AUTO11, 0 AUTO12, 0 AUTO13, 0 AUTO14, 0 AUTO15, 0 AUTO16, 0 AUTO17, 0 / / /SOME CONSTANTS AND FLAGS / *20 K7, 7 K6K, 6000 CORE, 0 /NUMBER OF ADDITIONAL 4K FIELDS MCORE, 0 /TWO'S COMPLIMENT OF CORE TWOFLG, 0 /SAME MACHINE FLAG COUNT, 0 /TEMPORARY DOWNCOUNTER COUNTA, 0 /A'S DOWNCOUNTER COUNTB, 0 /B'S DOWNCOUNTER / / / / / /IOT SUBROUTINES - SET UP AT INITIALIZE TIME / A6XX0=JMS 0 JMP I .-2 /AC11=1 OTHER CPU WORD ON BUS ISZ .-3 /AC10=1 OTHER CPU TAKEN WORD JMP I .-4 / / A6XX1=JMS . 0 IOTA1, 0 /LOAD DMA ADDRESS-1 JMP I .-2 / / A6XX2=JMS . 0 IOTA2, 0 /LOAD EMA, DIRECTION & STATUS JMP I .-2 / / A6XX3=JMS . 0 IOTA3, 0 /CLEAR FLAG AND LOAD DATA INTO AC JMP I .-2 / / A6XX4=JMS . 0 IOTA4, 0 /LOAD WC & START DATA BREAK JMP I .-2 / / A6XX5=JMS . 0 IOTA5, 0 /CLEAR DMA DONE FLAG JMP I .-2 / / A6XX6=JMS . 0 IOTA6, 0 /LOAD DATA ONTO BUS JMP I .-2 /AND SET INTERRUPT / / A6XX7=JMS . 0 IOTA7, 0 /SKIP ON DMA DONE FLAG JMP I .-2 ISZ .-3 JMP I .-4 / / / / B6XX0=JMS . 0 IOTB0, 0 /SKIP ON WORD TRANSFER FLAG JMP I .-2 ISZ .-3 JMP I .-4 / / B6XX1=JMS . 0 IOTB1, 0 /LOAD DMA ADDRESS-1 JMP I .-2 / / B6XX2=JMS . 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