I'm going to compress the mapping for the immediate and pointer ports, so there is more room for other stuff and then the non-standard hardware for the port system will be all contained in one port
so:
there will be a special purpose port that is addressed, called x for now.
port x can be used like so:
- write a value to port x at an address y to store a pointer at pointer address y (this is done like writing to ram or any other port)
- read from port x to the dataloop from address y to a register (like reading from ram or any other port)
- write an immediate value to the dataloop by referencing port x
This looks complicated-ish, but it is basically designed so I can use the same instruction format as my port ops, to save IS space and to reduce as much extra hardware as possible.
The instructions will be abstracted in the assembly language so they would look like this:
they are actually this though:
so:
there will be a special purpose port that is addressed, called x for now.
port x can be used like so:
- write a value to port x at an address y to store a pointer at pointer address y (this is done like writing to ram or any other port)
- read from port x to the dataloop from address y to a register (like reading from ram or any other port)
- write an immediate value to the dataloop by referencing port x
This looks complicated-ish, but it is basically designed so I can use the same instruction format as my port ops, to save IS space and to reduce as much extra hardware as possible.
The instructions will be abstracted in the assembly language so they would look like this:
Code:
imm [regC] [immediate]
pointerWrite [pointerAddr]
pointerRead [regC] [pointerAddr]
they are actually this though:
Code:
portRead [regC] [immediate]
portWrite [portAddress] [pointerAddress]
portRead [regC] [portAddress] [pointerAddress]