User Tools

Site Tools


system_interface

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
system_interface [2025/07/25 17:52] reggiesystem_interface [2025/08/26 15:57] (current) – [Keyboard] reggie
Line 61: Line 61:
 The colour palette used is the 16-colour [[https://pico-8.fandom.com/wiki/Palette|PICO-8 standard]] which provides a pleasant selection for retro video games. In 4-colour mode colours (0, 1, 2, 3) map to (0=black, 8=red, 11-green, 12=blue) respectively. In 2-colour mode colours (0, 1) map to (0, 11). The colour palette used is the 16-colour [[https://pico-8.fandom.com/wiki/Palette|PICO-8 standard]] which provides a pleasant selection for retro video games. In 4-colour mode colours (0, 1, 2, 3) map to (0=black, 8=red, 11-green, 12=blue) respectively. In 2-colour mode colours (0, 1) map to (0, 11).
  
-==== Keyboard ====+==== Text screen ==== 
 + 
 +The text screen is a memory-mapped display of the contents of 512 bytes of RAM beginning at address $0400. One byte represents one character. Values of 64..95 are the corresponding ASCII characters; 96..127 are ASCII characters 32..63. Values of 0..63 mirror those of 64+ but in inverse video. 
 + 
 +Columns and rows are zero-based with (0, 0) at the (left, top). Addresses increase left to right, then top to bottom, for a 32 wide and 16 high display. So column 7, row 3 is at address $400+(3*32)+(7). 
 + 
 +==== Keyboard & Controller ====
  
 The keyboard is accessed by a single port. Simply write 0 to the port then read from the same address. A negative value means no key has been pressed, otherwise the value is the ASCII code of the last key pressed. Write $ff to the same port to clear the keyboard buffer. The keyboard is accessed by a single port. Simply write 0 to the port then read from the same address. A negative value means no key has been pressed, otherwise the value is the ASCII code of the last key pressed. Write $ff to the same port to clear the keyboard buffer.
Line 82: Line 88:
     bita #BtnFire     bita #BtnFire
     bne fireWeapon     bne fireWeapon
 +
 +==== Hex Dump ====
 +
 +Click this button to copy a range of bytes to the system clipboard. Set the X and Y registers to specify the start and end of the range, ie. from X to Y-1. For example, if we have a program starting at $4000,  clicking **Hex Dump** with X=$4000, Y=$6000 copies $2000 bytes from $4000 to $5FFF inclusive. Now paste the text into a basic text editor and save it with extension '.hex'.
 +
 +The format used is [[https://en.wikipedia.org/wiki/Intel_HEX|Intel Hex]]. It can be used directly by the [[https://www.6809.org.uk/xroar/online/|Xroar Dragon / CoCo Emulator]]. So using the example above, type CLEAR 200,16383 into the Dragon, load the '.hex' file, and execute it with EXEC 16384.
  
  
  
system_interface.1753465932.txt.gz · Last modified: 2025/07/25 17:52 by reggie

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki