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

Fix in RK05 SWAP routines (incorrect return from calls to SWPIO), this fixes the random delay when exiting

from programs.

A couple of small bits of code cleanup.

System still falls over when it starts actually swapping out fields (e.g. more jobs running than core).
This commit is contained in:
Frank 2019-11-16 00:35:16 -08:00
parent f25d0c95be
commit ea7b705dc0

View File

@ -5146,18 +5146,13 @@ SWPIR, 0
CLA
DCA SECTOR /RESET RK05 SWAP SECTOR COUNT
DCA RKADR /AND ADDRESS
SKP >
JMS SWPIO
JMP I SWPIR >
SWPIO, 0 /
CLA CLL CMA RTL /=3 IN AC
DCA DSERRI /# OF TRIES
JMS SWPIT /START THE SWAP
IFNZRO RKSYS <
JMP I SWPIR /RETURN
>
IFZERO RKSYS <
JMP I SWPIO /RETURN
>
SWPIT, 0
TAD SWPA /RETURN ADDRESS FOR INTERRUPT CHAIN
DCA I DSWATA /SAVE IT
@ -7105,7 +7100,7 @@ DSRET3, CLL CLA
DSBL, TAD RKXWC / -WC TO AC
/ DO THE TRANSFER
JMS BLTF1
JMS BLTF1
/ IF THIS WAS A READ OPERATION WE ARE DONE.
/ IF IT WAS A WRITE, WE NOW NEED TO DO A WRITE OPERATION TO COMMIT
/ THE MODIFIED BUFFER BACK TO DISK, AND WAIT FOR IT TO FINISH.
@ -7118,15 +7113,13 @@ DSBL, TAD RKXWC / -WC TO AC
/ TODO: NEED TO INTEGRATE DISK ADDRESS BIT 11
/ IF WE EVER HACK LARGER FILESYSTEMS
CLA IAC
DCA RKWCPL / SET WRITE COMPLETE BIT
ISZ RKRET / RETURN +1, MORE TRANSFERS TO GO.
JMP DSDONE / DONE FOR NOW.
ISZ RKWCPL / SET WRITE COMPLETE FLAG
JMP DSNDON / DONE FOR NOW.
DSRNXT, / PROCESS NEXT SECTOR IF NECESSARY
CLA
TAD RKXWC
CMA IAC
CMA IAC
TAD RKWD
DCA RKWD
/ ANY MORE DATA TO TRANSFER?
@ -7141,7 +7134,6 @@ DSRNXT, / PROCESS NEXT SECTOR IF NECESSARY
TAD RKDSKA
DCA RKDSKA
/ SECTOR OFFSET GETS RESET TO ZERO WHEN CROSSING SECTOR BOUNDARIES
CLA
DCA RKOFF
/ INCREMENT CORE ADDRESS
TAD RKXWC
@ -7149,13 +7141,11 @@ DSRNXT, / PROCESS NEXT SECTOR IF NECESSARY
TAD RKADDR / INCREMENT CORE ADDRESS (TODO: RENAME THIS, IT IS BAD)
DCA RKADDR
/ AND START THE NEXT READ
NOP
JMS DORKR
0410 / READ W/INTERRUPT INTO FIELD 1
/ TODO: NEED TO INTEGRATE DISK ADDRESS BIT 11
/ IF WE EVER HACK LARGER FILESYSTEMS
ISZ RKRET / RETURN +1, MORE TRANSFERS TO GO.
JMP DSDONE
DSNDON, ISZ RKRET / RETURN +1, MORE TRANSFERS TO GO.
DSDONE,
CDI 00 / RETURN TO FIELD 0
JMP I RKRET