From cf43169aef9c90ac95688156d6ef025d9d3ac933 Mon Sep 17 00:00:00 2001 From: Arthur Paulino Date: Wed, 3 Jan 2018 17:59:36 -0300 Subject: [PATCH] moving examples to https://github.com/simon987/Much-Assembly-Required/wiki/Learn-by-Examples --- Hardware:-Hologram-Projector.md | 60 +-------------------------------- 1 file changed, 1 insertion(+), 59 deletions(-) diff --git a/Hardware:-Hologram-Projector.md b/Hardware:-Hologram-Projector.md index 7c1f84e..73c0bcb 100644 --- a/Hardware:-Hologram-Projector.md +++ b/Hardware:-Hologram-Projector.md @@ -15,62 +15,4 @@ Hardware ID: `0x0009` | 3 | `HOLO_DISPLAY_DEC` | `0 kJ` | Displays the value of the B register in decimal format | | 4 | `HOLO_DISPLAY_COLOR` | `4 kJ` | Changes the color of the hologram projections using the value of the B:C register (e.g. B: 0x00AA, and C: 0xBBCC, would be RGB 0xAABBCC) | -Note that the Hologram Projector will clear itself at the end of the tick, it is only necessary to use CLEAR when you want to cancel a DISPLAY command executed within the same tick. - -### Usage examples -```assembly -; Displaying the hexadecimal 0x000A -HWID_HOLO EQU 0x9 ;; setup constants -HOLO_DISPLAY_HEX EQU 1 -.data - DISPLAYED_HEX EQU 0X000A ;; create a word in memory called DISPLAYED_HEX and set its value to 0x000A -.text - MOV A, HOLO_DISPLAY_HEX ;; MOV the constant HOLO_DISPLAY_HEX into register A - MOV B, [DISPLAYED_HEX] ;; MOV the value inside the memory spot DISPLAYED_HEX into register B - HWI HWID_HOLO ;; create an hardware interrupt which will do the magic of displaying - BRK ;; halt execution for the rest of this tick -``` -```assembly -; Displaying the string "hello!" -HWID_HOLO EQU 0x9 ;; setup constants -HOLO_DISPLAY_STRING EQU 2 -.data - DISPLAYED_STRING: DW "hello!", 0 ;; create a string in memory and point to it by DISPLAYED_STRING - ;; the ',0' is a null word. This represents the end of the string -.text - MOV A, HOLO_DISPLAY_STRING ;; MOV the constant HOLO_DISPLAY_STRING into register A - MOV X, DISPLAYED_STRING ;; MOV the pointer of DISPLAYED_STRING into register B - HWI HWID_HOLO ;; do the magic - BRK ;; halt execution until the next tick -``` -```assembly -; Displaying the decimal 42 -HWID_HOLO EQU 0x9 ;; setup constants -HOLO_DISPLAY_DEC EQU 3 -.data - DISPLAYED_DECIMAL EQU 42 ;; create a word in memory called DISPLAYED_DECIMAL and set its value - ;; to 42 -.text - MOV A, HOLO_DISPLAY_DEC ;; MOV the constant HOLO_DISPLAY_DEC into register A - MOV B, DISPLAYED_DECIMAL ;; MOV the value inside the memory spot DISPLAYED_HEX into register B - HWI HWID_HOLO ;; more magic - BRK ;; halt execution until next tick -``` -```assembly -; Displaying the decimal 42 in red -HWID_HOLO EQU 0x9 ;; setup constants -HOLO_DISPLAY_DEC EQU 3 -HOLO_DISPLAY_COLOR EQU 4 -.data - DISPLAYED_DECIMAL EQU 42 ;; create a word in memory called DISPLAYED_DECIMAL and set its value - ;; to 42 -.text - MOV A, HOLO_DISPLAY_COLOR ;; MOV the constant HOLO_DISPLAY_COLOR into register A - MOV B, 0x00FF ;; MOV the (immediate) value 0x00FF into register B - MOV C, 0x0000 ;; clear register C - HWI HWID_HOLO ;; this interrupt will set the color to: #0000FF [C:B] also know as red - MOV A, HOLO_DISPLAY_DEC ;; MOV the constant HOLO_DISPLAY_DEC into register A - MOV B, [DISPLAYED_DECIMAL] ;; MOV the value that DISPLAYED_DECIMAL is pointing at into register B - HWI HWID_HOLO ;; ... - BRK ;; halt execution until next tick -``` \ No newline at end of file +Note that the Hologram Projector will clear itself at the end of the tick, it is only necessary to use CLEAR when you want to cancel a DISPLAY command executed within the same tick. \ No newline at end of file