mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-21 19:46:42 +00:00
Created Snippet: Constants (markdown)
parent
0be452b2d7
commit
c2e99ba64a
113
Snippet:-Constants.md
Normal file
113
Snippet:-Constants.md
Normal file
@ -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
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user