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:59] 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. ''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.+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.1769713182.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki