1
0
mirror of https://github.com/livingcomputermuseum/cpus-pdp8.git synced 2026-01-12 00:12:44 +00:00

Fixed free core map for RKSYS-related blocks. Hopefully.

Cleaned up some naming, removed some TODOs.
This commit is contained in:
Josh Dersch 2019-11-24 17:03:43 -08:00
parent 134c021505
commit 38191a07c6
2 changed files with 39 additions and 32 deletions

View File

@ -765,6 +765,8 @@ OCTIN2, CLL CLA
TAD OCTINT
JMP I OCTIN0
IFZERO RKSYS <
/AFTER LOAD OR DUMP, BOOT BACK TO WHATEVER OPERATING SYSTEM IS ON THE RF08.
/THIS WAY, INIT CAN BE USED TO LOAD/DUMP OS/8.
RBOOT, 6641 /DCXA /CLEAR RF08 EXTENDED DISK ADDRESS
@ -773,7 +775,12 @@ RBOOT, 6641 /DCXA /CLEAR RF08 EXTENDED DISK ADDRESS
DMAR
DFSC
5352 /JMP .
5752 /JMP I .-1
5752 /JMP I .-1
>
IFNZRO RKSYS <
/AFTER LOAD OR DUMP, WE JUST RELOAD INIT.
RBOOT, JMP SUPERA
>
CRLF= LOGM2+10
LOGM2, TEXT "END WITH ALTMODE_"
@ -1195,7 +1202,7 @@ CORIN4, TAD AXS2
JMP CORIN1
HLT /OOPS!!!
CORIN2, TAD I CORF1 /ANY EXTRA FREE CORE TO BE GENERATED?
SNA /SNA - TODO: FREE CORE MAP IS BOGUS, CLOBBERS PARTS OF FIELD 1! WHERE IS THIS DEFINED?
SNA
JMP CORIN3
DCA AXS2
ISZ CORF1

View File

@ -2626,8 +2626,6 @@ URTF, CLA STL IAC RTR /AC=6000
UUOEXT
>
/ TODO: COULD POSSIBLY FIT RK05 DISK BUFFER HERE
IFNZRO DC08A <
DC08B= DC08A+4%5
@ -5740,15 +5738,17 @@ IFZERO LPT <NOP>
/REFERENCED BY INIT AT START TIME
/ THE FOLLOWING AREAS WILL BECOME PART OF FREE CORE:
IFZERO TC01+RK05+CDR <
IFZERO TC01+RK05+CDR+RKSYS <
ENDBUF;FCE4 >
IFNZRO TC01+RK05+CDR <
IFNZRO TC01+RK05+CDR+RKSYS <
IFZERO TC01 <
ENDBUF;FCE1 >
IFZERO RK05 <
FCB2;FCE2
FCB4;FCE4 >
IFZERO RKSYS <
FCB6;FCE6 >
IFZERO CDR <
FCB3;FCE3 > >
IFNZRO DC08A <
@ -6992,6 +6992,7 @@ DISPL1, LAS /WHAT WAS THAT FIELD AGAIN?
*2400
FCB6= .+7&7770
IFNZRO RKSYS <
RKGO0, 0
@ -7113,14 +7114,14 @@ RKRET, 0
DCLR
TAD RKWCPL
SNA
JMP DSRET0
JMP RKRET0
CLA
DCA RKWCPL
JMP DSRNXT / WRITE: CLEAR WRITE COMPLETE FLAG, DO NEXT SECTOR.
JMP RKRNXT / WRITE: CLEAR WRITE COMPLETE FLAG, DO NEXT SECTOR.
/ BLT: CALCULATE THE NUMBER OF WORDS TO TRANSFER; THIS IS AT MOST
/ 256 WORDS (ONE RK05 SECTOR), AT MINIMUM 1 WORD.
DSRET0, TAD RKOFF
RKRET0, TAD RKOFF
CMA IAC
TAD K0400 / SUBTRACT SECTOR OFFSET FROM 256 TO DETERMINE
DCA RKXWC / MAX TRANSFER COUNT.
@ -7128,14 +7129,14 @@ DSRET0, TAD RKOFF
TAD RKWD
TAD RKXWC / ADD MAX, DID WE OVERFLOW?
SZL
JMP DSRET1
JMP RKRET1
CLL CLA / NO: MORE THAN MAX WORDS LEFT, COPY ONLY MAX
TAD RKXWC
CMA IAC
JMP DSRET2
DSRET1, CLL CLA
JMP RKRET2
RKRET1, CLL CLA
TAD RKWD / FEWER THAN MAX WORDS, COPY THE REMAINDER
DSRET2, DCA RKXWC
RKRET2, DCA RKXWC
TAD RKEMA / USER FIELD
DCA UDF1+1
CMA CLA
@ -7147,11 +7148,11 @@ DSRET2, DCA RKXWC
DCA A17
TAD RKWRI / IS THIS A WRITE?
SNA
JMP DSRET3 / NO
JMP RKRET3 / NO
STL CLA / YES: SET LINK (FROM USER TO DATFLD FOR BLTF1)
JMP DSBL
DSRET3, CLL CLA / NO: CLEAR LINK (FROM DATFLD TO USER)
DSBL, TAD RKXWC / -WC TO AC
JMP RKBL
RKRET3, CLL CLA / NO: CLEAR LINK (FROM DATFLD TO USER)
RKBL, TAD RKXWC / -WC TO AC
/ DO THE TRANSFER
JMS BLTF1
/ IF THIS WAS A READ OPERATION WE ARE DONE.
@ -7160,17 +7161,15 @@ DSBL, TAD RKXWC / -WC TO AC
CLL CLA
TAD RKWRI
SNA
JMP DSRNXT / THIS IS A READ, JUST GO TO NEXT SECTOR
JMP RKRNXT / THIS IS A READ, JUST GO TO NEXT SECTOR
CLA
TAD K4410 / WRITE W/INTERRUPT FROM FIELD 1
DCA RKRW
JMS RKOP
ISZ RKWCPL / SET WRITE COMPLETE FLAG
JMP DSNDON / DONE FOR NOW.
JMP RKNDON / DONE FOR NOW.
DSRNXT, / PROCESS NEXT SECTOR IF NECESSARY
/ TODO: THIS NEEDS TO BE REFACTORED TO ALLOW RETRYING OPERATIONS
/ AFTER DISC ERRORS.
RKRNXT, / PROCESS NEXT SECTOR IF NECESSARY
CLA
TAD RKXWC
CMA IAC
@ -7179,45 +7178,46 @@ DSRNXT, / PROCESS NEXT SECTOR IF NECESSARY
/ ANY MORE DATA TO TRANSFER?
TAD RKWD
SNA
JMP DSDONE / NO: JUST RETURN.
JMP RKDON / NO: JUST RETURN.
/ YES: MOVE TO THE NEXT SECTOR
/ THIS SHOULD NOT OVERFLOW -- THE DF08 HAD AN 8-BIT EXTENDED (TRACK) ADDRESS
/ AND THE RK8E/RK05 HAS 9 BITS. FIP SHOULD PREVENT OVERFLOW FROM DF08
/ ADDRESS SPACE.
ISZ RKDSKA / THIS SHOULD NEVER OVERFLOW BUT I AM TESTING ANYWAY
JMP DSRNX0 / NO OVERFLOW
HLT / YIKES.
DSRNX0, CLA / SECTOR OFFSET GETS RESET TO ZERO WHEN CROSSING SECTOR BOUNDARIES
JMP RKRNX0 / NO OVERFLOW
HLT / YIKES.
RKRNX0, CLA / SECTOR OFFSET GETS RESET TO ZERO WHEN CROSSING SECTOR BOUNDARIES
DCA RKOFF
/ INCREMENT CORE ADDRESS
TAD RKXWC
CMA IAC
TAD RKADDR / INCREMENT CORE ADDRESS (TODO: RENAME THIS, IT IS BAD)
TAD RKADDR / INCREMENT CORE ADDRESS
DCA RKADDR
/ AND START THE NEXT READ
TAD K0410 / READ W/INTERRUPT INTO FIELD 1
DCA RKRW
JMS RKOP
DSNDON, ISZ RKRET / RETURN +1, MORE TRANSFERS TO GO.
DSDONE,
RKNDON, ISZ RKRET / RETURN +1, MORE TRANSFERS TO GO.
RKDON,
CDI 00 / RETURN TO FIELD 0
JMP I RKRET
/ TODO: CLEAN UP THESE NAMES!
RKWRI, 0 / 0 = READ, 1 = WRITE
RKDSKA, 0 / RK05 DISK ADDRESS FOR THE TRANSFER (LOW 12 BITS)
RKEMA, 0 / USER'S FIELD FOR THE TRANSFER
RKWD, 0 / NEGATIVE WORD COUNT FOR THE TRANSFER
RKADDR, 0 / POINTER TO THE USER'S CORE MEMORY FOR THE TRANSFER
RKOFF, 0 / THE OFFSET IN THE SECTOR DATA TO COPY
RKBLKA, RKBLK / POINTER TO THE MONITOR'S RK05 SECTOR BUFFER (256 WORDS)
RKBLKA, RKBLK / POINTER TO THE MONITOR'S RK05 SECTOR BUFFER (256 WORDS)
RKWCPL, 0 / WRITE COMPLETE BIT: SET WHEN A READ-MODIFY-WRITE CYCLE
/ IS COMPLETING THE WRITE PORTION OF THE CYCLE.
/ IS COMPLETING THE WRITE PORTION OF THE CYCLE.
RKXWC, 0 / WORDS TRANSFERRED THIS GO-AROUND
K0410, 0410
K4410, 4410
K6211, 6211
FCE6= .&7770
DEVDMB= JOBTBL-2
*DEVTBL-1
DEVDMB /DUMMY USED BY FIP RELEASE