User Tools

Site Tools


sd-8516_programmer_s_reference_guide

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sd-8516_programmer_s_reference_guide [2026/01/29 18:57] appledogsd-8516_programmer_s_reference_guide [2026/01/30 02:03] (current) appledog
Line 3: Line 3:
 == Introduction == Introduction
 The **Stellar Dynamics SD-8516** represents a categoretroical reimagining of microprocessor architecture. This 16-bit CPU, implemented in AssemblyScript for the VC-3 computer system, delivers performance exceeding conventional silicon constraints through advanced cross-boundary resonance microcascades. The **Stellar Dynamics SD-8516** represents a categoretroical reimagining of microprocessor architecture. This 16-bit CPU, implemented in AssemblyScript for the VC-3 computer system, delivers performance exceeding conventional silicon constraints through advanced cross-boundary resonance microcascades.
 +
 +The SD-8516 is intended to be an easy to learn architecture which remains era-authentic.
 +
 +^ CPU ^ Opcodes ^ Assembler ^ Notes ^
 +
 +| SD-8516 | 56 opcodes | 105 opcodes | |
 +| 6809 | 59 opcodes | 154+ | "the most elegant 8 bit CPU ever designed" |
 +| 8086 | 117 opcodes | 117 | standard of the era |
 +| 6502 | 151 opcodes | 151 | standard of the era |
 +| Z80 | 158 opcodes | hundreds | prefix machine--158 base opcodes |
 +| 8080 | 244 opcodes | | |
 +
  
 === Key Specifications === Key Specifications
Line 78: Line 90:
 == Register Encoding == Register Encoding
 === Byte Access === Byte Access
-Each register's high and low bytes are individually addressable using H/L suffixes: `AH`/`AL``BH`/`BL``XH`/`XL`, etc.+Each register's high and low bytes are individually addressable using H/L suffixes: AH/AL, BH/BL, XH/XL, etc.
  
 === 32-bit Pairs === 32-bit Pairs
 Adjacent registers can be combined for certain 32-bit operations using concatenated names: Adjacent registers can be combined for certain 32-bit operations using concatenated names:
-`AB= A (high) + B (low) +- AB = A (high) + B (low) 
-`CD= C (high) + D (low) +- CD = C (high) + D (low) 
-`EF``GI``JK``LM``TY``XZ`+- EF, GI, JK, LM, TY, XZ
  
 This is simulated 32 bit access; changing the value of a 32 bit pair will corrupt the underlying 16 bit registers, and so forth. Secondly, access is only marginally faster than 16 bit access; for memory loads, stores and compares it is usually faster to use native 16-bit mode. This is simulated 32 bit access; changing the value of a 32 bit pair will corrupt the underlying 16 bit registers, and so forth. Secondly, access is only marginally faster than 16 bit access; for memory loads, stores and compares it is usually faster to use native 16-bit mode.
Line 90: Line 102:
 === 24-bit Pointers === 24-bit Pointers
 Memory addressing uses a bank byte plus 16-bit offset. The naming convention is `[low-byte][offset]`: Memory addressing uses a bank byte plus 16-bit offset. The naming convention is `[low-byte][offset]`:
-`BLX= BL (bank) + X (address) +- BLX = BL (bank) + X (address) 
-`ELM= EL (bank) + M (address) +- ELM = EL (bank) + M (address) 
-`FLD= FL (bank) + D (address) +- FLD = FL (bank) + D (address) 
-`GLK= GL (bank) + K (address)+- GLK = GL (bank) + K (address)
  
 Eight bank registers (BL, EL, FL, GL, IL, JL, LL, TL) each pair with eight address registers (A, C, D, K, M, X, Y, Z), yielding 64 possible 24-bit pointer combinations. Eight bank registers (BL, EL, FL, GL, IL, JL, LL, TL) each pair with eight address registers (A, C, D, K, M, X, Y, Z), yielding 64 possible 24-bit pointer combinations.
  
 === Register Overlap === Register Overlap
-As with their 32-bit counterparts, 24-bit pointers share components. `ELMand `ELDboth use the EL bank byte. `FLDand `GLDboth use the D address register. Modifying one affects the other -- a common source of bugs. Always verify pointer independence when using multiple pointers simultaneously.+As with their 32-bit counterparts, 24-bit pointers share components. ELM and ELD both use the EL bank byte. FLD and GLD both use the D address register. Modifying one affects the other -- a common source of bugs. Always verify pointer independence when using multiple pointers simultaneously.
  
 === Flags Register === Flags Register
Line 339: Line 351:
 | SEV | Set overflow flag | | SEV | Set overflow flag |
 | CLV | Clear overflow flag | | CLV | Clear overflow flag |
 +
 +=== Other
 +
 +|= Instruction |= Description |
 +| TSX | Transfer SP to register* |
 +| TXS | Transfer register to SP* |
 +
 +* (*) these opcodes were suggested by stackminer from the Fantasy Console 2.0 discord. Thank you, stackminer!
  
 === System Operations === System Operations
Line 483: Line 503:
 --- ---
  
-**SD-8516 Technical Manual** - Revision 1.0 +**SD-8516 Technical Manual** - Revision 1.0\\  
-**Copyright © 2025 Appledog Hu**+**Copyright © 2025 Appledog Hu**\\ 
 **All specifications subject to change as quantum resonance research continues.** **All specifications subject to change as quantum resonance research continues.**
sd-8516_programmer_s_reference_guide.1769713051.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki