mirror of
https://github.com/TomHarte/CLK.git
synced 2025-01-12 00:30:31 +00:00
Ensures proper loading of the SP at reset.
This commit is contained in:
parent
6b996ae57d
commit
8c8493bc9d
@ -146,8 +146,8 @@ struct ProcessorStorageConstructor {
|
|||||||
* nV: fetch a vector's MSW;
|
* nV: fetch a vector's MSW;
|
||||||
* nv: fetch a vector's LSW;
|
* nv: fetch a vector's LSW;
|
||||||
* i: acquire interrupt vector in an IACK cycle;
|
* i: acquire interrupt vector in an IACK cycle;
|
||||||
* nF: fetch the SSPs MSW;
|
* nF: fetch the current SPs MSW;
|
||||||
* nf: fetch the SSP's LSW;
|
* nf: fetch the current SP's LSW;
|
||||||
* _: hold the reset line active for the usual period.
|
* _: hold the reset line active for the usual period.
|
||||||
* tas: perform the final 6 cycles of a TAS: like an n nw but with the address strobe active for the entire period.
|
* tas: perform the final 6 cycles of a TAS: like an n nw but with the address strobe active for the entire period.
|
||||||
* int: the interrupt acknowledge cycle.
|
* int: the interrupt acknowledge cycle.
|
||||||
@ -157,8 +157,8 @@ struct ProcessorStorageConstructor {
|
|||||||
stick to that document's coding exactly for easier debugging.
|
stick to that document's coding exactly for easier debugging.
|
||||||
|
|
||||||
np fetches will fill the prefetch queue, attaching an action to both the
|
np fetches will fill the prefetch queue, attaching an action to both the
|
||||||
step that precedes them and to themselves. The SSP fetches will go straight
|
step that precedes them and to themselves. The SP fetches will go
|
||||||
to the SSP.
|
to address_[7], whichever stack pointer that may currently be.
|
||||||
|
|
||||||
Other actions will by default act via effective_address_ and bus_data_.
|
Other actions will by default act via effective_address_ and bus_data_.
|
||||||
The user should fill in the steps necessary to get data into or extract
|
The user should fill in the steps necessary to get data into or extract
|
||||||
@ -214,7 +214,7 @@ struct ProcessorStorageConstructor {
|
|||||||
if(token == "nF" || token == "nf") {
|
if(token == "nF" || token == "nf") {
|
||||||
step.microcycle.operation = Microcycle::NewAddress | Microcycle::Read | Microcycle::IsProgram; // IsProgram is a guess.
|
step.microcycle.operation = Microcycle::NewAddress | Microcycle::Read | Microcycle::IsProgram; // IsProgram is a guess.
|
||||||
step.microcycle.address = &storage_.effective_address_[0].full;
|
step.microcycle.address = &storage_.effective_address_[0].full;
|
||||||
step.microcycle.value = isupper(token[1]) ? &storage_.stack_pointers_[1].halves.high : &storage_.stack_pointers_[1].halves.low;
|
step.microcycle.value = isupper(token[1]) ? &storage_.address_[7].halves.high : &storage_.address_[7].halves.low;
|
||||||
steps.push_back(step);
|
steps.push_back(step);
|
||||||
|
|
||||||
step.microcycle.operation = Microcycle::SameAddress | Microcycle::Read | Microcycle::IsProgram | Microcycle::SelectWord;
|
step.microcycle.operation = Microcycle::SameAddress | Microcycle::Read | Microcycle::IsProgram | Microcycle::SelectWord;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user