From c2e99ba64a0278ce2420ffc9a34b9c43b37fde20 Mon Sep 17 00:00:00 2001 From: Arthur Paulino Date: Wed, 3 Jan 2018 15:42:08 -0300 Subject: [PATCH] Created Snippet: Constants (markdown) --- Snippet:-Constants.md | 113 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 Snippet:-Constants.md diff --git a/Snippet:-Constants.md b/Snippet:-Constants.md new file mode 100644 index 0000000..e9b21df --- /dev/null +++ b/Snippet:-Constants.md @@ -0,0 +1,113 @@ +Insert this code before the new code you write for MuchAssemblyRequired, and use a text editor like VSCode, Notepad++, Sublime, etc. for auto-complete. + +```assembly +;*************************** Hardware IDs +HWID_LEGS equ 0x1 +HWID_LASER equ 0x2 +HWID_LIDAR equ 0x3 +HWID_KEYBOARD equ 0x4 +HWID_DRILL equ 0x5 +HWID_INV equ 0x6 +HWID_RNG equ 0x7 +HWID_CLOCK equ 0x8 +HWID_HOLO equ 0x9 +HWID_BATTERY equ 0xA +HWID_FLOPPY equ 0xB + +;*************************** Drill actions IDs +DRILL_POLL equ 1 +DRILL_GATHER_SLOW equ 2 +DRILL_GATHER_FAST equ 3 +; Drill status +DRILL_STATUS_OK equ 0 +DRILL_STATUS_BUSY equ 1 + +;*************************** Inventory actions IDs +INV_POLL equ 1 +INV_CLEAR equ 2 +INV_EMPTY equ 0 + +;*************************** Laser actions IDs +LASER_WITHDRAW equ 1 +LASER_DEPOSIT equ 2 +; Items that can be used with the Laser +ITEM_BIOMASS equ 0x1 + +;*************************** Legs actions IDs +LEGS_SET_DIRECTION equ 1 +LEGS_SET_DIRECTION_AND_WALK equ 2 +; Legs directions +LEGS_DIR_NORTH equ 0 +LEGS_DIR_EAST equ 1 +LEGS_DIR_SOUTH equ 2 +LEGS_DIR_WEST equ 3 + +;*************************** LiDAR actions IDs +LIDAR_GET_POS equ 1 +LIDAR_GET_PATH equ 2 +LIDAR_GET_MAP equ 3 +LIDAR_GET_WORLD_POS equ 4 + +;*************************** Keyboard actions IDs +KEYBOARD_CLEAR equ 0 +KEYBOARD_FETCH_KEY equ 1 +; Keys to use with Keyboard Hardware +KEY_A equ 0x41 +KEY_D equ 0x44 +KEY_E equ 0x45 +KEY_F equ 0x46 +KEY_S equ 0x53 +KEY_W equ 0x57 + +;*************************** Hologram Projector actions IDs +HOLO_CLEAR equ 0 +HOLO_DISPLAY_HEX equ 1 +HOLO_DISPLAY_STRING equ 2 +HOLO_DISPLAY_DEC equ 3 +HOLO_DISPLAY_COLOR equ 4 + +;*************************** Battery actions IDs +BATTERY_POLL equ 1 +BATTERY_GET_MAX_CAPACITY equ 2 + +;*************************** Random Number Generator actions IDs +RNG_POLL equ 0 + +;*************************** Clock actions IDs +CLOCK_POLL equ 0 + +;*************************** Floppy Disk actions IDs +FLOPPY_POLL equ 1 +FLOPPY_READ_SECTOR equ 2 +FLOPPY_WRITE_SECTOR equ 3 +``` + +#### Example +```assembly +; **PASTE CONSTANTS DEFINITIONS HERE** +.text + CALL print_battery + +;************************************** +;* print_battery() +;* display / print remaing battery charge +;* does not require arguments from stack or register prior to calling +;* does not overwrite or alter stack or registers +print_battery: + PUSH A ; store A + PUSH B ; store B + + MOV A, BATTERY_POLL ; indicates we want to poll the battery charge when + ; interrupt sent to battery + + HWI HWID_BATTERY ; battery remaining charge (kilo Joules) + ; is stored in B register now + + MOV A, HOLO_DISPLAY_HEX ; HOLO_DISPLAY_HEX == BATTERY_POLL == 1 + ; makes this redundant, but you get the idea. + HWI HWID_HOLO ; value in B register is displayed on your bot + + POP B + POP A + RET +``` \ No newline at end of file