organizing examples

Arthur Paulino 2018-01-01 12:43:07 -03:00
parent 62a5c63cd7
commit 21e9eafc90

@ -106,7 +106,7 @@ Insert this code before the new code you write for MuchAssemblyRequired, and use
</summary>
```assembly
; Hardware IDs
;******************** Hardware IDs
HWID_LEGS equ 0x1
HWID_LASER equ 0x2
HWID_LIDAR equ 0x3
@ -119,158 +119,74 @@ HWID_HOLO equ 0x9
HWID_BATTERY equ 0xA
HWID_FLOPPY equ 0xB
; Drill
; Version 1.0B
DRILL_POLL equ 1 ; Cost: 0kJ
; Get the status of the drill
DRILL_GATHER_SLOW equ 2 ; Cost: 1400kJ
; Gather the resource located under the Cubot (4 tick)*
; Not implemented yet, see:
; https://github.com/simon987/Much-Assembly-Required/issues/10
DRILL_GATHER_FAST equ 3 ; Cost: 2000kJ
; Gather the resource located under the Cubot (1 tick)
;******************** Actions IDs
; Drill
DRILL_POLL equ 1
DRILL_GATHER_SLOW equ 2
DRILL_GATHER_FAST equ 3
; drill status
DRILL_STATUS_OK equ 0
DRILL_STATUS_FAIL equ 1
DRILL_STATUS_BUSY equ 1
; Additional info
; The drill status is either STATUS_OK (0x0000) or STATUS_BUSY = (0x0001).
; When trying to activate the mining drill while it is busy, it will fail silently
; Inventory
; Version 1.0B
INV_POLL equ 1 ; Cost: 0kJ
; Get the contents of the inventory (B = Item ID, 0x0000 if empty)
INV_CLEAR equ 2 ; Cost: 100kJ
; Safely destroy the contents of the inventory
; Inventory
INV_POLL equ 1
INV_CLEAR equ 2
INV_EMPTY equ 0
; Laser
; Version 1.0B
LASER_WITHDRAW equ 1 ; Cost: 30kJ
; Withdraw the desired item
LASER_DEPOSIT equ 2 ; Cost: 30kJ
; Withdraw the desired item
; Laser
LASER_WITHDRAW equ 1
LASER_DEPOSIT equ 2
; items that can be used with the Laser
ITEM_BIOMASS equ 0x1
; Additional Info
; Specify the desired item by setting the value of the B register with an item ID.
; Legs
; Version 1.0B
LEGS_SET_DIRECTION equ 1 ; Cost: 20kJ
; Set the direction
LEGS_SET_DIRECTION_AND_WALK equ 2 ; Cost: 100kJ
; Set the direction and walk forward
; Legs
LEGS_SET_DIRECTION equ 1
LEGS_SET_DIRECTION_AND_WALK equ 2
LEGS_DIR_NORTH equ 0
LEGS_DIR_EAST equ 1
LEGS_DIR_SOUTH equ 2
LEGS_DIR_WEST equ 3
; Additional Info
; Specify the direction in the B register
; LiDAR
; Version 1.0B
LIDAR_GET_POS equ 1 ; Cost: 0kJ
; Copy the current (x,y) coordinates in the World in the X and Y registers
LIDAR_GET_PATH equ 2 ; Cost: 50kJ
; Calculate the shortest path to the specified coordinates and copy it to memory
LIDAR_GET_MAP equ 3 ; Cost: 10kJ
; Generate the current World's map and copy it to memory
LIDAR_GET_WORLD_POS equ 4 ; Cost: 0kJ
; Copy the current (x,y) coordinates in the Universe in the X and Y registers
; Additional Info
; Theres a lot, see it at:
; https://github.com/simon987/Much-Assembly-Required/wiki/Hardware:-LiDAR
; Keyboard
; Version NA
KEYBOARD_CLEAR equ 0 ; Cost: 0kJ
; Clear the keypress buffer
KEYBOARD_FETCH_KEY equ 1 ; Cost: 0kJ
; Reads the oldest keycode from the buffer into the B register and remove it
; LiDAR
LIDAR_GET_POS equ 1
LIDAR_GET_PATH equ 2
LIDAR_GET_MAP equ 3
LIDAR_GET_WORLD_POS equ 4
; Keyboard
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
KEY_A equ 0x41
KEY_D equ 0x44
KEY_E equ 0x45
KEY_F equ 0x46
KEY_S equ 0x53
KEY_W equ 0x57
; Additional Info
; The keycodes in game are in hexidecimal but in the url below they're in decimal
; Keycodes: keycode.info
; Hologram Projector
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
BATTERY_POLL equ 1
BATTERY_GET_MAX_CAPACITY equ 2
; Hologram Projector
; Version 1.1B
HOLO_CLEAR equ 0 ; Cost: 0kJ
HOLO_DISPLAY_HEX equ 1 ; Cost: 0kJ, Displays value of B register
HOLO_DISPLAY_STRING equ 2 ; Cost: 0kJ, Displays 0-terminated unicode from X register
; Random Number Generator
RNG_POLL equ 0
; Additional Info
; Setting Register A to anything other than 0 will cause that value to be displayed
; 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.
; Clock
CLOCK_POLL equ 0
; Battery
; Version 1.0B
BATTERY_POLL equ 1 ; Cost: 0kJ
; Copy the current charge of the battery in kJ in the B register
BATTERY_GET_MAX_CAPACITY equ 2 ; Cost: 0kJ
; Copy the maximum capacity of the battery in the B register
; Additional Info
; Maximum Capacity: 60,000 kJ
; As of v1.2a, the only way to refill the battery is to use the temporary
; REFILL = 0xFFFF value in the A register (See #2)
; Random Number Generator
; Version 1.0B
RNG_POLL equ 0 ; Cost: 1kJ
; Copy a randomly generated word into the B register
; Set to 0 just as a placeholder, can be any number
; Additional Info
; Random number bounds: 0x0000 - 0xFFFF
; Clock
; Version 1.0B
CLOCK_POLL equ 0 ; Cost: 0kJ
; Get the current time in ticks since the beginning of the universe as
; a 32-bit number stored in B:C (least significant bits in C)
; Set to 0 just as a placeholder, can be any number
; Floppy Drive
; Version 1.0B
FLOPPY_POLL equ 1 ; Cost: 0kJ
; Get the status of the drive (READY = 0, NO_MEDIA=1)
FLOPPY_READ_SECTOR equ 2 ; Cost: 1kJ
; Reads sector X to CPU ram starting at address Y
FLOPPY_WRITE_SECTOR equ 3 ; Cost: 1kJ
; Writes sector X from CPU ram starting at Y
; Additional Info
; The players can upload their own binary data to a floppy disk or
; download to a file using the floppy buttons in the editor.
; Floppies contains 80 tracks with 18 sectors per track. That's
; 1440 sectors of 512 words. (total 1,474,560 bytes / 737,280 words / 1.44MB)
; Read and write operations are synchronous. Track seeking time is 2ms.*
; *Seek time is added to the total execution time, which is not yet calculated as of v1.3a
; Floppy Dist
FLOPPY_POLL equ 1
FLOPPY_READ_SECTOR equ 2
FLOPPY_WRITE_SECTOR equ 3
```
</details>