From af2cae99a9a854e475bd6b11fe26d988d04de8eb Mon Sep 17 00:00:00 2001 From: Paul Robson Date: Thu, 25 Apr 2024 17:27:08 +0100 Subject: [PATCH 1/2] API in Markdown, prelim version --- documents/release/source/api.gen.md | 622 +++++++++++++++ documents/release/source/api.out | 7 - documents/release/source/api.synctex.gz | Bin 196414 -> 0 bytes documents/release/source/api.tex.in | 705 ------------------ documents/release/source/api.toc | 13 - .../release/source/img/neo6502-rocket.png | Bin 170239 -> 0 bytes .../release/source/img/neo6502-text-logo.png | Bin 3311 -> 0 bytes .../common/config/display/group2_console.inc | 38 +- .../common/config/display/group5_graphics.inc | 77 +- .../common/config/display/group6_sprites.inc | 27 +- .../common/config/display/group9_turtle.inc | 8 +- .../config/mathematics/group4_binary.inc | 4 +- .../config/mathematics/group4_other.inc | 4 +- .../config/miscellany/group11_mouse.inc | 14 +- .../config/miscellany/group7_controller.inc | 15 +- .../common/config/miscellany/group8_sound.inc | 19 +- .../common/config/system/group10_uext.inc | 50 +- .../common/config/system/group12_blitter.inc | 4 +- .../common/config/system/group1_system.inc | 19 +- .../common/config/system/group3_fileio.inc | 239 +++--- firmware/common/scripts/makedispatch.py | 47 +- release/Makefile | 8 +- 22 files changed, 864 insertions(+), 1056 deletions(-) create mode 100644 documents/release/source/api.gen.md delete mode 100644 documents/release/source/api.out delete mode 100644 documents/release/source/api.synctex.gz delete mode 100644 documents/release/source/api.tex.in delete mode 100644 documents/release/source/api.toc delete mode 100644 documents/release/source/img/neo6502-rocket.png delete mode 100644 documents/release/source/img/neo6502-text-logo.png diff --git a/documents/release/source/api.gen.md b/documents/release/source/api.gen.md new file mode 100644 index 000000000..9068785d4 --- /dev/null +++ b/documents/release/source/api.gen.md @@ -0,0 +1,622 @@ +--- + +fontfamilyoptions: sfdefault + +fontsize: 12pt + +--- + + + +# Group 1 : System + +## Function 0 : DSP Reset + +Resets the messaging system and component systems. Normally, should not be used. + +## Function 1 : Timer + +Deposit the value (32-bits) of the 100Hz system timer into Parameters:0..3. + +## Function 2 : Key Status + +Deposits the state of the specified keyboard key into Parameter:0. State of keyboard modifiers (Shift/Ctrl/Alt/Meta) is returned in Parameter:1. The key which to query is specified in Parameter:0. + +## Function 3 : Basic + +Loads and allows the execution of BASIC via a indirect jump through address zero. + +## Function 4 : Credits + +Print the Neo6502 project contributors (stored in flash memory). + +## Function 5 : Serial Status + +Check the serial port to see if there is a data transmission. + +## Function 6 : Locale + +Set the locale code specified in Parameters:0,1 as upper-case ASCII letters. Parameter:0 takes the first letter and Parameter:1 takes the second letter. For example: French (FR) would require Parametr 0 being $46 and Parameter 1 being $52 + +## Function 7 : System Reset + +System Reset. This is a full hardware reset. It resets the RP2040 using the Watchdog timer, and this also resets the 65C02. + +## Function 8 : MOS + +Do a MOS command (a '* command') these are specified in the Wiki as they will be steadily expanded. + +## Function 9 : Sweet 16 Virtual Machine + +Execute Sweet 16 VM Code with the register set provided. The error return value is actually a re-entrant call for Windows emulation ; if it returns non-zero it means the VM has been executed, if it returns zero then the emulation can update as at the end of a normal frame. + +\newpage + +# Group 2 : Console + +## Function 0 : Write Character + +Console out (duplicate of Function 6 for backward compatibility). + +## Function 1 : Read Character + +Read and remove a key press from the keyboard queue into Parameter:0. This is the ASCII value of the keystroke. If there are no key presses in the queue, Parameter:0 will be zero. Note that this Function is best for text input, but not for games. Function 7,1 is more optimal for games, as this only detects key presses, you cannot check whether the key is currently down or not. + +## Function 2 : Console Status + +Check to see if the keyboard queue is empty. If it is, Parameter:0 will be $FF, otherwise it will be $00 + +## Function 3 : Read Line + +Input the current line below the cursor into Parameters:0,1 as a length-prefixed string; and move the cursor to the line below. Handles multiple-line input. + +## Function 4 : Define Hotkey + +Define the function key F1..F10 specified in Parameter:0 as 1..10 to emit the length-prefixed string stored at the memory location specified in Parameters:2,3. F11 and F12 cannot currently be defined. + +## Function 5 : Define Character + +Define a font character specified in Parameter:0 within the range of 192..255. Fill bits 0..5 (columns) of Parameters:1..7 (rows) with the character bitmap. + +## Function 6 : Write Character + +Write the character specified in Parameter:0 to the console at the cursor position. Refer to Section "Console Codes" for details. + +## Function 7 : Set Cursor Pos + +Move the cursor to the screen character cell Parameter:0 (X), Parameter:1 (Y). + +## Function 8 : List Hotkeys + +Display the current function key definitions. + +## Function 9 : Screen Size + +Returns the console size in characters, in Parameter:0 (height) and Parameter:1 (width). + +## Function 10 : Insert Line + +This is a support function which inserts a blank line in the console and should not be used. + +## Function 11 : Delete Line + +This is a support function which deletes a line in the console and should not be used. + +## Function 12 : Clear Screen + +Clears the screen. + +## Function 13 : Cursor Position + +Returns the current screen character cell of the cursor in Parameter:0 (X), Parameter:1 (Y). + +## Function 14 : Clear Region + +Erase all characters within the rectangular region specified in Parameters:0,1 (begin X,Y) and Parameters:2,3 (end X,Y). + +## Function 15 : Set Text Color + +Sets the foreground colour to Parameter:0 and the background colour to Parameter:1. + +## Function 16 : Cursor Inverse + +Toggles the cursor colour between normal and inverse (ie: swaps FG and BG colors). This should not be used. + +## Function 17 : Tab() implementation + +Internal helper. + +\newpage + +# Group 3 : File I/O + +## Function 1 : List Directory + +Display the file listing of the present directory. + +## Function 2 : Load File + +Load a file by name into memory. On input: Parameters:0,1 points to the length-prefixed filename string; Parameters:2,3 contains the location to write the data to. If the address is $FFFF, the file will instead be loaded into the graphics working memory, used for sprites, tiles, images. On output: Parameter:0 contains an error/status code. + +## Function 3 : Store File + +Saves data in memory to a file. On input: Parameters:0,1 points to the length-prefixed filename string; Parameters:2,3 contains the location to read data from; Parameters:4,5 specified the number of bytes to store. On output: Parameter:0 contains an error/status code. + +## Function 4 : File Open + +Opens a file into a specific channel. On input: Parameter:0 contains the file channel to open; Parameters:1,2 points to the length-prefixed filename string; Parameter:3 contains the open mode. See below. Valid open modes are: 0 opens the file for read-only access; 1 opens the file for write-only access; 2 opens the file for read-write access; 3 creates the file if it doesn't already exist, truncates it if it does, and opens the file for read-write access. Modes 0 to 2 will fail if the file does not already exist. If the channel is already open, the call fails. Opening the same file more than once on different channels has undefined behaviour, and is not recommended. + +## Function 5 : File Close + +Closes a particular channel. On input: Parameter:0 contains the file channel to close. + +## Function 6 : File Seek + +Seeks the file opened on a particular channel to a location. On input: Parameter:0 contains the file channel to operate on; Parameters:1..4 contains the file location. You can seek beyond the end of a file to extend the file. However, whether the file size changes when the seek happens, or when you perform the write is undefined behavior. + +## Function 7 : File Tell + +Returns the current seek location for the file opened on a particular channel. On input: Parameter:0 contains the file channel to operate on. On output: Parameters:1..4 contains the seek location within the file. + +## Function 8 : File Read + +Reads data from an opened file. On input: Parameter:0 contains the file channel to operate on. Parameters:1,2 points to the destination in memory, or $FFFF to read into graphics memory. Parameters:2,3 contains the amount of data to read. On output: Parameters:3,4 is updated to contain the amount of data actually read. Data is read from the current seek position, which is advanced after the read. + +## Function 9 : File Write + +Writes data to an opened file. On input: Parameter:0 contains the file channel to operate on; Parameters:1,2 points to the data in memory; Parameters:3,4 contains the amount of data to write. On output: Parameters:3,4 is updated to contain the amount of data actually written. Data is written to the current seek position, which is advanced after the write. + +## Function 10 : File Size + +Returns the current size of an opened file. On input: Parameter:0 contains the file channel to operate on. On output: Parameters:1..4 contains the size of the file. This call should be used on open files, and takes into account any buffered data which has not yet been written to disk. Consequently, this may return a different size than Function 3,16 "File Stat". + +## Function 11 : File Set Size + +Extends or truncates an opened file to a particular size. On input: Parameter:0 contains the file channel to operate on; Parameters:1..4 contains the new size of the file. + +## Function 12 : File Rename + +Renames a file. On input: Parameters:0,1 points to the length-prefixed string for the old name; Parameters:2,3 points to the length-prefixed string for the new name. Files may be renamed across directories. + +## Function 13 : File Delete + +Deletes a file or directory. On input: Parameters:0,1 points to the length-prefixed filename string. Deleting a file which is open has undefined behaviour. Directories may only be deleted if they are empty. + +## Function 14 : Create Directory + +Creates a new directory. On input: Parameters:0,1 points to the length-prefixed filename string. + +## Function 15 : Change Directory + +Changes the current working directory. On input: Parameters:0,1 points to the length-prefixed path string. + +## Function 16 : File Stat + +Retrieves information about a file by name. On input: Parameters:0,1 points to the length-prefixed filename string. Parameters:0..3 contains the length of the file; Parameter:4 contains the attributes bit-field of the file. If the file is open for writing, this may not return the correct size due to buffered data not having been flushed to disk. File attributes are a bitfield as follows: 0,0,0,Hidden, Read Only, Archive, System, Directory. + +## Function 17 : Open Directory + +Opens a directory for enumeration. On input: Parameters:0,1 points to the length-prefixed filename string. Only one directory at a time may be opened. If a directory is already open when this call is made, it is automatically closed. However, an open directory may make it impossible to delete the directory; so closing the directory after use is good practice. + +## Function 18 : Read Directory + +Reads an item from the currently open directory. On input: Parameters:0,1 points to a length-prefixed buffer for returning the filename. Parameters:0,1 is unchanged, but the buffer is updated to contain the length-prefixed filename (without any leading path); Parameters:2..5 contains the length of the file; Parameter:6 contains the file attributes, as described by Function 3,16 "File Stat". If there are no more items to read, this call fails and an error is flagged. + +## Function 19 : Close Directory + +Closes any directory opened previously by Function 3,17 "Open Directory". + +## Function 20 : Copy File + +Copies a file. On input: Parameters:0,1 points to the length-prefixed old filename; Parameters:2,3 points to the length-prefixed new filename. Only single files may be copied, not directories. + +## Function 21 : Set file attributes + +Sets the attributes for a file. On input: Parameters:0,1 points to the length-prefixed filename; Parameter:2 is the attribute bitfield. (See Stat File for details.) The directory bit cannot be changed. Obviously. + +## Function 32 : List Filtered + +Prints a filtered file listing of the current directory to the console. On input: Parameters:0,1 points to the filename search string. Files will only be shown if the name contains the search string (ie: a substring match). + +\newpage + +# Group 4 : Mathematics + +## Function 0 : Addition + +Register1 := Register 1 + Register2 + +## Function 1 : Subtraction + +Register1 := Register 1 - Register2 + +## Function 2 : Multiplication + +Register1 := Register 1 * Register2 + +## Function 3 : Decimal Division + +Register1 := Register 1 / Register2 (floating point) + +## Function 4 : Integer Division + +Register1 := Register 1 / Register2 (integer result) + +## Function 5 : Integer Modulus + +Register1 := Register 1 mod Register2 + +## Function 6 : Compare + +Parameter:0 := Register 1 compare Register2 : returns $FF, 0, 1 for less equal and greater. Note: float comparison is approximate because of rounding. + +## Function 16 : Negate + +Register1 := -Register 1 + +## Function 17 : Floor + +Register1 := floor(Register 1) + +## Function 18 : Square Root + +Register1 := square root(Register 1) + +## Function 19 : Sine + +Register1 := sine(Register 1) angles in degrees/radians + +## Function 20 : Cosine + +Register1 := cosine(Register 1) angles in degrees/radians + +## Function 21 : Tangent + +Register1 := tangent(Register 1) angles in degrees/radians + +## Function 22 : Arctangent + +Register1 := arctangent(Register 1) angles in degrees/radians + +## Function 23 : Exponent + +Register1 := e to the power of Register 1 + +## Function 24 : Logarithm + +Register1 := log(Register 1) natural logarithm + +## Function 25 : Absolute Value + +Register1 := absolute value(Register 1) + +## Function 26 : Sign + +Register1 := sign(Register 1), returns -1 0 or 1 + +## Function 27 : Random Decimal + +Register1 := random float from 0-1 + +## Function 28 : Random Integer + +Register1 := random integer from 0 to (Register 1-1) + +## Function 32 : Number to Decimal + +Helper function for tokeniser, do not use. + +## Function 33 : String to Number + +Convert the length prefixed string at Parameters:4,5 to a constant in Register1. + +## Function 34 : Number to String + +Convert the constant in Register1 to a length prefixed string which is stored at Parameters:4,5 + +## Function 35 : Set Degree/Radian Mode + +Sets the use of degrees (the default) when non zero, radians when zero. + +\newpage + +# Group 5 : Graphics + +## Function 1 : Set Defaults + +Configure the global graphics system settings. Not all parameters are relevant for all graphics commands; but all parameters will be set by this command. So mind their values. Refer to Section "Graphics Settings" for details. The parameters are And, Or, Fill Flag, Extent, and Flip. Bit 0 of flip sets the horizontal flip, Bit 1 sets the vertical flip. + +## Function 2 : Draw Line + +Draw a line between the screen coordinates specified in Parameters:0,1,Parameters:2,3 (begin X,Y) and Parameters:4,5,Parameters:6,7 (end X,Y). + +## Function 3 : Draw Rectangle + +Draw a rectangle spanning the screen coordinates specified in Parameters:0,1,Parameters:2,3 (corner X,Y) and Parameters:4,5,Parameters:6,7 (opposite corner X,Y). + +## Function 4 : Draw Ellipse + +Draw an ellipse spanning the screen coordinates specified in Parameters:0,1,Parameters:2,3 (corner X,Y) and Parameters:4,5,Parameters:6,7 (opposite corner X,Y). + +## Function 5 : Draw Pixel + +Draw a single pixel at the screen coordinates specified in Parameters:0,1,Parameters:2,3 (X,Y). + +## Function 6 : Draw Text + +Draw the length-prefixed string of text stored at the memory location specified in Parameters:4,5 at the screen character cell specified in Parameters:0,1,Parameters:2,3 (X,Y). + +## Function 7 : Draw Image + +Draw the image with image ID in Parameter:4 at the screen coordinates Parameters:0,1,Parameters:2,3 (X,Y). The extent and flip settings influence this command. + +## Function 8 : Draw Tilemap + +Draw the current tilemap at the screen coordinates specified in Parameters:0,1,Parameters:2,3 (top-left X,Y) and Parameters:4,5,Parameters:6,7 (bottom-right X,Y) using current graphics settings. + +## Function 32 : Set Palette + +Set the palette colour at the index spcified in Parameter:0 to the values in Parameter:1,Parameter:2,Parameter:3 (RGB). + +## Function 33 : Read Pixel + +Read a single pixel at the screen coordinates specified in Parameters:0,1,Parameters:2,3 (X,Y). When the routine completes, the result will be in Parameter:0. If sprites are in use, this will be the background only (0..15), if sprites are not in use it may return (0..255) + +## Function 34 : Reset Palette + +Reset the palette to the defaults. + +## Function 35 : Set Tilemap + +Set the current tilemap. Parameters:0,1 is the memory address of the tilemap, and Parameters:2,3,Parameters:4,5 (X,Y) specifies the offset into the tilemap, in units of pixels, of the top-left pixel of the tile. + +## Function 36 : Read Sprite Pixel + +Read Pixel from the sprite layer at the screen coordinates specified in Parameters:0,1,Parameters:2,3 (X,Y). When the routine completes, the result will be in Parameter:0. Refer to Section "Pixel Colors" for details. + +## Function 37 : Frame Count + +Deposit into Parameters:0..3, the number of v-blanks (full screen redraws) which have occurred since power-on. This is updated at the start of each v-blank period. + +## Function 38 : Get Palette + +Get the palette colour at the index spcified in Parameter:0. Values are returned in Parameter:1,Parameter:2,Parameter:3 (RGB). + +## Function 39 : Write Pixel + +Write Pixel index Parameter:4 to the screen coordinate specified in Parameters:0,1,Parameters:2,3 (X,Y). + +## Function 64 : Set Color + +Set Color Sets the current drawing colour to Parameter:0 + +## Function 65 : Set Solid Flag + +Set Solid Flag Sets the solid flag to Parameter:0, which indicates either solid fill (for shapes) or solid background (for images and fonts) + +## Function 66 : Set Draw Size + +Set Draw Size Sets the drawing scale for images and fonts to Parameter:0 + +## Function 67 : Set Flip Bits + +Set Flip Bits Sets the flip bits for drawing images. Bit 0 set causes a horizontal flip, bit 1 set causes a vertical flip. + +\newpage + +# Group 6 : Sprites + +## Function 1 : Sprite Reset + +Reset the sprite system. + +## Function 2 : Sprite Set + +Set or update the sprite specified in Parameter:0. The parameters are : Sprite Number, X Low, X High, Y Low, Y High, Image, Flip and Anchor and Flags Bit 0 of flags specifies 32 bit sprites. Values that are $80 or $8080 are not updated. + +## Function 3 : Sprite Hide + +Hide the sprite specified in Parameter:0. + +## Function 4 : Sprite Collision + +Parameter:0 is non-zero if the distance is less than or equal to Parameter:2 between the center of the sprite with index specified in Parameter:0 and the center of the sprite with index specified in Parameter:1 . + +## Function 5 : Sprite Position + +Deposit into Parameters:1..4, the screen coordinates of the sprite with the index specified in Parameter:0. + +\newpage + +# Group 7 : Controller + +## Function 1 : Read Default Controller + +This reads the status of the base controller into Parameter:0, and is a compatibility API call. \newline The base controller is the keyboard keys (these are WASD+OPKL or Arrow Keys+ZXCV) or the gamepad controller buttons. Either works. The 8 bits of the returned byte are the following buttons, most significant first : Y X B A Down Up Right Left + +## Function 2 : Read Controller Count + +This returns the number of game controllers plugged in to the USB System into Parameter:0. This does not include the keyboard based controller, only physical controller hardware. + +## Function 3 : Read Controller + +This returns a specific controller status. Controller 0 is the keyboard controller, Controllers 1 upwards are those physical USB devices. This returns a 32 bit value in Parameters:0..3 which currently is compatible with function 1, but allows for expansion. The 8 bits of the returned byte are the following buttons, most significant first : Y X B A Down Up Right Left + +\newpage + +# Group 8 : Sound + +## Function 1 : Reset Sound + +Reset the sound system. This empties all channel queues and silences all channels immediately. + +## Function 2 : Reset Channel + +Reset the sound channel specified in Parameter:0. + +## Function 3 : Beep + +Play the startup beep immediately. + +## Function 4 : Queue Sound + +Queue a sound. Refer to Section \#\ref{sound} "Sound" for details. The parameters are : Channel, Frequency Low, Frequency High, Duration Low, Duration High, Slide Low, Slide High and Source. + +## Function 5 : Play Sound + +Play the sound effect specified in Parameter:1 on the channel specified in Parameter:0 immediately, clearing the channel queue. + +## Function 6 : Sound Status + +Deposit in Parameter:0 the number of notes outstanding before silence in the queue of the channel specified in Parameter:0, including the current playing sound, if any. + +\newpage + +# Group 9 : Turtle Graphics + +## Function 1 : Turtle Initialise + +Initialise the turtle graphics system. Parameter:0 is the sprite number to use for the turtle, as the turtle graphics system “adopts” one of the sprites. The icon is not currently re-definable, and initially the turtle is hidden. + +## Function 2 : Turtle Turn + +Turn the turtle right by Parameter:0,1 degrees. Show if hidden. To turn left, turn by a negative amount. + +## Function 3 : Turtle Move + +Move the turtle forward by Parameter:0,1 degrees, drawing in colour Parameter:2, pen down flag in Parameter:3. Show if hidden. + +## Function 4 : Turtle Hide + +Hide the turtle. + +## Function 5 : Turtle Home + +Move the turtle to the home position (in the center, pointing upward). + +\newpage + +# Group 10 : UExt I/O + +## Function 1 : UExt Initialise + +Initialise the UExt I/O system. This resets the IO system to its default state, where all UEXT pins are I/O pins, inputs and enabled. + +## Function 2 : Write GPIO + +This copies the value Parameter:1 to the output latch for UEXT pin Parameter:0. This will only display on the output pin if it is enabled, and its direction is set to "Output" direction. + +## Function 3 : Read GPIO + +If the pin is set to "Input" direction, reads the level on pin on UEXT port Parameter:0. If it is set to "Output" direction, reads the output latch for pin on UEXT port Parameter:0. If the read is successful, the result will be in Parameter:0. + +## Function 4 : Set Port Direction + +Set the port direction for UEXT Port Parameter:0 to the value in Parameter:1. This can be $01 (Input), $02 (Output), or $03 (Analogue Input). + +## Function 5 : Write I2C + +Write to I2C Device Parameter:0, Register Parameter:1, value Parameter:2. No error is flagged if the device is not present. + +## Function 6 : Read I2C + +Read from I2C Device Parameter:0, Register Parameter:1. If the read is successful, the result will be in Parameter:0. If the device is not present, this will flag an error. Use FUNCTION 10,2 first, to check for its presence. + +## Function 7 : Read Analog + +Read the analogue value on UEXT Pin Parameter:0. This has to be set to analogue type to work. Returns a value from 0..4095 stored in Parameters:0,1, which represents an input value of 0 to 3.3 volts. + +## Function 8 : I2C Status + +Try to read from I2C Device Parameter:0. If present, then Parameter:0 will contain a non-zero value. + +## Function 9 : Read I2C Block + +Try to read a block of memory from I2C Device Parameter:0 into memory at Parameters:1,2, length Parameters:3,4. + +## Function 10 : Write I2C Block + +Try to write a block of memory to I2C Device Parameter:0 from memory at Parameters:1,2, length Parameters:3,4. + +## Function 11 : Read SPI Block + +Try to read a block of memory from SPI Device into memory at Parameters:1,2, length Parameters:3,4. + +## Function 12 : Write SPI Block + +Try to write a block of memory to SPI Device from memory at Parameters:1,2, length Parameters:3,4. + +## Function 13 : Read UART Block + +Try to read a block of memory from UART into memory at Parameters:1,2, length Parameters:3,4. This can fail with a timeout. + +## Function 14 : Write UART Block + +Try to write a block of memory to UART from memory at Parameters:1,2, length Parameters:3,4. + +## Function 15 : Set UART Speed and Protocol + +Set the Baud Rate and Serial Protocol for the UART interface. The baud rate is in Parameters:0..3 and the protocol number is Parameter:4. Currently only 8N1 is supported, this is protocol 0. + +## Function 16 : Write byte to UART + +Write byte Parameter:0 to the UART + +## Function 17 : Read byte from UART + +Read a byte from the UART. It is returned in Parameter:0 + +## Function 18 : Check if Byte Available + +See if a byte is available in the UART input buffer. If available Parameter:0 is non zero. + +\newpage + +# Group 11 : Mouse + +## Function 1 : Move display cursor + +Positions the display cursor at Parameters:0,1,Parameters:2,3 + +## Function 2 : Set mouse display cursor on/off + +Shows or hides the mouse cursor depending on the Parameter:0 + +## Function 3 : Get mouse state + +Returns the mouse position (screen pixel, unsigned) in x Parameters:0,1 and y Parameters:2,3, buttonstate in Parameter:4 (button 1 is 0x1, button 2 0x2 etc., set when pressed), scrollwheelstate in Parameter:5 as uint8 which changes according to scrolls. + +## Function 4 : Test mouse present + +Returns non zero if a mouse is plugged in in Parameter:0 + +## Function 5 : Select mouse Cursor + +Select a mouse cursor in Parameter:0 ; returns error status if the cursor is not available. + +\newpage + +# Group 12 : Blitter + +## Function 1 : Blitter Busy + +Returns a non zero value in Parameter:1 if the blitter/DMA system is currently transferring data, used to check availability and transfer completion. + +## Function 2 : Simple Blit Copy + +Copy Parameters:6,7 bytes of internal memory from Parameter:0:Parameters:1,2 to Parameter:3:Parameters:4,5. Sets error flag if the transfer is not possible (e.g. illegal write addresses). The upper 8 bits of the address are : 6502 RAM (00) VideoRAM (80,81) Graphics RAM(90) + +\newpage + +# Group 13 : Editor + +## Function 1 : Initialise Editor + +Initialises the editor + +## Function 2 : Reenter the Editor + +Re-enters the system editor. Returns the function required for call out, the editors sort of 'call backs' - see editor specification. + +\newpage + diff --git a/documents/release/source/api.out b/documents/release/source/api.out deleted file mode 100644 index 5ce39705d..000000000 --- a/documents/release/source/api.out +++ /dev/null @@ -1,7 +0,0 @@ -\BOOKMARK [1][-]{section.1}{\376\377\000N\000e\000o\0006\0005\0000\0002\000\040\000M\000e\000s\000s\000a\000g\000i\000n\000g\000\040\000A\000P\000I}{}% 1 -\BOOKMARK [1][-]{section.2}{\376\377\000A\000P\000I\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000s}{}% 2 -\BOOKMARK [1][-]{section.3}{\376\377\000C\000o\000n\000s\000o\000l\000e\000\040\000C\000o\000d\000e\000s}{}% 3 -\BOOKMARK [1][-]{section.4}{\376\377\000G\000r\000a\000p\000h\000i\000c\000s}{}% 4 -\BOOKMARK [1][-]{section.5}{\376\377\000T\000i\000l\000e\000\040\000M\000a\000p\000s}{}% 5 -\BOOKMARK [1][-]{section.6}{\376\377\000S\000p\000r\000i\000t\000e\000s}{}% 6 -\BOOKMARK [1][-]{section.7}{\376\377\000S\000o\000u\000n\000d}{}% 7 diff --git a/documents/release/source/api.synctex.gz b/documents/release/source/api.synctex.gz deleted file mode 100644 index 3eecb235d117f8ba25fe5e57c6541178e3d3df14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196414 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

A_|2BX59J7Dw14Dmx8PcHDU0`1z+O#FJ`m% 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 diff --git a/documents/release/source/api.tex.in b/documents/release/source/api.tex.in deleted file mode 100644 index eff03c192..000000000 --- a/documents/release/source/api.tex.in +++ /dev/null @@ -1,705 +0,0 @@ -%% meta-data %% - -\documentclass[12pt]{article} -\usepackage{caption} -\usepackage{fullpage} -\usepackage{graphicx} -\usepackage{hyperref} -\usepackage{longtable} -\usepackage{makecell} -\usepackage{multirow} -\usepackage{paralist} -\usepackage{tabularx} -\usepackage{wrapfig} - - -%% configuration %% - -\title{Neo6502 Assembly - Messaging API} -\author{Paul Robson \\ Bill Auger} -\date{@DATE@} - -\renewcommand{\familydefault}{\sfdefault} -\graphicspath{ {./img/} % WRT local editor (eg: texworks) - {./documents/release/source/img/} % WRT command line - {../documents/release/source/img/} } % WRT Makefile -\setcounter{tocdepth}{1} -\hypersetup{hidelinks , linktoc=all} - - -%% generic macros %% - -% \MonoSp presents the given argument as a smaller mono-spaced font -\newcommand{\MonoSp}[1] {\fontsize{10pt}{10pt}\selectfont\texttt{#1}\normalsize} - -% \HeaderCenter forces a header of a left-justified column to be centered -\newcommand{\HeaderCenter}[1] {\makecell[tc]{\textbf{#1}}} - -% \Param presents the given argument as a "Param" in bold, mono-spaced font -\newcommand{\Param}[1] {\textbf{\texttt{Params[#1]}}} - -% \ParamBits illustrates a bit-field -\newcommand{\ParamBits}[9] { - \fontsize{10pt}{10pt}\selectfont - \textbf{#1} - \newline - \begin{tabular}{ | c | c | c | c | c | c | c | c | } - \hline - bit-7 & bit-6 & bit-5 & bit-4 & bit-3 & bit-2 & bit-1 & bit-0 \\ \hline - #2 & #3 & #4 & #5 & #6 & #7 & #8 & #9 \\ \hline - \end{tabular} - \normalsize - \newline -} - - -%% special case macros %% - -% \AddressCol expects to occupy a multicolumn(x2) column -% used in the "API Messaging Addresses" table, along with \BitsCol -\newcommand{\AddressCol}[1] { \multicolumn{2}{c|}{\MonoSp{#1}} } - -% \BitsCol expects to occupy the second and third to last columns -% within a multirow(x8) row -% used in the "API Messaging Addresses" table, along with \AddressCol -\newcommand{\BitsCol}[9]{ - \multirow{8}{*}{\MonoSp{#1}} & \MonoSp{bit-7} & #2 \\ \cline{3-4} - & & \MonoSp{bit-6} & #3 \\ \cline{3-4} - & & \MonoSp{bit-5} & #4 \\ \cline{3-4} - & & \MonoSp{bit-4} & #5 \\ \cline{3-4} - & & \MonoSp{bit-3} & #6 \\ \cline{3-4} - & & \MonoSp{bit-2} & #7 \\ \cline{3-4} - & & \MonoSp{bit-1} & #8 \\ \cline{3-4} - & & \MonoSp{bit-0} & #9 \\ \cline{3-4} - \hline -} - -% \ApiFnRow could technically work anyplace, -% but is mainly relevant for the API Functions table -\newcommand{\ApiFnRow}[3] { - \makecell[tc]{#1 \\ #2} & - \makecell[tl]{\MonoSp{LDA \#\$0#1} \\ \MonoSp{STA \$FF01}} & - #3 \\ \hline -} - -% \ParamsBytes could technically work anyplace, -% but is specifically for illustrating the Parameters to an API Function -\newcommand{\ParamsBytes}[9] { - \fontsize{10pt}{10pt}\selectfont - \textbf{#1} - \newline - \begin{tabular}{ | c | c | c | c | c | c | c | c | } \hline - P0 & P1 & P2 & P3 & P4 & P5 & P6 & P7 \\ - \hline - \MonoSp{\$FF04} & \MonoSp{\$FF05} & \MonoSp{\$FF06} & \MonoSp{\$FF07} & - \MonoSp{\$FF08} & \MonoSp{\$FF09} & \MonoSp{\$FF0A} & \MonoSp{\$FF0B} \\ \hline - \MonoSp{#2} & \MonoSp{#3} & \MonoSp{#4} & \MonoSp{#5} & - \MonoSp{#6} & \MonoSp{#7} & \MonoSp{#8} & \MonoSp{#9} \\ \hline - \end{tabular} - \normalsize - \newline -} - -% \SpriteParamBits could technically work anyplace, -% but is specialized to illustrate the Sprite bit-field layout -\newcommand{\SpriteParamBits}[4] { - \fontsize{10pt}{10pt}\selectfont - \textbf{#1} - \newline - \begin{tabular}{ | c | c | c | c | c | c | c | c | } \hline - \MonoSp{bit-7} & \MonoSp{bit-6} & \MonoSp{bit-5} & \MonoSp{bit-4} & - \MonoSp{bit-3} & \MonoSp{bit-2} & \MonoSp{bit-1} & \MonoSp{bit-0} \\ \hline - \MonoSp{#2} & \MonoSp{#3} & \multicolumn{6}{c|}{\MonoSp{#4}} \\ \hline - \end{tabular} - \normalsize - \newline -} - - -%% document body %% - -\begin{document} - -\maketitle - -\begin{center} - \includegraphics[scale=2.0]{neo6502-text-logo.png} -\end{center} - -\tableofcontents - - -\pagebreak - - -\section{Neo6502 Messaging API}\label{api} - -The Neo6502 API is a messaging system. -There are no methods to access the hardware directly. -Messages are passed via the block of memory from \MonoSp{\$FF00} to \MonoSp{\$FF0F}, -as specified in the "API Messaging Addresses" table on the following page. -\newline - -The kernel include file \MonoSp{documents/release/neo6502.inc} -specifies the beginning of this address range as the identifier \MonoSp{ControlPort}, -along with the addresses of \MonoSp{WaitMessage} and \MonoSp{SendMessage} (described later), -various related kernel jump vectors, and some helper functions. -\newline - -The application include files \MonoSp{examples/assembly/neo6502.asm.inc} -and \MonoSp{examples/C/neo6502.h} -also specify the beginning of this address range as the identifier \MonoSp{ControlPort}. -The assembly include also specifies \MonoSp{ControlPort} and the other controls as -\MonoSp{API\_COMMAND}, \MonoSp{API\_FUNCTION}, \MonoSp{API\_ERROR}, -\MonoSp{API\_STATUS}, and \MonoSp{API\_PARAMETERS}. -The C header also specifies \MonoSp{ControlPort} and the other controls as -\MonoSp{API\_COMMAND\_ADDR}, \MonoSp{API\_FUNCTION\_ADDR}, -\MonoSp{API\_ERROR\_ADDR}, \MonoSp{API\_STATUS\_ADDR}, -and \MonoSp{API\_PARAMETERS\_ADDR}. -\newline - -API Commands/Functions are grouped by functionality. -For example, Group 1 are system-related, and Group 2 are console-I/O-related. -All Groups and their Commands/Functions are shown in the following table. -\newline - -Command/Function Parameters are notated in this document as \Param{0} through \Param{7}, -or as a list or range (eg: \Param{1,2}, \Param{0..7}). -Note that these are referring to a mapping to memory locations. -The numbers represent offsets from the Parameters base address \MonoSp{\$FF04}. -Ie: the actual bytes are not necessarily all distinct "parameters" in the conventional sense. -Depending on the routine, a logical parameter may be an individual byte, -one or more bits of a byte interpreted as a composite or bit-field, -or multiple adjacent bytes interpreted as 16 or 32 bit values. -For example, the list \Param{0,1} would indicate a single logical parameter, -comprised of the two adjacent bytes \MonoSp{\$FF04} and \MonoSp{\$FF05}. -The range \Param{4..7} would indicate a single logical parameter, -spanning consecutive bytes between \MonoSp{\$FF08} and \MonoSp{\$FF0B}. -\newline - -\textbf{Note that strings referenced by Parameters are not ASCIIZ, but are length-prefixed.} -The first byte represents the length of the string (not counting itself). The string begins at the second byte. -Consequently, strings must be 256 bytes or less (not counting the length header). -\newline - - -\pagebreak - - -\begin{table}[h] -\centering\textbf{API Messaging Addresses} \\ -\begin{tabularx}{1\textwidth}{|>{\centering\arraybackslash}m{0.150\textwidth}| - >{\centering\arraybackslash}m{0.075\textwidth}| - >{\centering\arraybackslash}m{0.075\textwidth}| - >{\arraybackslash}m{0.594\textwidth}|} - \hline - \textbf{Meta} & \multicolumn{2}{c|}{\textbf{Address}} & \HeaderCenter{Contents} \\ \hline - Group & \AddressCol{\MonoSp{\$FF00}} & - Group selector and status. - Writing a non-zero value to this location triggers the routine specified in \MonoSp{\$FF01}. - The system will respond by setting the 'Error', 'Information', and 'Parameters' - values appropriately. - Upon completion, this memory location will be will cleared. - \\ \hline - Function & \AddressCol{\$FF01} & - A command or function within the selected Group. - For example, Group 1 Function 0 writes a value to the console; - and Group 1 Function 1 reads the keyboard. - \\ \hline - Error & \AddressCol{\$FF02} & - Return any error values, 0 = no error. - \\ \hline - \multirow{8}{*}{Information} & - \BitsCol{\$FF03}{ % address - Set (\MonoSp{1}) if the ESCape key has been pressed. % desc of bit0 - This is not automatically reset. % desc of bit0 - }{\textit{unused}}{\textit{unused}}{\textit{unused}} % desc of bits1..3 - {\textit{unused}}{\textit{unused}}{\textit{unused}}{\textit{unused}} % desc of bits4..7 - Parameters & \AddressCol{\$FF04..B} & - This memory block is notated in this document as \Param{0} through \Param{7}, - or as a composite list or range (eg: \Param{1,2}, \Param{0..7}). - Some Functions require Parameters in these locations - and some return values in these locations; yet others do neither. - \\ \hline - Reserved & \AddressCol{\$FF0C..F} & - Reserved. - \\ \hline -\end{tabularx} -\end{table} - - -\pagebreak - - -\subsection{API Interfacing Protocol}\label{subsec:api-protocol} - -Neo6502 application programmers should interact with the API -per the following algorithm: - -\begin{enumerate} - \item Wait for any pending command to complete. - There is a subroutine \MonoSp{WaitMessage} which does this for the developer. - \item Setup the Function code at \MonoSp{\$FF01}; - and any Parameters across \MonoSp{\$FF04..\$FF0B}. - To print a character for example, set \MonoSp{\$FF01} to \MonoSp{\$06} - and set \MonoSp{\$FF04} to the character's ASCII value. - To draw a line, set \MonoSp{\$FF01} to \MonoSp{\$02} - and set \MonoSp{\$FF04..\$FF0B} as four 16-bit pixel coordinates: - - \ParamsBytes{Params}{srcX lo}{srcX hi}{srcY lo}{srcY hi}{destX lo}{destX hi}{destY lo}{destY hi} - \item Setup the command code at \MonoSp{\$FF00}. This triggers the routine; - so mind that the Function code and Parameters are setup sanely prior. - On a technical point, both implementations process the message immediately on write. -% Q2: both implementations of what? -% eg: "... both the _?_ and the _?_ implementation process the message immediately ..." - \item Optionally, wait for completion. - Most commands (eg: writing to the console) do not require waiting, - as any subsequent command will wait/queue as per step 1. - Query commands (e.g. reading from the keyboard queue), - return a value in a parameter. - Programs must wait until the control address \MonoSp{\$FF00} has been cleared - before reading the result of a query. -\end{enumerate} - -There is a support function \MonoSp{SendMessage}, -which in-lines the command and function. -E.g.: this code from the Kernel: - -% Q1: KSendMessage/KWaitMessage or SendMessage/WaitMessage ? -\begin{verbatim} -jsr KSendMessage ; send message for command 2,1 (read keyboard) -.byte 2,1 -jsr KWaitMessage ; wait to receive the result message -lda DParameters ; read result -\end{verbatim} - -The instructions above are equivalent to the following explicit steps: -\begin{verbatim} -lda #1 -sta DFunction -lda #2 -sta DCommand ; trigger API function 2,1 (read keyboard) -Loop: -lda DCommand ; load the result - non-zero until the routine's completion -bne Loop ; wait for API routine to complete -lda DParameters ; read result (a key-code) -\end{verbatim} - - -\pagebreak - - -\subsection{Mathematical Interface}\label{subsec:api-protocol-maths} - -The mathematical interface of the API functions largely as a helper system for the BASIC interpreted, but it is -open to any developer who wishes to avail themselves of the functionality. It is strongly advised that function 32 -of Group 4 (NumberToDecimal) is not used as this is extremely specific and as such is not documented. -\newline - -The interface is used in a stack environment, but is designed so it could be used in either a stack environment or a -fixed location environment. The Neo6502 BASIC stack is also 'split', so elements are not consecutive, though they -can be. -\newline - -Parameter 0 and 1 specify the address of the registers 1 and 2. Register 1 starts at this address, Register 2 starts at the -next address. Parameter 2 specifies the step to the next register. Therefore they are interleaved by default at present. -\newline - -So if Parameters 0 and 1 are 8100 and Parameter 2 is 4, the 5 byte registers are - -\begin{verbatim} -Register 1: 8100,8104,8108,810C,8110 -Register 2: 8101,8105,8109,810D,8111 -\end{verbatim} - -Bytes 1-4 of the 'register' are the number, which can be either an integer (32 bit signed) or a standard 'C' float (e.g. the -IEEE Single Precision Float format). Bit 0 is the type byte, and the relevant bit is bit 6, which is set to indicate bytes 1-4 -are a float value, and is set on return. -\newline - -Binary functions that use int and float combined (one is int and one is float) normally return a float. - -\pagebreak - - -\section{API Functions}\label{api-functions} - -The following tables are a comprehensive list of all supported API functions. -\newline - -For the convenience of application programmers, -the application include files \MonoSp{examples/C/neo6502.h} -and \MonoSp{examples/assembly/neo6502.asm.inc} -define macros for these groups, their functions, -and common parameters (colors, musical notes, etc). - - -@FN_TABLES@ - - -\pagebreak - - -\section{Console Codes}\label{console-codes} - -The following are console key codes. -They can be printed in BASIC programs using \MonoSp{chr\$(n)}, -and are also related to the character keys returned by \MonoSp{inkey\$()}. -The \MonoSp{key()} function uses physical key numbers. -Some control codes do not have corresponding keyboard keys; -and some console outputs are not yet implemented. -\newline - -\MonoSp{Backspace} (8), \MonoSp{Tab} (9), \MonoSp{Enter/CR} (13), \MonoSp{Escape} (27), -and the printable characters (32..127) are the standard ASCII set. -Other typical control keys (eg: Home and arrows) are mapped into the 0..31 range. - -\begin{table}[h] -\centering\textbf{Console Key Codes - Non-Printable} \\ -\begin{tabular}{ | c | c | c | l | } \hline -\textbf{ASCII} & \textbf{CTRL+Key} & \textbf{Key} & \HeaderCenter{Output} \\ \hline -1 & A & Left Arrow & Cursor Left \\ \hline -4 & D & Right Arrow & Cursor Right \\ \hline -% Q5: Insert,PageDown,End dont work? -5 & E & Insert & Insertion Mode \\ \hline -6 & F & Page Down & Cursor Page Down \\ \hline -7 & G & End & Cursor Line End \\ \hline -8 & H & Backspace & Delete Character Left \\ \hline -% Q7: Backspace behaves only as overwrite mode -9 & I & Tab & Tab Character \\ \hline -% Q8: Tab behaves only as overwrite mode but does not delete chars -10 & J & & Line Feed \\ \hline -12 & L & & Clear Screen \\ \hline -13 & M & Enter & Carriage Return (Accept Line) \\ \hline -18 & R & Page Up & Cursor Page Up \\ \hline -19 & S & Down & Cursor Down \\ \hline -20 & T & Home & Cursor Line Begin \\ \hline -22 & V & & Cursor Down (8 Lines) \\ \hline -23 & W & Up & Cursor Up \\ \hline -24 & X & & Cursor Color Inverse \\ \hline -% Q6: Cursor Color Inverse doesnt work as expected? -26 & Z & Delete & Delete Character Right \\ \hline -27 & [ & Escape & Exit \\ \hline -\end{tabular} -\end{table} - -\begin{table}[h] -\centering\textbf{Console Key Codes - Printable} \\ -\begin{tabular}{ | c | c | l | } \hline -\textbf{Hex} & \textbf{Key} & \HeaderCenter{Output} \\ \hline -20-7F & ASCII Set & Standard ASCII Characters \\ \hline -80-8F & & Set Foreground Color \\ \hline -90-9F & & Set Background Color \\ \hline -C0-FF & & User-definable Characters \\ \hline -\end{tabular} -\end{table} - - -\pagebreak - - -\section{Graphics}\label{graphics} - -\subsection{Graphics Settings}\label{subsec:graphics-settings} - -Function 5,1 configures the global graphics system settings. -Not all Parameters are relevant for all graphics commands; -but all Parameters will be set by this command. So mind their values. -\newline - -The actual color of each drawn pixel will be computed at runtime -by AND'ing the existing pixel color with the value specified in \Param{0}, -then XOR'ing the result with the value specified in \Param{1}. -\newline - -The value in \Param{2} is a flag which determines the paint fill mode -for the Draw Rectangle and Draw Ellipse commands: -reset (\MonoSp{0}) for outline, set (\MonoSp{1}) for solid fill. -\newline - -The value in \Param{3} is the draw extent (window) for the Draw Image command. -\newline - -The value in \Param{4} is a bit-field of flags for the Draw Image command, -which determine if the image will be inverted (flipped) horizontally or vertically: -\MonoSp{bit-0} for horizontal, \MonoSp{bit-1} for vertical, -reset (\MonoSp{0}) for normal, set (\MonoSp{1}) for inverted. -\newline - -For the "Draw Rectangle" and "Draw Ellipse" commands, -the given order and position of the coordinates are not significant. -To be precise, one is "a corner" and the other is "the opposite corner". -For the "Draw Ellipse" command, these corners are referring to the bounding-box. -The coordinates for an ellipse will lie outside of the ellipse itself. - - -\pagebreak - - -\subsection{Graphics Data}\label{subsec:graphics-data} - -Graphics data files are conventionally named ending in the .gfx suffix; -though this is not mandatory. -The format is quite simple. - -\begin{table}[h] -\centering\textbf{Graphics Data Format} \\ -\begin{tabular}{ | c | c | l | } \hline -\textbf{Offset} & \textbf{Data} & \HeaderCenter{Description} \\ \hline -0 & 1 & Graphics Data Format ID \\ \hline -1 & Count & Number of 16x16 tiles in use \\ \hline -2 & Count & Number of 16x16 sprites in use \\ \hline -3 & Count & Number of 32x32 sprites in use \\ \hline -4..255 & & Reserved \\ \hline -256 & Raw & Sprites graphics data \\ \hline -\end{tabular} -\end{table} - -The layout of sprites graphics data is all of the 16x16 tiles, -followed by all the 16x16 sprites, -followed by all the 32x32 sprites, all in their respective orders. -As there is currently only about 20kB of Graphics Memory, -these should be used somewhat sparingly. -\newline - -Each byte specifies 2 pixels. The upper 4 bits represent the first pixel colour; -and the lower 4 bits represent the second pixel colour. -So tiles and 16x16 sprites occupy 16x16/2 bytes (128 bytes) each. -Each 32x32 sprite occupies 32x32/2 bytes (512 bytes). -Colour 0 is transparent for sprites (colour 9 should be used for a black pixel). -\newline -% Q9: just to note: the original api.pfd has: -% > each tile takes 16x16/2 bytes (64 bytes) as does each sprite16 - -The release package includes Python scripts for creating graphics files, -which allow you to design graphics using your preferred editing tools -(eg: Gimp, Inkscape, Krita, etc). -There is an example in the \MonoSp{crossdev/} directory, -which demonstrates how to get started importing graphics into the Neo6502. - - -\pagebreak - - -\subsection{Pixel Colors}\label{subsec:graphics-colors} - -\begin{table}[h] -\centering\textbf{Pixel Colors} \\ -\begin{tabular}{ | c | c | } \hline -\textbf{Byte} & \textbf{Color} \\ \hline -\MonoSp{\$80} & Black/Transparent \\ \hline -\MonoSp{\$81} & Red \\ \hline -\MonoSp{\$82} & Green \\ \hline -\MonoSp{\$83} & Yellow \\ \hline -\MonoSp{\$84} & Blue \\ \hline -\MonoSp{\$85} & Magenta \\ \hline -\MonoSp{\$86} & Cyan \\ \hline -\MonoSp{\$87} & White \\ \hline -\MonoSp{\$88} & Black \\ \hline -\MonoSp{\$89} & Dark Grey \\ \hline -\MonoSp{\$8A} & Dark Green \\ \hline -\MonoSp{\$8B} & Orange \\ \hline -\MonoSp{\$8C} & Dark Orange \\ \hline -\MonoSp{\$8D} & Brown \\ \hline -\MonoSp{\$8E} & Pink \\ \hline -\MonoSp{\$8F} & Light Grey \\ \hline -\end{tabular} -\end{table} - - -\pagebreak - - -\section{Tile Maps}\label{tilemaps} - -A tile map occupies an area of user memory in 65C02. -It is comprised of three meta-data bytes, followed by one byte for each tile, -which is it's tile number in the graphic file (refer to the following section). -\newline - -\MonoSp{F0-FF} are special reserved tile numbers, -\MonoSp{F0} is a transparent tile; -and \MonoSp{F1-FF} are a solid tile in the current palette colour. -The format is very simple. - -\begin{table}[h] -\centering\textbf{Tile Maps Format} \\ -\begin{tabular}{ | c | c | l | } \hline -\textbf{Offset} & \textbf{Data} & \HeaderCenter{Description} \\ \hline -0 & 1 & Graphics Data Format ID \\ \hline -1 & Width & Width of tile-map (number of tiles) \\ \hline -2 & Height & Height of tile-map (number of tiles) \\ \hline -3.. & Raw & Tiles graphics data (width * height bytes) \\ \hline -\end{tabular} -\end{table} - - -\pagebreak - - -\section{Sprites}\label{sprite} - -The Neo6502 graphics system has one sprite layer (z-plane) in the conventional sense. -Technically, there is no "sprite layer", per-se. -The system uses palette manipulation to create, what is in practice, -a pair of 4-bit bit-planes. -The sprite graphics are in the upper nibble, the background is in the lower nibble, -and the background is drawn only if the sprite graphic layer is zero. -It's this top nibble which is read by Function 5,36 "Read Sprite Pixel". -\newline - -Function 6,2 sets or updates a sprite. -These parameters (eg: the X and Y coordinates) cannot be set independently. -To retain/reuse the current value of a parameter for a subsequent call, -set each of the associated byte(s) to \MonoSp{\$80} -(eg: \MonoSp{\$80,\$80,\$80,\$80} for coordinates). -\newline - -The 'Sprite' Parameter \Param{0} specifies the index of the sprite in the graphics system. -Sprite 0 is the turtle sprite. -\newline - -\Param{1,2},\Param{3,4} specifies the X and Y screen coordinates. -\newline - -Bits 0-5 of the 'Image' Parameter \Param{5} specify -the index of a specific graphic within the sprites data. -Bit 6 of the 'Image' Parameter specifies the sprite dimensions: -reset (\MonoSp{0}) for 16x16, set (\MonoSp{1}) for 32x32. -In practice, the index is the same as the sprite number -(\MonoSp{\$80}-\MonoSp{\$BF} for 16x16 sprites, -\MonoSp{\$C0}-\MonoSp{\$FF} for 32x32 sprites), but without bit-7 set. -\newline - -The value in \Param{6} specifies a bit-field of flags, -which determines if the graphic will be inverted (flipped) horizontally or vertically: -\MonoSp{bit-0} for horizontal, \MonoSp{bit-1} for vertical, -reset (\MonoSp{0}) for normal, set (\MonoSp{1}) for inverted. -\newline - -\Param{7} specifies the anchor alignment. -Refer to Section \#\ref{subsec:sprite-anchors} "Sprite Anchors" for details. -\newline - - -\pagebreak - - -\subsection{Sprite Anchors}\label{subsec:sprite-anchors} - -The table below shows the valid anchor alignments for a sprite. -The anchor position is the origin of the relative coordinate given. -That is, coordinates 0,0 of the sprite -will coincide with one of the positions shown in the table below. -The default anchor alignment is zero (middle-center). -% Q20: the above is probably not an accurate description -% how is this used? - eg: what may be different if the anchor was chosen poorly? -% is this for alignment/positioning? -% is it a pivot point for rotation? - -\begin{table}[h] -\centering\textbf{Sprite Anchors} \\ -\begin{tabular}{| l | c | r | } \hline -7~~~~~~~~~&~~~~~8~~~~~&~~~~~~~~~9 \\ - & & \\ - & & \\ \hline - & & \\ -4 & 0/5 & 6 \\ - & & \\ \hline - & & \\ - & & \\ -1 & 2 & 3 \\ -\hline -\end{tabular} -\end{table} - -\begin{wrapfigure}[11]{r}{0pt} - \includegraphics[width=0.25\textwidth]{neo6502-rocket.png} -\end{wrapfigure} -~\newline - -To the right are two examples. Assume this is a 32x32 sprite. -In the upper example, the anchor point is at 8, the top-center. -Considering the origin at the bottom-left, -this sprite is drawn at 16,32, the midpoint of the top of the square. -% same as Q20: what is "the square"? - is this the bounding box of the sprite? -% with respect to the origin, -% both diagrams show the image drawn in exactly the same place -\newline - -In the lower example, the anchor point is at 0; -and this sprite is drawn at 16,16 (the middle of the square). -The anchor point should be something like the centre point. -So for a walking character, this might be anchor point 2 (the bottom-center). -% same as Q20: "something like" is rather vague -% rather "The anchor point should be ...": -% "... thought of as the center point of" ... but of what? (eg: rotation?) -% or: -% "... placed near the center point of" ...but of what? -% Anchor point 8 in the example image is not the center point of the image -% nor is it the center point of the diagram. -% The diagrams do not demonstrate anything that the table above does not -% would this be better described as a "pivot point"? -% Maybe the diagram of anchor point 8 should be re-centered about anchor point 8? -% Maybe the rocket should be re-centered about anchor point 8? -% Or is this the point which corresponds to the coordinates -% WRT Function 6,2 "Sprite Set" and/or Function 6,2 "Sprite Get Position"? -% Or is this related to collision detection? - - -\pagebreak - - -\section{Sound}\label{sound} - -Function 8,4 queues a sound. Queued sounds are played sequentially, -each after the previous has completed, -such that sounds within a channel queue will not conflict, interrupt, or overlap. -\newline - -Frequency is in units of Hertz. -Duration is in units of 100ths of a second. -Slide is a gradual linear change in frequency, in units of Hz per 100th of a second. -Sound target type 0 is the beeper. -Currently, the beeper is the only available sound target. - -\begin{center} -\ParamsBytes{Queue Sound Parameters}{Channel}{Freq hi}{Freq lo}{Duration lo} - {Duration hi}{Slide lo}{Slide hi}{Target} -\end{center} - -Function 8,5 plays a sound effect immediately. These will be synthesised to the best -ability of the available hardware. These are predefined as: - -\begin{table}[h] -\centering\textbf{Sound Effects} \\ -\begin{tabular}{ | c | c | } \hline -\textbf{Number} & \textbf{Effect} \\ \hline -\MonoSp{0} & positive \\ \hline -\MonoSp{1} & negative \\ \hline -\MonoSp{2} & error \\ \hline -\MonoSp{3} & confirm \\ \hline -\MonoSp{4} & reject \\ \hline -\MonoSp{5} & sweep \\ \hline -\MonoSp{6} & coin \\ \hline -\MonoSp{7} & las70 \\ \hline -\MonoSp{8} & powerup \\ \hline -\MonoSp{9} & victory \\ \hline -\MonoSp{10} & defeat \\ \hline -\MonoSp{11} & fanfare \\ \hline -\MonoSp{12} & alarm 1 \\ \hline -\MonoSp{13} & alarm 2 \\ \hline -\MonoSp{14} & alarm 3 \\ \hline -\MonoSp{15} & ringtone 1 \\ \hline -\MonoSp{16} & ringtone 2 \\ \hline -\MonoSp{17} & ringtone 3 \\ \hline -\MonoSp{18} & danger \\ \hline -\MonoSp{19} & expl100 \\ \hline -\MonoSp{20} & expl50 \\ \hline -\MonoSp{21} & expl20 \\ \hline -\MonoSp{22} & las30 \\ \hline -\MonoSp{23} & las10 \\ \hline -\end{tabular} -\end{table} - -\end{document} diff --git a/documents/release/source/api.toc b/documents/release/source/api.toc deleted file mode 100644 index 0e29e51d1..000000000 --- a/documents/release/source/api.toc +++ /dev/null @@ -1,13 +0,0 @@ -\contentsline {section}{\numberline {1}Neo6502 Messaging API}{2}{section.1}% -\contentsline {subsection}{\numberline {1.1}API Interfacing Protocol}{4}{subsection.1.1}% -\contentsline {subsection}{\numberline {1.2}Mathematical Interface}{5}{subsection.1.2}% -\contentsline {section}{\numberline {2}API Functions}{6}{section.2}% -\contentsline {section}{\numberline {3}Console Codes}{23}{section.3}% -\contentsline {section}{\numberline {4}Graphics}{24}{section.4}% -\contentsline {subsection}{\numberline {4.1}Graphics Settings}{24}{subsection.4.1}% -\contentsline {subsection}{\numberline {4.2}Graphics Data}{25}{subsection.4.2}% -\contentsline {subsection}{\numberline {4.3}Pixel Colors}{26}{subsection.4.3}% -\contentsline {section}{\numberline {5}Tile Maps}{27}{section.5}% -\contentsline {section}{\numberline {6}Sprites}{28}{section.6}% -\contentsline {subsection}{\numberline {6.1}Sprite Anchors}{29}{subsection.6.1}% -\contentsline {section}{\numberline {7}Sound}{30}{section.7}% diff --git a/documents/release/source/img/neo6502-rocket.png b/documents/release/source/img/neo6502-rocket.png deleted file mode 100644 index fc30c1b670a2c64494077187a3d8f95f1670e912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170239 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Ν zQFV27ckDe{@1@Y}5y`Ca;(^E*07PwY4=#r!5cCbohwYo@&lY&txhV#}_V-nHNQ#KO zPgv?!ZoVrNZ57Pf(}2mGyTQV8%ocWYa=AnEk0hPl4};|nZus*2G&dLzRU?`B^i*SH zH0o8`YY$z>a+3c6-|!q%|M? z%cy5l9)x$}i%Sb*njzck+;)Q#K3Dz?(e98>$D^Y$W5in_cnP-BN96vS^2Zfu_o6%9 zG=#Lbm9)HGybaRG@d*y*!0{(`NNIqKj z#G%0m8-{pQ4xFeu5S{@c0zAs>s;GV*HwL5rJK2$>QYgzmMvD8e@6ev|hzLX!djN^q zrQMxi;L5CDYr$ekh9_Dt#-UGsMq~V+;vZ!lnSNA2lCSodx?IjUG0OSqZ3&gV_2R#) zt29M>&xpyT)7oL1XfAPWAh!*xOmgV9@l~OlDCvNd4-u61dzw z=hG+uA$p2-KV$mEH43D&aIG??U*X@Ktues3Zu zwV^7i8k>ECL++Ie}i~Y5Q2#>Oxtv6ql_imReYWZ=K zD%9}&W0JuhdQ#zAS;`I-%X($aAsf#C)&Uz->% z#S0?NcPoW)6WZ-UCz`@k_d;PA$nvyHz+6*=%7Bjn^MS_Bw==41)Cyc@>)`v|`nbF2 zQ#{GV%&;0G5H}nU0s_H$`45zuedLcZX&H=0C}*o>?RX^kI-sNuE0+{5CX3#;S=RUL zK3ISLCoAdLCtUIPV<3U*X-^mSYH+nzr|+w#trdl9eZ;on?EU-{G92p_|KJ|utI72$ zeOd8wo+gTc(QJXM<6CaBD!%k1>iCUbmkz`I9k4Il@p}a|rhOiytro ziA2~Iwj!hYvc3*4(1BY^0*FHWD3-*kfsQ31og(>8ooX`;+qgKtvILE@Q;dbOvCe%I z8ndK6JXfuO<`E`aZw>tjQ`V-B+NUA+T?@~K!cL&J%!B2CC?7vao2wAWbq#f} z^N)-FD~w8veU)WHilI>^+&?E$@(cTW%&ioi3Y(DQ&#=V{m@~^NPS&Y|q}RaJPN$es zrIR|(k~4Ct2$99xMg#(NpHoqBBZz@2TIb!W(pyvNpsSVN9mS=>xjZA2yVQQBu};-P zBDVL>)?%uI=j#r$u(^GOkCNhYku(&~g-R9Vf!or3|b4BG|@B3SuC zA&X^91gdvK7r*$4B-`u={2U%2;^U?I)rOTVno>~PC~mePCjOr2v)@cv=)qu#0?DNT z&pY;m=lp3TRv19ymddxs_7wr&%|~b%@#ps?2i6_asCQum@iLlk^7NV*nAiQlDnXTQ zSvg%*snIGaCHBH&Ra{y1N%-;(%fOXH+-FtQ{;FGpQY!iRF%LN$FzA0dHZC3ti8y*TCq9-{19$jt0x)y3Ve;{NN+r0_ zj3(B)%+YV|;{W58c7|B92={nYTK%K6z<^~9s8$9l;^eW%lT(0ET3l_WoCN~V@ zW)au$7#^tX1)S0@4EQ{`=AXU;z^hhVMYOW)PZMntu>BfxySlJc?{5u+nOq@0l4ahJ zrw(3Z#kD#Q$>Jt6=5%nFe&8@;!`f)_bi&(pc9*yS5D~Ju!VciehOv_fhLr_kh9`31@#{lrs+^wFP;O?*Inw zJ}N*%ux19p6M$rZJSVWVW$6PU#R^(G(f+UaSrPzWwcEBf64ATwwH`QH4FJ}g(6&zZ z8{M4T*v@g-3eru{rR9l*T7=7r;UWccKh4@H$!Bl z$Pr(pb3W*rdh@j`Uhe;%bE%5=+PV5-j$t%MVC= jN*joU^RS*yUEX6W?N;y5CkLN60Q?#0n?lOKcc1+~VvDMK diff --git a/documents/release/source/img/neo6502-text-logo.png b/documents/release/source/img/neo6502-text-logo.png deleted file mode 100644 index 2147fe761b468a1d0c41c6c783df4d066794a05f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3311 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 diff --git a/firmware/common/config/display/group2_console.inc b/firmware/common/config/display/group2_console.inc index 472b37457..4306d8ffd 100644 --- a/firmware/common/config/display/group2_console.inc +++ b/firmware/common/config/display/group2_console.inc @@ -27,10 +27,10 @@ GROUP 2 Console FUNCTION 1 Read Character *(DPARAMS) = KBDGetKey(); DOCUMENTATION - Read and remove a key press from the keyboard queue into \Param{0}. + Read and remove a key press from the keyboard queue into Parameter:0. This is the ASCII value of the keystroke. - If there are no key presses in the queue, \Param{0} will be zero. - \newline + If there are no key presses in the queue, Parameter:0 will be zero. + Note that this Function is best for text input, but not for games. Function 7,1 is more optimal for games, as this only detects key presses, you cannot check whether the key is currently down or not. @@ -39,40 +39,38 @@ GROUP 2 Console *(DPARAMS) = KBDIsKeyAvailable() ? 0xFF: 0; DOCUMENTATION // Function 2 is key available in queue Check to see if the keyboard queue is empty. - If it is, \Param{0} will be \MonoSp{$FF}, otherwise it will be \MonoSp{$00}. + If it is, Parameter:0 will be $FF, otherwise it will be $00 FUNCTION 3 Read Line CONGetScreenLine(DSPGetInt16(DCOMMAND,4)); DOCUMENTATION - Input the current line below the cursor into \Param{0,1} as a length-prefixed string; + Input the current line below the cursor into Parameters:0,1 as a length-prefixed string; and move the cursor to the line below. Handles multiple-line input. FUNCTION 4 Define Hotkey *DERROR = KBDSetFunctionKey(*(DCOMMAND+4),DSPGetString(DCOMMAND,6)); DOCUMENTATION - Define the function key F1..F10 (\MonoSp{$01..$0A}) specified in \Param{0} to emit the - length-prefixed string stored at the memory location specified in \Param{2,3}. - For example, in a block of in-line assembly within a BASIC program, - the string: \MonoSp{06,12,108,105,115,116,13} would clear the screen (\MonoSp{12}), - then list the program (\MonoSp{108}='l',\MonoSp{105}='i',\MonoSp{115}='s',\MonoSp{116}='t',\MonoSp{13}='ENTER'). - \newline F11 and F12 cannot currently be defined. + Define the function key F1..F10 specified in Parameter:0 as 1..10 to emit the + length-prefixed string stored at the memory location specified in Parameters:2,3. + + F11 and F12 cannot currently be defined. FUNCTION 5 Define Character *DERROR = CONUpdateUserFont(DPARAMS); DOCUMENTATION - Define a font character specified in \Param{0} within the range of 192..255. - Fill bits 0..5 (columns) of \Param{1..7} (rows) with the character bitmap. + Define a font character specified in Parameter:0 within the range of 192..255. + Fill bits 0..5 (columns) of Parameters:1..7 (rows) with the character bitmap. FUNCTION 6 Write Character CONWrite(*DPARAMS); DOCUMENTATION - Write the character specified in \Param{0} to the console at the cursor position. - Refer to Section \#\ref{console-codes} "Console Codes" for details. + Write the character specified in Parameter:0 to the console at the cursor position. + Refer to Section "Console Codes" for details. FUNCTION 7 Set Cursor Pos *DERROR = CONSetCursorPosition(DPARAMS[0],DPARAMS[1]); DOCUMENTATION - Move the cursor to the screen character cell \Param{0} (X), \Param{1} (Y). + Move the cursor to the screen character cell Parameter:0 (X), Parameter:1 (Y). FUNCTION 8 List Hotkeys KBDShowFunctionKeys(); @@ -82,7 +80,7 @@ GROUP 2 Console FUNCTION 9 Screen Size CONGetScreenSizeChars(&DPARAMS[0],&DPARAMS[1]); DOCUMENTATION - Returns the console size in characters, in \Param{0} (height) and \Param{1} (width). + Returns the console size in characters, in Parameter:0 (height) and Parameter:1 (width). FUNCTION 10 Insert Line CONInsertLine(DPARAMS[0]); @@ -103,18 +101,18 @@ GROUP 2 Console CONGetCursorPosition(&DPARAMS[0],&DPARAMS[1]); DOCUMENTATION Returns the current screen character cell of the cursor - in \Param{0} (X), \Param{1} (Y). + in Parameter:0 (X), Parameter:1 (Y). FUNCTION 14 Clear Region CONClearArea(DPARAMS[0],DPARAMS[1],DPARAMS[2],DPARAMS[3]); DOCUMENTATION Erase all characters within the rectangular region specified - in \Param{0,1} (begin X,Y) and \Param{2,3} (end X,Y). + in Parameters:0,1 (begin X,Y) and Parameters:2,3 (end X,Y). FUNCTION 15 Set Text Color CONSetForeBackColour(DPARAMS[0],DPARAMS[1]); DOCUMENTATION - Sets the foreground colour to \Param{0} and the background colour to \Param{1}. + Sets the foreground colour to Parameter:0 and the background colour to Parameter:1. FUNCTION 16 Cursor Inverse CONReverseCursorBlock(); diff --git a/firmware/common/config/display/group5_graphics.inc b/firmware/common/config/display/group5_graphics.inc index aa3c2d3c4..7e6ecec1a 100644 --- a/firmware/common/config/display/group5_graphics.inc +++ b/firmware/common/config/display/group5_graphics.inc @@ -24,77 +24,72 @@ GROUP 5 Graphics Configure the global graphics system settings. Not all parameters are relevant for all graphics commands; but all parameters will be set by this command. So mind their values. - Refer to Section \#\ref{subsec:graphics-settings} "Graphics Settings" for details. - \newline - \ParamsBytes{Graphics Settings}{AND}{XOR}{Fill}{Extent} - {Flip}{unused}{\textit{unused}}{\textit{unused}} - \newline - \ParamBits{$FF08 - Flip Axis Flags}{0}{0}{0}{0}{0}{0}{Vertical}{Horizontal} + Refer to Section "Graphics Settings" for details. + + The parameters are And, Or, Fill Flag, Extent, and Flip. Bit 0 of flip + sets the horizontal flip, Bit 1 sets the vertical flip. FUNCTION 2 Draw Line GFXGraphicsCommand(2,DCOMMAND); DOCUMENTATION Draw a line between the screen coordinates specified - in \Param{0,1},\Param{2,3} (begin X,Y) - and \Param{4,5},\Param{6,7} (end X,Y). - \newline - \ParamsBytes{Draw Line Parameters}{X lo}{X hi}{Y lo}{Y hi} - {X' lo}{X' hi}{Y' lo}{Y' hi} + in Parameters:0,1,Parameters:2,3 (begin X,Y) + and Parameters:4,5,Parameters:6,7 (end X,Y). FUNCTION 3 Draw Rectangle GFXGraphicsCommand(3,DCOMMAND); DOCUMENTATION Draw a rectangle spanning the screen coordinates specified - in \Param{0,1},\Param{2,3} (corner X,Y) - and \Param{4,5},\Param{6,7} (opposite corner X,Y). + in Parameters:0,1,Parameters:2,3 (corner X,Y) + and Parameters:4,5,Parameters:6,7 (opposite corner X,Y). FUNCTION 4 Draw Ellipse GFXGraphicsCommand(4,DCOMMAND); DOCUMENTATION Draw an ellipse spanning the screen coordinates specified - in \Param{0,1},\Param{2,3} (corner X,Y) - and \Param{4,5},\Param{6,7} (opposite corner X,Y). + in Parameters:0,1,Parameters:2,3 (corner X,Y) + and Parameters:4,5,Parameters:6,7 (opposite corner X,Y). FUNCTION 5 Draw Pixel GFXGraphicsCommand(5,DCOMMAND); DOCUMENTATION Draw a single pixel at the screen coordinates specified - in \Param{0,1},\Param{2,3} (X,Y). + in Parameters:0,1,Parameters:2,3 (X,Y). FUNCTION 6 Draw Text GFXGraphicsCommand(6,DCOMMAND); DOCUMENTATION Draw the length-prefixed string of text stored - at the memory location specified in \Param{4,5} - at the screen character cell specified in \Param{0,1},\Param{2,3} (X,Y). + at the memory location specified in Parameters:4,5 + at the screen character cell specified in Parameters:0,1,Parameters:2,3 (X,Y). FUNCTION 7 Draw Image GFXGraphicsCommand(7,DCOMMAND); DOCUMENTATION - Draw the image with image ID in \Param{4} - at the screen coordinates \Param{0,1},\Param{2,3} (X,Y). + Draw the image with image ID in Parameter:4 + at the screen coordinates Parameters:0,1,Parameters:2,3 (X,Y). The extent and flip settings influence this command. FUNCTION 8 Draw Tilemap *DERROR = TMPDrawTileMap(DCOMMAND); DOCUMENTATION Draw the current tilemap at the screen coordinates specified - in \Param{0,1},\Param{2,3} (top-left X,Y) - and \Param{4,5},\Param{6,7} (bottom-right X,Y) + in Parameters:0,1,Parameters:2,3 (top-left X,Y) + and Parameters:4,5,Parameters:6,7 (bottom-right X,Y) using current graphics settings. FUNCTION 32 Set Palette GFXSetPalette(DPARAMS[0],DPARAMS[1],DPARAMS[2],DPARAMS[3]); DOCUMENTATION - Set the palette colour at the index spcified in \Param{0} - to the values in \Param{1},\Param{2},\Param{3} (RGB). + Set the palette colour at the index spcified in Parameter:0 + to the values in Parameter:1,Parameter:2,Parameter:3 (RGB). FUNCTION 33 Read Pixel GFXGraphicsCommand(33,DCOMMAND); DOCUMENTATION Read a single pixel at the screen coordinates specified - in \Param{0,1},\Param{2,3} (X,Y). - When the routine completes, the result will be in \Param{0}. If sprites are in use, this will be the + in Parameters:0,1,Parameters:2,3 (X,Y). + When the routine completes, the result will be in Parameter:0. If sprites are in use, this will be the background only (0..15), if sprites are not in use it may return (0..255) FUNCTION 34 Reset Palette @@ -106,58 +101,60 @@ GROUP 5 Graphics TMPSelectTileMap(cpuMemory+DSPGetInt16(DCOMMAND,4),DSPGetInt16(DCOMMAND,6),DSPGetInt16(DCOMMAND,8)); DOCUMENTATION Set the current tilemap. - \Param{0,1} is the memory address of the tilemap, - and \Param{2,3},\Param{4,5} (X,Y) specifies the offset into the tilemap, + Parameters:0,1 is the memory address of the tilemap, + and Parameters:2,3,Parameters:4,5 (X,Y) specifies the offset into the tilemap, in units of pixels, of the top-left pixel of the tile. FUNCTION 36 Read Sprite Pixel GFXGraphicsCommand(36,DCOMMAND); DOCUMENTATION Read Pixel from the sprite layer at the screen coordinates - specified in \Param{0,1},\Param{2,3} (X,Y). - When the routine completes, the result will be in \Param{0}. - Refer to Section \#\ref{graphics-colors} "Pixel Colors" for details. + specified in Parameters:0,1,Parameters:2,3 (X,Y). + When the routine completes, the result will be in Parameter:0. + Refer to Section "Pixel Colors" for details. FUNCTION 37 Frame Count *((uint32_t *)DPARAMS) = RNDGetFrameCount(); DOCUMENTATION - Deposit into \Param{0..3}, + Deposit into Parameters:0..3, the number of v-blanks (full screen redraws) which have occurred since power-on. This is updated at the start of each v-blank period. FUNCTION 38 Get Palette GFXGetPalette(DPARAMS[0],&DPARAMS[1],&DPARAMS[2],&DPARAMS[3]); DOCUMENTATION - Get the palette colour at the index spcified in \Param{0}. - Values are returned in \Param{1},\Param{2},\Param{3} (RGB). + Get the palette colour at the index spcified in Parameter:0. + Values are returned in Parameter:1,Parameter:2,Parameter:3 (RGB). FUNCTION 39 Write Pixel GFXSetDrawColour(DPARAMS[4]);GFXGraphicsCommand(5,DCOMMAND); DOCUMENTATION - Write Pixel index \Param{4} to the screen coordinate specified in - \Param{0,1},\Param{2,3} (X,Y). + Write Pixel index Parameter:4 to the screen coordinate specified in + Parameters:0,1,Parameters:2,3 (X,Y). FUNCTION 64 Set Color GFXSetDrawColour(DPARAMS[0]); DOCUMENTATION Set Color - \newline Sets the current drawing colour to \Param{0} + Sets the current drawing colour to Parameter:0 FUNCTION 65 Set Solid Flag GFXSetSolidFlag(DPARAMS[0]); DOCUMENTATION Set Solid Flag - \newline Sets the solid flag to \Param{0}, which indicates either solid fill (for shapes) or solid background (for images and fonts) + + Sets the solid flag to Parameter:0, which indicates either solid fill (for shapes) or solid background (for images and fonts) FUNCTION 66 Set Draw Size GFXSetDrawSize(DPARAMS[0]); DOCUMENTATION Set Draw Size - \newline Sets the drawing scale for images and fonts to \Param{0} + + Sets the drawing scale for images and fonts to Parameter:0 FUNCTION 67 Set Flip Bits GFXSetFlipBits(DPARAMS[0]); DOCUMENTATION Set Flip Bits - \newline Sets the flip bits for drawing images. Bit 0 set causes a horizontal flip, bit 1 set causes a vertical flip. + Sets the flip bits for drawing images. Bit 0 set causes a horizontal flip, bit 1 set causes a vertical flip. diff --git a/firmware/common/config/display/group6_sprites.inc b/firmware/common/config/display/group6_sprites.inc index 462eb8c21..61ffa74ec 100644 --- a/firmware/common/config/display/group6_sprites.inc +++ b/firmware/common/config/display/group6_sprites.inc @@ -26,30 +26,29 @@ GROUP 6 Sprites FUNCTION 2 Sprite Set *DERROR = SPRUpdate(DPARAMS); DOCUMENTATION - Set or update the sprite specified in \Param{0}. - \newline - \ParamsBytes{Sprite Parameters}{Sprite}{X lo}{X hi}{Y lo}{Y hi}{Image}{Flip}{Anchor} - \newline - \SpriteParamBits{$FF09 - Image Parameters}{0}{32-bit}{Index} - \newline - \ParamBits{$FF0A - Flip Axis Flags}{0}{0}{0}{0}{0}{0}{Vertical}{Horizontal} - \newline values that are $80 or $8080 are not updated. + Set or update the sprite specified in Parameter:0. + + The parameters are : Sprite Number, X Low, X High, Y Low, Y High, Image, Flip and Anchor and Flags + + Bit 0 of flags specifies 32 bit sprites. + + Values that are $80 or $8080 are not updated. FUNCTION 3 Sprite Hide SPRHide(DPARAMS); DOCUMENTATION - Hide the sprite specified in \Param{0}. + Hide the sprite specified in Parameter:0. FUNCTION 4 Sprite Collision DPARAMS[0] = SPRCollisionCheck(DERROR,DPARAMS[0],DPARAMS[1],DPARAMS[2]); DOCUMENTATION - \Param{0} is non-zero if the distance is less than or equal to \Param{2} - between the center of the sprite with index specified in \Param{0} - and the center of the sprite with index specified in \Param{1} . + Parameter:0 is non-zero if the distance is less than or equal to Parameter:2 + between the center of the sprite with index specified in Parameter:0 + and the center of the sprite with index specified in Parameter:1 . FUNCTION 5 Sprite Position *DERROR = SPRGetSpriteData(DPARAMS); DOCUMENTATION - Deposit into \Param{1..4}, the screen coordinates of the sprite - with the index specified in \Param{0}. + Deposit into Parameters:1..4, the screen coordinates of the sprite + with the index specified in Parameter:0. diff --git a/firmware/common/config/display/group9_turtle.inc b/firmware/common/config/display/group9_turtle.inc index c7c853c71..04e7740a4 100644 --- a/firmware/common/config/display/group9_turtle.inc +++ b/firmware/common/config/display/group9_turtle.inc @@ -22,20 +22,20 @@ GROUP 9 Turtle Graphics TTLInitialise(DPARAMS[0]); DOCUMENTATION Initialise the turtle graphics system. - \Param{0} is the sprite number to use for the turtle, + Parameter:0 is the sprite number to use for the turtle, as the turtle graphics system “adopts” one of the sprites. The icon is not currently re-definable, and initially the turtle is hidden. FUNCTION 2 Turtle Turn TTLRotate(DSPGetInt16(DCOMMAND,4)); DOCUMENTATION - Turn the turtle right by \Param{0}\Param{1} degrees. Show if hidden. To turn left, turn by a negative amount. + Turn the turtle right by Parameter:0,1 degrees. Show if hidden. To turn left, turn by a negative amount. FUNCTION 3 Turtle Move TTLMove(DSPGetInt16(DCOMMAND,4),DCOMMAND[6],DCOMMAND[7]); DOCUMENTATION - Move the turtle forward by \Param{0}\Param{1} degrees, drawing in colour \Param{2}, - pen down flag in \Param{3}. Show if hidden. + Move the turtle forward by Parameter:0,1 degrees, drawing in colour Parameter:2, + pen down flag in Parameter:3. Show if hidden. FUNCTION 4 Turtle Hide TTLHide(); diff --git a/firmware/common/config/mathematics/group4_binary.inc b/firmware/common/config/mathematics/group4_binary.inc index bdaf38389..e6eadf34f 100644 --- a/firmware/common/config/mathematics/group4_binary.inc +++ b/firmware/common/config/mathematics/group4_binary.inc @@ -87,6 +87,6 @@ } *DPARAMS = r; DOCUMENTATION - \Param{0} := Register 1 compare Register2 : returns $FF, 0, 1 for less equal and greater. - \newline + Parameter:0 := Register 1 compare Register2 : returns $FF, 0, 1 for less equal and greater. + Note: float comparison is approximate because of rounding. diff --git a/firmware/common/config/mathematics/group4_other.inc b/firmware/common/config/mathematics/group4_other.inc index ee774901d..e4c9fd40d 100644 --- a/firmware/common/config/mathematics/group4_other.inc +++ b/firmware/common/config/mathematics/group4_other.inc @@ -20,12 +20,12 @@ FUNCTION 33 String to Number MATHConvertStringToNumber(DCOMMAND); DOCUMENTATION - Convert the length prefixed string at \Param{4,5} to a constant in Register1. + Convert the length prefixed string at Parameters:4,5 to a constant in Register1. FUNCTION 34 Number to String MATHConvertNumberToString(DCOMMAND); DOCUMENTATION - Convert the constant in Register1 to a length prefixed string which is stored at \Param{4,5} + Convert the constant in Register1 to a length prefixed string which is stored at Parameters:4,5 FUNCTION 35 Set Degree/Radian Mode MATHSetAngleMeasure(DPARAMS[0] != 0); diff --git a/firmware/common/config/miscellany/group11_mouse.inc b/firmware/common/config/miscellany/group11_mouse.inc index f28d12e2e..8491f6b53 100644 --- a/firmware/common/config/miscellany/group11_mouse.inc +++ b/firmware/common/config/miscellany/group11_mouse.inc @@ -20,27 +20,27 @@ GROUP 11 Mouse FUNCTION 1 Move display cursor MSESetPosition(DSPGetInt16(DCOMMAND,4),DSPGetInt16(DCOMMAND,6)); DOCUMENTATION - Positions the display cursor at \Param{0,1},\Param{2,3} + Positions the display cursor at Parameters:0,1,Parameters:2,3 FUNCTION 2 Set mouse display cursor on/off MSESetVisible(DCOMMAND[4] != 0); DOCUMENTATION - Shows or hides the mouse cursor depending on the \Param{0} + Shows or hides the mouse cursor depending on the Parameter:0 FUNCTION 3 Get mouse state MSEGetState((uint16_t*)DPARAMS, (uint16_t*)(DPARAMS + 2), DPARAMS + 4, DPARAMS + 5); DOCUMENTATION - Returns the mouse position (screen pixel, unsigned) in x \Param{0,1} and y \Param{2,3}, - buttonstate in \Param{4} (button 1 is 0x1, button 2 0x2 etc., set when pressed), - scrollwheelstate in \Param{5} as uint8 which changes according to scrolls. + Returns the mouse position (screen pixel, unsigned) in x Parameters:0,1 and y Parameters:2,3, + buttonstate in Parameter:4 (button 1 is 0x1, button 2 0x2 etc., set when pressed), + scrollwheelstate in Parameter:5 as uint8 which changes according to scrolls. FUNCTION 4 Test mouse present *DPARAMS = MSEMousePresent() ? 1 : 0; DOCUMENTATION - Returns non zero if a mouse is plugged in in \Param{0} + Returns non zero if a mouse is plugged in in Parameter:0 FUNCTION 5 Select mouse Cursor *DERROR = CURSetCurrent(DPARAMS[0]); DOCUMENTATION - Select a mouse cursor in \Param{0} ; returns error status if the cursor is not available. + Select a mouse cursor in Parameter:0 ; returns error status if the cursor is not available. \ No newline at end of file diff --git a/firmware/common/config/miscellany/group7_controller.inc b/firmware/common/config/miscellany/group7_controller.inc index a58bd8ed5..3d49585ed 100644 --- a/firmware/common/config/miscellany/group7_controller.inc +++ b/firmware/common/config/miscellany/group7_controller.inc @@ -26,21 +26,22 @@ GROUP 7 Controller } DOCUMENTATION - This reads the status of the base controller into \Param{0}, and is a compatibility + This reads the status of the base controller into Parameter:0, and is a compatibility API call. \newline The base controller is the keyboard keys (these are WASD+OPKL or Arrow Keys+ZXCV) or the gamepad controller buttons. Either works. - \newline - \ParamBits{$FF04 - Controller Flags}{Y}{X}{B}{A}{Down}{Up}{Right}{Left} + The 8 bits of the returned byte are the following buttons, most significant first : + + Y X B A Down Up Right Left FUNCTION 2 Read Controller Count *DPARAMS = GMPGetControllerCount(); DOCUMENTATION - This returns the number of game controllers plugged in to the USB System into \Param{0}. This does not include the + This returns the number of game controllers plugged in to the USB System into Parameter:0. This does not include the keyboard based controller, only physical controller hardware. FUNCTION 3 Read Controller @@ -57,8 +58,8 @@ GROUP 7 Controller This returns a specific controller status. Controller 0 is the keyboard controller, Controllers 1 upwards are those physical USB devices. - This returns a 32 bit value in \Param{0..3} which currently is compatible with function 1, but allows for expansion. + This returns a 32 bit value in Parameters:0..3 which currently is compatible with function 1, but allows for expansion. - \newline - \ParamBits{$FF04 - Controller Flags}{Y}{X}{B}{A}{Down}{Up}{Right}{Left} + The 8 bits of the returned byte are the following buttons, most significant first : + Y X B A Down Up Right Left diff --git a/firmware/common/config/miscellany/group8_sound.inc b/firmware/common/config/miscellany/group8_sound.inc index 8a39723e0..b4c14386f 100644 --- a/firmware/common/config/miscellany/group8_sound.inc +++ b/firmware/common/config/miscellany/group8_sound.inc @@ -27,7 +27,7 @@ GROUP 8 Sound FUNCTION 2 Reset Channel *DERROR = SNDResetChannel(*DPARAMS); DOCUMENTATION - Reset the sound channel specified in \Param{0}. + Reset the sound channel specified in Parameter:0. FUNCTION 3 Beep SNDStartup(); @@ -40,24 +40,23 @@ GROUP 8 Sound su.slide = DSPGetInt16(DCOMMAND,9); *DERROR = SNDPlay(DPARAMS[0],&su); DOCUMENTATION - Queue a sound. - Refer to Section \#\ref{sound} "Sound" for details. - \newline - \ParamsBytes{Queue Sound Parameters}{Chan}{Frq hi}{Frq lo}{Dur lo} - {Dur hi}{Sld lo}{Sld hi}{Source} + Queue a sound. Refer to Section \#\ref{sound} "Sound" for details. + + The parameters are : Channel, Frequency Low, Frequency High, + Duration Low, Duration High, Slide Low, Slide High and Source. FUNCTION 5 Play Sound *DERROR = SFXPlay(DPARAMS[0],DPARAMS[1]); DOCUMENTATION - Play the sound effect specified in \Param{1} - on the channel specified in \Param{0} immediately, clearing the channel queue. + Play the sound effect specified in Parameter:1 + on the channel specified in Parameter:0 immediately, clearing the channel queue. FUNCTION 6 Sound Status i1 = SNDGetNoteCount(DPARAMS[0]); DPARAMS[0] = i1 & 0xFF; *DERROR = (i1 < 0) ? 1 : 0; DOCUMENTATION - Deposit in \Param{0} the number of notes outstanding before silence - in the queue of the channel specified in \Param{0}, + Deposit in Parameter:0 the number of notes outstanding before silence + in the queue of the channel specified in Parameter:0, including the current playing sound, if any. diff --git a/firmware/common/config/system/group10_uext.inc b/firmware/common/config/system/group10_uext.inc index e81ae9eea..f9cd53ed5 100644 --- a/firmware/common/config/system/group10_uext.inc +++ b/firmware/common/config/system/group10_uext.inc @@ -27,7 +27,7 @@ GROUP 10 UExt I/O FUNCTION 2 Write GPIO *DERROR = IOWrite(DPARAMS[0],DPARAMS[1] != 0); DOCUMENTATION - This copies the value \Param{1} to the output latch for UEXT pin \Param{0}. + This copies the value Parameter:1 to the output latch for UEXT pin Parameter:0. This will only display on the output pin if it is enabled, and its direction is set to "Output" direction. @@ -35,28 +35,28 @@ GROUP 10 UExt I/O *DERROR = IORead(DPARAMS[0],&b1); DPARAMS[0] = b1 ? 0xFF:0; DOCUMENTATION - If the pin is set to "Input" direction, reads the level on pin on UEXT port \Param{0}. - If it is set to "Output" direction, reads the output latch for pin on UEXT port \Param{0}. - If the read is successful, the result will be in \Param{0}. + If the pin is set to "Input" direction, reads the level on pin on UEXT port Parameter:0. + If it is set to "Output" direction, reads the output latch for pin on UEXT port Parameter:0. + If the read is successful, the result will be in Parameter:0. FUNCTION 4 Set Port Direction *DERROR = IOSetDirection(DPARAMS[0],DPARAMS[1]); DOCUMENTATION - Set the port direction for UEXT Port \Param{0} to the value in \Param{1}. + Set the port direction for UEXT Port Parameter:0 to the value in Parameter:1. This can be $01 (Input), $02 (Output), or $03 (Analogue Input). FUNCTION 5 Write I2C *DERROR = IOI2CWriteRegister(DPARAMS[0],DPARAMS[1],DPARAMS[2]); DOCUMENTATION - Write to I2C Device \Param{0}, Register \Param{1}, value \Param{2}. + Write to I2C Device Parameter:0, Register Parameter:1, value Parameter:2. No error is flagged if the device is not present. FUNCTION 6 Read I2C *DERROR = IOI2CReadRegister(DPARAMS[0],DPARAMS[1],&u2); DPARAMS[0] = u2; DOCUMENTATION - Read from I2C Device \Param{0}, Register \Param{1}. - If the read is successful, the result will be in \Param{0}. + Read from I2C Device Parameter:0, Register Parameter:1. + If the read is successful, the result will be in Parameter:0. If the device is not present, this will flag an error. Use FUNCTION 10,2 first, to check for its presence. @@ -64,63 +64,63 @@ GROUP 10 UExt I/O *DERROR = IOReadAnalogue(DPARAMS[0],&u3); DPARAMS[0] = u3 & 0xFF;DPARAMS[1] = (u3 >> 8); DOCUMENTATION - Read the analogue value on UEXT Pin \Param{0}. + Read the analogue value on UEXT Pin Parameter:0. This has to be set to analogue type to work. - Returns a value from 0..4095 stored in \Param{0,1}, + Returns a value from 0..4095 stored in Parameters:0,1, which represents an input value of 0 to 3.3 volts. FUNCTION 8 I2C Status DPARAMS[0] = (IOI2CReadBlock(DPARAMS[0],&u2,1) == 0) ? 1 : 0; DOCUMENTATION - Try to read from I2C Device \Param{0}. - If present, then \Param{0} will contain a non-zero value. + Try to read from I2C Device Parameter:0. + If present, then Parameter:0 will contain a non-zero value. FUNCTION 9 Read I2C Block *DERROR = IOI2CReadBlock(DPARAMS[0],cpuMemory+DSPGetInt16(DCOMMAND,5),DSPGetInt16(DCOMMAND,7)); DOCUMENTATION - Try to read a block of memory from I2C Device \Param{0} into memory - at \Param{1,2}, length \Param{3,4}. + Try to read a block of memory from I2C Device Parameter:0 into memory + at Parameters:1,2, length Parameters:3,4. FUNCTION 10 Write I2C Block *DERROR = IOI2CWriteBlock(DPARAMS[0],cpuMemory+DSPGetInt16(DCOMMAND,5),DSPGetInt16(DCOMMAND,7)); DOCUMENTATION - Try to write a block of memory to I2C Device \Param{0} from memory - at \Param{1,2}, length \Param{3,4}. + Try to write a block of memory to I2C Device Parameter:0 from memory + at Parameters:1,2, length Parameters:3,4. FUNCTION 11 Read SPI Block *DERROR = IOSPIReadBlock(cpuMemory+DSPGetInt16(DCOMMAND,5),DSPGetInt16(DCOMMAND,7)); DOCUMENTATION Try to read a block of memory from SPI Device into memory - at \Param{1,2}, length \Param{3,4}. + at Parameters:1,2, length Parameters:3,4. FUNCTION 12 Write SPI Block *DERROR = IOSPIWriteBlock(cpuMemory+DSPGetInt16(DCOMMAND,5),DSPGetInt16(DCOMMAND,7)); DOCUMENTATION Try to write a block of memory to SPI Device from memory - at \Param{1,2}, length \Param{3,4}. + at Parameters:1,2, length Parameters:3,4. FUNCTION 13 Read UART Block *DERROR = IOUARTReadBlock(cpuMemory+DSPGetInt16(DCOMMAND,5),DSPGetInt16(DCOMMAND,7)); DOCUMENTATION Try to read a block of memory from UART into memory - at \Param{1,2}, length \Param{3,4}. This can fail with a timeout. + at Parameters:1,2, length Parameters:3,4. This can fail with a timeout. FUNCTION 14 Write UART Block *DERROR = IOUARTWriteBlock(cpuMemory+DSPGetInt16(DCOMMAND,5),DSPGetInt16(DCOMMAND,7)); DOCUMENTATION Try to write a block of memory to UART from memory - at \Param{1,2}, length \Param{3,4}. + at Parameters:1,2, length Parameters:3,4. FUNCTION 15 Set UART Speed and Protocol *DERROR = 0;IOUARTInitialise(DSPGetInt16(DCOMMAND,4)+(DSPGetInt16(DCOMMAND,6) << 16),DPARAMS[4]); DOCUMENTATION - Set the Baud Rate and Serial Protocol for the UART interface. The baud rate is in \Param{0,1,2,3} - and the protocol number is \Param{4}. Currently only 8N1 is supported, this is protocol 0. + Set the Baud Rate and Serial Protocol for the UART interface. The baud rate is in Parameters:0..3 + and the protocol number is Parameter:4. Currently only 8N1 is supported, this is protocol 0. FUNCTION 16 Write byte to UART *DERROR = 0;SERWriteByte(DPARAMS[0]); DOCUMENTATION - Write byte \Param{0} to the UART + Write byte Parameter:0 to the UART FUNCTION 17 Read byte from UART if (SERIsByteAvailable()) { @@ -130,9 +130,9 @@ GROUP 10 UExt I/O *DERROR = 1; } DOCUMENTATION - Read a byte from the UART. It is returned in \Param{0} + Read a byte from the UART. It is returned in Parameter:0 FUNCTION 18 Check if Byte Available DPARAMS[0] = SERIsByteAvailable() ? 1 : 0; DOCUMENTATION - See if a byte is available in the UART input buffer. If available \Param{0} is non zero. \ No newline at end of file + See if a byte is available in the UART input buffer. If available Parameter:0 is non zero. \ No newline at end of file diff --git a/firmware/common/config/system/group12_blitter.inc b/firmware/common/config/system/group12_blitter.inc index 85f1e1c65..5c3774c27 100644 --- a/firmware/common/config/system/group12_blitter.inc +++ b/firmware/common/config/system/group12_blitter.inc @@ -20,13 +20,13 @@ GROUP 12 Blitter FUNCTION 1 Blitter Busy DPARAMS[0] = 0; DOCUMENTATION - Returns a non zero value in \Param{1} if the blitter/DMA system is currently transferring data, used to check availability + Returns a non zero value in Parameter:1 if the blitter/DMA system is currently transferring data, used to check availability and transfer completion. FUNCTION 2 Simple Blit Copy *DERROR = BLTSimpleCopy(DPARAMS[0],DSPGetInt16(DCOMMAND,5),DPARAMS[3],DSPGetInt16(DCOMMAND,8),DSPGetInt16(DCOMMAND,10)); DOCUMENTATION - Copy \Param{6,7} bytes of internal memory from \Param{0}:\Param{1,2} to \Param{3}:\Param{4,5}. Sets error flag if the transfer is not + Copy Parameters:6,7 bytes of internal memory from Parameter:0:Parameters:1,2 to Parameter:3:Parameters:4,5. Sets error flag if the transfer is not possible (e.g. illegal write addresses). The upper 8 bits of the address are : 6502 RAM (00) VideoRAM (80,81) Graphics RAM(90) diff --git a/firmware/common/config/system/group1_system.inc b/firmware/common/config/system/group1_system.inc index 93f834f16..ad15e9eb2 100644 --- a/firmware/common/config/system/group1_system.inc +++ b/firmware/common/config/system/group1_system.inc @@ -26,16 +26,16 @@ GROUP 1 System FUNCTION 1 Timer *((uint32_t *)DPARAMS) = TMRRead(); // (assumes littleendian) DOCUMENTATION - Deposit the value (32-bits) of the 100Hz system timer into \Param{0..3}. + Deposit the value (32-bits) of the 100Hz system timer into Parameters:0..3. FUNCTION 2 Key Status i1 = DPARAMS[0]; DPARAMS[0] = (i1 < KBD_MAX_KEYCODE) ? KBDGetStateArray()[i1] : 0; DPARAMS[1] = KBDGetModifiers(); DOCUMENTATION - Deposits the state of the specified keyboard key into \Param{0}. - State of keyboard modifiers (Shift/Ctrl/Alt/Meta) is returned in \Param{1}. - The key which to query is specified in \Param{0}. + Deposits the state of the specified keyboard key into Parameter:0. + State of keyboard modifiers (Shift/Ctrl/Alt/Meta) is returned in Parameter:1. + The key which to query is specified in Parameter:0. FUNCTION 3 Basic MEMLoadBasic(); @@ -55,13 +55,10 @@ GROUP 1 System FUNCTION 6 Locale LOCSetLocale(DPARAMS[0],DPARAMS[1]); DOCUMENTATION - Set the locale code specified in \Param{0,1} as upper-case ASCII letters. - \Param{0} takes the first letter and \Param{1} takes the second letter. - For example: - \begin{description}\itemsep0pt - \item English:\MonoSp{~\Param{0}\textless-$45} ('E') and \MonoSp{\Param{1}\textless-$4E} ('N') - \item French:\MonoSp{~\Param{0}\textless-$46} ('F') and \MonoSp{\Param{1}\textless-$52} ('R') - \end{description} + Set the locale code specified in Parameters:0,1 as upper-case ASCII letters. + Parameter:0 takes the first letter and Parameter:1 takes the second letter. + + For example: French (FR) would require Parametr 0 being $46 and Parameter 1 being $52 FUNCTION 7 System Reset ResetSystem(); diff --git a/firmware/common/config/system/group3_fileio.inc b/firmware/common/config/system/group3_fileio.inc index b06eb4cbf..4cfbca2d1 100644 --- a/firmware/common/config/system/group3_fileio.inc +++ b/firmware/common/config/system/group3_fileio.inc @@ -28,58 +28,45 @@ GROUP 3 File I/O *DERROR = FIOReadFile(DSPGetStdString(DCOMMAND,4),DSPGetInt16(DCOMMAND,6),DCOMMAND); DOCUMENTATION Load a file by name into memory. On input: - - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename string; - \item \Param{2,3} contains the location to write the data to. If the - address is \MonoSp{$FFFF}, the file will instead be loaded into the + + Parameters:0,1 points to the length-prefixed filename string; + Parameters:2,3 contains the location to write the data to. If the + address is $FFFF, the file will instead be loaded into the graphics working memory, used for sprites, tiles, images. - \end{compactitem} - + On output: - - \begin{compactitem} - \item \Param{0} contains an error/status code. - \end{compactitem} + Parameter:0 contains an error/status code. + FUNCTION 3 Store File *DERROR = FIOWriteFile(DSPGetStdString(DCOMMAND,4),DSPGetInt16(DCOMMAND,6),DSPGetInt16(DCOMMAND,8)); DOCUMENTATION Saves data in memory to a file. On input: + + Parameters:0,1 points to the length-prefixed filename string; + Parameters:2,3 contains the location to read data from; + Parameters:4,5 specified the number of bytes to store. - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename string; - \item \Param{2,3} contains the location to read data from; - \item \Param{4,5} specified the number of bytes to store. - \end{compactitem} - - On output: - - \begin{compactitem} - \item \Param{0} contains an error/status code. - \end{compactitem} + On output: + Parameter:0 contains an error/status code. + FUNCTION 4 File Open *DERROR = FIOOpenFileHandle(DPARAMS[0],DSPGetStdString(DPARAMS,1),DPARAMS[3]); DOCUMENTATION Opens a file into a specific channel. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to open; - \item \Param{1,2} points to the length-prefixed filename string; - \item \Param{3} contains the open mode. See below. - \end{compactitem} + + Parameter:0 contains the file channel to open; + Parameters:1,2 points to the length-prefixed filename string; + Parameter:3 contains the open mode. See below. Valid open modes are: - - \begin{compactitem} - \item 0 opens the file for read-only access; - \item 1 opens the file for write-only access; - \item 2 opens the file for read-write access; - \item 3 creates the file if it doesn't already exist, truncates it if it + 0 opens the file for read-only access; + 1 opens the file for write-only access; + 2 opens the file for read-write access; + 3 creates the file if it doesn't already exist, truncates it if it does, and opens the file for read-write access. - \end{compactitem} - + Modes 0 to 2 will fail if the file does not already exist. If the channel is already open, the call fails. Opening the same file more than once on different channels has undefined behaviour, and is not @@ -90,20 +77,16 @@ GROUP 3 File I/O DOCUMENTATION Closes a particular channel. On input: - \begin{compactitem} - \item \Param{0} contains the file channel to close. - \end{compactitem} - + Parameter:0 contains the file channel to close. + FUNCTION 6 File Seek *DERROR = FIOSeekFileHandle(DPARAMS[0],DSPGetInt32(DPARAMS,1)); DOCUMENTATION Seeks the file opened on a particular channel to a location. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to operate on; - \item \Param{1,2,3,4} contains the file location. - \end{compactitem} - + + Parameter:0 contains the file channel to operate on; + Parameters:1..4 contains the file location. + You can seek beyond the end of a file to extend the file. However, whether the file size changes when the seek happens, or when you perform the write is undefined behavior. @@ -116,16 +99,13 @@ GROUP 3 File I/O } DOCUMENTATION Returns the current seek location for the file opened on a particular channel. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to operate on. - \end{compactitem} - + + Parameter:0 contains the file channel to operate on. + On output: - - \begin{compactitem} - \item \Param{1,2,3,4} contains the seek location within the file. - \end{compactitem} + + Parameters:1..4 contains the seek location within the file. + FUNCTION 8 File Read { @@ -135,19 +115,15 @@ GROUP 3 File I/O } DOCUMENTATION Reads data from an opened file. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to operate on. - \item \Param{1,2} points to the destination in memory, - or \MonoSp{$FFFF} to read into graphics memory. - \item \Param{2,3} contains the amount of data to read. - \end{compactitem} + + Parameter:0 contains the file channel to operate on. + Parameters:1,2 points to the destination in memory, + or $FFFF to read into graphics memory. + Parameters:2,3 contains the amount of data to read. On output: - - \begin{compactitem} - \item \Param{3,4} is updated to contain the amount of data actually read. - \end{compactitem} + + Parameters:3,4 is updated to contain the amount of data actually read. Data is read from the current seek position, which is advanced after the read. @@ -159,18 +135,14 @@ GROUP 3 File I/O } DOCUMENTATION Writes data to an opened file. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to operate on; - \item \Param{1,2} points to the data in memory; - \item \Param{3,4} contains the amount of data to write. - \end{compactitem} - - On output: - - \begin{compactitem} - \item \Param{3,4} is updated to contain the amount of data actually written. - \end{compactitem} + + Parameter:0 contains the file channel to operate on; + Parameters:1,2 points to the data in memory; + Parameters:3,4 contains the amount of data to write. + + On output: + Parameters:3,4 is updated to contain the amount of data actually written. + Data is written to the current seek position, which is advanced after the write. @@ -182,17 +154,12 @@ GROUP 3 File I/O } DOCUMENTATION Returns the current size of an opened file. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to operate on. - \end{compactitem} + + Parameter:0 contains the file channel to operate on. On output: - - \begin{compactitem} - \item \Param{1,2,3,4} contains the size of the file. - \end{compactitem} - + Parameters:1..4 contains the size of the file. + This call should be used on open files, and takes into account any buffered data which has not yet been written to disk. Consequently, this may return a different size than Function 3,16 "File Stat". @@ -203,11 +170,10 @@ GROUP 3 File I/O } DOCUMENTATION Extends or truncates an opened file to a particular size. On input: - - \begin{compactitem} - \item \Param{0} contains the file channel to operate on; - \item \Param{1,2,3,4} contains the new size of the file. - \end{compactitem} + + Parameter:0 contains the file channel to operate on; + Parameters:1..4 contains the new size of the file. + FUNCTION 12 File Rename { @@ -216,10 +182,8 @@ GROUP 3 File I/O DOCUMENTATION Renames a file. On input: - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed string for the old name; - \item \Param{2,3} points to the length-prefixed string for the new name. - \end{compactitem} + Parameters:0,1 points to the length-prefixed string for the old name; + Parameters:2,3 points to the length-prefixed string for the new name. Files may be renamed across directories. @@ -229,10 +193,8 @@ GROUP 3 File I/O } DOCUMENTATION Deletes a file or directory. On input: - - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename string. - \end{compactitem} + + Parameters:0,1 points to the length-prefixed filename string. Deleting a file which is open has undefined behaviour. Directories may only be deleted if they are empty. @@ -244,9 +206,7 @@ GROUP 3 File I/O DOCUMENTATION Creates a new directory. On input: - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename string. - \end{compactitem} + Parameters:0,1 points to the length-prefixed filename string. FUNCTION 15 Change Directory { @@ -254,10 +214,8 @@ GROUP 3 File I/O } DOCUMENTATION Changes the current working directory. On input: - - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed path string. - \end{compactitem} + + Parameters:0,1 points to the length-prefixed path string. FUNCTION 16 File Stat { @@ -269,25 +227,18 @@ GROUP 3 File I/O } DOCUMENTATION Retrieves information about a file by name. On input: + + Parameters:0,1 points to the length-prefixed filename string. - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename string. - \end{compactitem} - - On output: - - \begin{compactitem} - \item \Param{0,1,2,3} contains the length of the file; - \item \Param{4} contains the attributes bit-field of the file. - \end{compactitem} - + Parameters:0..3 contains the length of the file; + Parameter:4 contains the attributes bit-field of the file. + If the file is open for writing, this may not return the correct size due to buffered data not having been flushed to disk. - File attributes are a bitfield as follows: + File attributes are a bitfield as follows: 0,0,0,Hidden, Read Only, Archive, + System, Directory. - \newline - \ParamBits{File attributes}{0}{0}{0}{Hidden}{Read only}{Archive}{System}{Directory} FUNCTION 17 Open Directory { @@ -296,9 +247,7 @@ GROUP 3 File I/O DOCUMENTATION Opens a directory for enumeration. On input: - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename string. - \end{compactitem} + Parameters:0,1 points to the length-prefixed filename string. Only one directory at a time may be opened. If a directory is already open when this call is made, it is automatically closed. However, an @@ -318,16 +267,12 @@ GROUP 3 File I/O DOCUMENTATION Reads an item from the currently open directory. On input: - \begin{compactitem} - \item \Param{0,1} points to a length-prefixed buffer for returning the filename. - \end{compactitem} - - \begin{compactitem} - \item \Param{0,1} is unchanged, but the buffer is updated to contain the + Parameters:0,1 points to a length-prefixed buffer for returning the filename. + + Parameters:0,1 is unchanged, but the buffer is updated to contain the length-prefixed filename (without any leading path); - \item \Param{2,3,4,5} contains the length of the file; - \item \Param{6} contains the file attributes, as described by Function 3,16 "File Stat". - \end{compactitem} + Parameters:2..5 contains the length of the file; + Parameter:6 contains the file attributes, as described by Function 3,16 "File Stat". If there are no more items to read, this call fails and an error is flagged. @@ -342,34 +287,28 @@ GROUP 3 File I/O *DERROR = FIOCopyFile(DSPGetStdString(DPARAMS, 0), DSPGetStdString(DPARAMS, 2)); DOCUMENTATION Copies a file. On input: - - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed old filename; - \item \Param{2,3} points to the length-prefixed new filename. - \end{compactitem} - + + Parameters:0,1 points to the length-prefixed old filename; + Parameters:2,3 points to the length-prefixed new filename. + Only single files may be copied, not directories. FUNCTION 21 Set file attributes *DERROR = FIOSetFileAttributes(DSPGetStdString(DPARAMS, 0), DPARAMS[2]); DOCUMENTATION Sets the attributes for a file. On input: - - \begin{compactitem} - \item \Param{0,1} points to the length-prefixed filename; - \item \Param{2} is the attribute bitfield. (See Stat File for details.) - \end{compactitem} - + + Parameters:0,1 points to the length-prefixed filename; + Parameter:2 is the attribute bitfield. (See Stat File for details.) + The directory bit cannot be changed. Obviously. FUNCTION 32 List Filtered FIODirectory(DSPGetString(DCOMMAND,4)); DOCUMENTATION Prints a filtered file listing of the current directory to the console. On input: - - \begin{compactitem} - \item \Param{0,1} points to the filename search string. - \end{compactitem} - + + Parameters:0,1 points to the filename search string. + Files will only be shown if the name contains the search string (ie: a substring match). diff --git a/firmware/common/scripts/makedispatch.py b/firmware/common/scripts/makedispatch.py index 77421edda..52b9074ba 100755 --- a/firmware/common/scripts/makedispatch.py +++ b/firmware/common/scripts/makedispatch.py @@ -27,8 +27,7 @@ DOCS_DIR = os.path.join(ROOT_DIR , 'documents' , 'release' , 'source') CFG_DIR = os.path.join(ROOT_DIR , 'firmware' , 'common' , 'config' ) CFG_FILE = os.path.join(CFG_DIR , 'dispatch.config' ) -TEX_IN_FILE = os.path.join(DOCS_DIR , 'api.tex.in' ) -TEX_OUT_FILE = os.path.join(DOCS_DIR , 'api.tex' ) +TEX_OUT_FILE = os.path.join(DOCS_DIR , 'api.gen.md' ) ANCHORS = ( 'GROUP' , 'FUNCTION' , 'DOCUMENTATION' ) @@ -199,45 +198,31 @@ def renderTableHead(self,fn_table_tex,header): def renderTableTail(self,fn_table_tex): fn_table_tex.append('\\end{longtable*}') + def replaceParam(self,txt,oldDesc,newDesc): + return txt.replace("\\Param{"+oldDesc+"}","Parameters:"+newDesc) + # generate documentation source from template def renderDocs(self): group_ids = sorted(self.groups) - fn_table_tex = [] + fn_table_tex = ['---','fontfamilyoptions: sfdefault','fontsize: 12pt','---',''] - fn_table_tex.append('% makedispatch: BEGIN') for group_id in group_ids: group = self.groups[group_id] fn_ids = sorted(group.functions) - header = "Group %s - %s Functions" % (group_id , group.groupName) - # fn_ids = sorted([ fn_id for fn_id in group.functions.keys() ]) - - if group_id != group_ids[0]: - fn_table_tex.append('\\pagebreak') - self.renderTableHead(fn_table_tex , header) - + fn_table_tex.append("# Group {0} : {1}".format(group_id,group.groupName)) + fn_ids = sorted([ fn_id for fn_id in group.functions.keys() ]) for fn_id in fn_ids: - function = group.functions[fn_id] - fn_name = function.funcName - docLines = function.docLines if function.docLines[-1] else function.docLines[0:-2] - - fn_table_tex.append('\\ApiFnRow{%s}{%s}{' % (fn_id , fn_name)) - fn_table_tex.extend([ '\n'.join(docLines) , '}' ]) + function = group.functions[fn_id] + fn_name = function.funcName + fn_table_tex.append("## Function {0} : {1}".format(fn_id,fn_name)) + docLines = function.docLines if function.docLines[-1] else function.docLines[0:-2] + desc = " ".join(docLines) + fn_table_tex.append(desc) + fn_table_tex.append("\\newpage") - self.renderTableTail(fn_table_tex) - fn_table_tex.extend([ '' , '% makedispatch: END' , '' ]) - - with open(TEX_IN_FILE , 'r' , encoding='utf-8' ) as texi_file: - tex_in_lines = texi_file.readlines() with open(TEX_OUT_FILE , 'w' , encoding='utf-8' , newline='\n') as texi_file: - rev_date = str(date.fromtimestamp(os.stat(CFG_FILE).st_ctime)) - tex_subst = '\n'.join(fn_table_tex).replace(r'$' , '\$').replace('\\' , r'\\') - - texi_file.write('%\n% This file is automatically generated\n%\n\n\n') - for tex_in_line in tex_in_lines: - tex_out = re.sub(r'@DATE@' , rev_date , tex_in_line) - tex_out = re.sub(r'@FN_TABLES@' , tex_subst , tex_out ) - - texi_file.write(tex_out) + for tex_in_line in fn_table_tex: + texi_file.write(tex_in_line+"\n\n") def sendFile(self , in_file): # accept input file as path or filename - no assumption of PWD diff --git a/release/Makefile b/release/Makefile index f9d9a849a..9e3547998 100644 --- a/release/Makefile +++ b/release/Makefile @@ -82,11 +82,7 @@ all: documentation # *************************************************************************************** documentation: - # generate ODTs (requires 'pandoc') - pandoc -f latex -t odt -o $(DOCDIR)api.odt $(DOCDIR)source$(S)api.tex - # generate PDFs (requires 'texlive-latex', 'texlive-latexextra', 'texlive-latex-recommended') - # Yes, twice! The TOC and tables require two passes - pdflatex -output-directory=$(DOCDIR) $(DOCDIR)source$(S)api.tex - pdflatex -output-directory=$(DOCDIR) $(DOCDIR)source$(S)api.tex # generate BASIC PDF (requires 'pandoc') pandoc $(DOCDIR)basic.md -o $(DOCDIR)basic.pdf + # generate API PDF (requires 'pandoc') + pandoc $(DOCDIR)api.md $(DOCDIR)source$(S)api.gen.md -o $(DOCDIR)api.pdf From 2143a6b96e6d3ce298ad89d90accec9615b409a9 Mon Sep 17 00:00:00 2001 From: Paul Robson Date: Thu, 25 Apr 2024 17:36:36 +0100 Subject: [PATCH 2/2] fixes --- .gitignore | 1 - documents/release/api.md | 585 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 585 insertions(+), 1 deletion(-) create mode 100644 documents/release/api.md diff --git a/.gitignore b/.gitignore index 73283f815..f07c2e3d3 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,6 @@ firmware/sources/interface/*.o *.dump *.log *.aux -documents/release/api.* documents/release/basic.pdf basic/scripts/__pycache__/tokens.cpython-311.pyc firmware/common/include/data/prompt.h diff --git a/documents/release/api.md b/documents/release/api.md new file mode 100644 index 000000000..4d16d7148 --- /dev/null +++ b/documents/release/api.md @@ -0,0 +1,585 @@ +--- +fontfamilyoptions: sfdefault +fontsize: 12pt +--- + +# Neo6502 Messaging API + +The Neo6502 API is a messaging system. There are no methods to access +the hardware directly. Messages are passed via the block of memory from +`$FF00` to `$FF0F`, as specified in the \"API Messaging Addresses\" +table on the following page. + +The kernel include file `documents/release/neo6502.inc` specifies the +beginning of this address range as the identifier `ControlPort`, along +with the addresses of `WaitMessage` and `SendMessage` (described later), +various related kernel jump vectors, and some helper functions. + +The application include files `examples/assembly/neo6502.asm.inc` and +`examples/C/neo6502.h` also specify the beginning of this address range +as the identifier `ControlPort`. The assembly include also specifies +`ControlPort` and the other controls as `API_COMMAND`, `API_FUNCTION`, +`API_ERROR`, `API_STATUS`, and `API_PARAMETERS`. The C header also +specifies `ControlPort` and the other controls as `API_COMMAND_ADDR`, +`API_FUNCTION_ADDR`, `API_ERROR_ADDR`, `API_STATUS_ADDR`, and +`API_PARAMETERS_ADDR`. + +API Commands/Functions are grouped by functionality. For example, Group +1 are system-related, and Group 2 are console-I/O-related. + +Command/Function Parameters are notated in this document as `Params[0]` +through `Params[7]`, or as a list or range (eg: `Params[1,2]`, +`Params[0..7]`). Note that these are referring to a mapping to memory +locations. The numbers represent offsets from the Parameters base +address `$FF04`. Ie: the actual bytes are not necessarily all distinct +\"parameters\" in the conventional sense. Depending on the routine, a +logical parameter may be an individual byte, one or more bits of a byte +interpreted as a composite or bit-field, or multiple adjacent bytes +interpreted as 16 or 32 bit values. For example, the list `Params[0,1]` +would indicate a single logical parameter, comprised of the two adjacent +bytes `$FF04` and `$FF05`. The range `Params[4..7]` would indicate a +single logical parameter, spanning consecutive bytes between `$FF08` and +`$FF0B`. + +**Note that strings referenced by Parameters are not ASCIIZ, but are +length-prefixed.** The first byte represents the length of the string +(not counting itself). The string begins at the second byte. +Consequently, strings must be 256 bytes or less (not counting the length +header). + +\newpage + +**API Messaging Addresses**\ + ++------------+---+------------------------+------------------------+ +| Group | | Group selector and | | +| | | status. Writing a | | +| | | non-zero value to this | | +| | | location triggers the | | +| | | routine specified in | | +| | | `$FF01`. The system | | +| | | will respond by | | +| | | setting the 'Error', | | +| | | 'Information', and | | +| | | 'Parameters' values | | +| | | appropriately. Upon | | +| | | completion, this | | +| | | memory location will | | +| | | be will cleared. | | ++------------+---+------------------------+------------------------+ +| Function | | A command or function | | +| | | within the selected | | +| | | Group. For example, | | +| | | Group 1 Function 0 | | +| | | writes a value to the | | +| | | console; and Group 1 | | +| | | Function 1 reads the | | +| | | keyboard. | | ++------------+---+------------------------+------------------------+ +| Error | | Return any error | | +| | | values, 0 = no error. | | ++------------+---+------------------------+------------------------+ +| | | `bit-7` | Set (`1`) if the | +| | | | ESCape key has been | +| | | | pressed. This is not | +| | | | automatically reset. | ++------------+---+------------------------+------------------------+ +| | | `bit-6` | *unused* | ++------------+---+------------------------+------------------------+ +| | | `bit-5` | *unused* | ++------------+---+------------------------+------------------------+ +| | | `bit-4` | *unused* | ++------------+---+------------------------+------------------------+ +| | | `bit-3` | *unused* | ++------------+---+------------------------+------------------------+ +| | | `bit-2` | *unused* | ++------------+---+------------------------+------------------------+ +| | | `bit-1` | *unused* | ++------------+---+------------------------+------------------------+ +| | | `bit-0` | *unused* | ++------------+---+------------------------+------------------------+ +| Parameters | | This memory block is | | +| | | notated in this | | +| | | document as | | +| | | `Params[0]` through | | +| | | `Params[7]`, or as a | | +| | | composite list or | | +| | | range (eg: | | +| | | `Params[1,2]`, | | +| | | `Params[0..7]`). Some | | +| | | Functions require | | +| | | Parameters in these | | +| | | locations and some | | +| | | return values in these | | +| | | locations; yet others | | +| | | do neither. | | ++------------+---+------------------------+------------------------+ +| Reserved | | Reserved. | | ++------------+---+------------------------+------------------------+ + +\newpage + +## API Interfacing Protocol + +Neo6502 application programmers should interact with the API per the +following algorithm: + +1. Wait for any pending command to complete. There is a subroutine + `WaitMessage` which does this for the developer. + +2. Setup the Function code at `$FF01`; and any Parameters across + `$FF04..$FF0B`. To print a character for example, set `$FF01` to + `$06` and set `$FF04` to the character's ASCII value. To draw a + line, set `$FF01` to `$02` and set `$FF04..$FF0B` as four 16-bit + pixel coordinates: + + **Params** + +3. Setup the command code at `$FF00`. This triggers the routine; so + mind that the Function code and Parameters are setup sanely prior. + On a technical point, both implementations process the message + immediately on write. + +4. Optionally, wait for completion. Most commands (eg: writing to the + console) do not require waiting, as any subsequent command will + wait/queue as per step 1. Query commands (e.g. reading from the + keyboard queue), return a value in a parameter. Programs must wait + until the control address `$FF00` has been cleared before reading + the result of a query. + +\newpage + +There is a support function `SendMessage`, which in-lines the command +and function. E.g.: this code from the Kernel: + +jsr KSendMessage ; send message for command 2,1 (read keyboard) + +.byte 2,1 + +jsr KWaitMessage ; wait to receive the result message + +lda DParameters ; read result + +The instructions above are equivalent to the following explicit steps: + +lda #1 + +sta DFunction + +lda #2 + +sta DCommand ; trigger API function 2,1 (read keyboard) + +Loop: + +lda DCommand ; load the result - non-zero until the routine\'s +completion + +bne Loop ; wait for API routine to complete + +lda DParameters ; read result (a key-code) + +\newpage + +## Mathematical Interface + +The mathematical interface of the API functions largely as a helper +system for the BASIC interpreted, but it is open to any developer who +wishes to avail themselves of the functionality. It is strongly advised +that function 32 of Group 4 (NumberToDecimal) is not used as this is +extremely specific and as such is not documented. + +The interface is used in a stack environment, but is designed so it +could be used in either a stack environment or a fixed location +environment. The Neo6502 BASIC stack is also 'split', so elements are +not consecutive, though they can be. + +Parameter 0 and 1 specify the address of the registers 1 and 2. Register +1 starts at this address, Register 2 starts at the next address. +Parameter 2 specifies the step to the next register. Therefore they are +interleaved by default at present. + +So if Parameters 0 and 1 are 8100 and Parameter 2 is 4, the 5 byte +registers are + +Register 1: 8100,8104,8108,810C,8110 + +Register 2: 8101,8105,8109,810D,8111 + +Bytes 1-4 of the 'register' are the number, which can be either an +integer (32 bit signed) or a standard 'C' float (e.g. the IEEE Single +Precision Float format). Bit 0 is the type byte, and the relevant bit is +bit 6, which is set to indicate bytes 1-4 are a float value, and is set +on return. + +Binary functions that use int and float combined (one is int and one is +float) normally return a float. + +\newpage + +# Console Codes + +The following are console key codes. They can be printed in BASIC +programs using `chr$(n)`, and are also related to the character keys +returned by `inkey$()`. The `key()` function uses physical key numbers. +Some control codes do not have corresponding keyboard keys; and some +console outputs are not yet implemented. + +`Backspace` (8), `Tab` (9), `Enter/CR` (13), `Escape` (27), and the +printable characters (32..127) are the standard ASCII set. Other typical +control keys (eg: Home and arrows) are mapped into the 0..31 range. + +**Console Key Codes - Non-Printable**\ + ++----+----+-------------+-------------------------------+ +| 1 | A | Left Arrow | Cursor Left | ++----+----+-------------+-------------------------------+ +| 4 | D | Right Arrow | Cursor Right | ++----+----+-------------+-------------------------------+ +| 5 | E | Insert | Insertion Mode | ++----+----+-------------+-------------------------------+ +| 6 | F | Page Down | Cursor Page Down | ++----+----+-------------+-------------------------------+ +| 7 | G | End | Cursor Line End | ++----+----+-------------+-------------------------------+ +| 8 | H | Backspace | Delete Character Left | ++----+----+-------------+-------------------------------+ +| 9 | I | Tab | Tab Character | ++----+----+-------------+-------------------------------+ +| 10 | J | | Line Feed | ++----+----+-------------+-------------------------------+ +| 12 | L | | Clear Screen | ++----+----+-------------+-------------------------------+ +| 13 | M | Enter | Carriage Return (Accept Line) | ++----+----+-------------+-------------------------------+ +| 18 | R | Page Up | Cursor Page Up | ++----+----+-------------+-------------------------------+ +| 19 | S | Down | Cursor Down | ++----+----+-------------+-------------------------------+ +| 20 | T | Home | Cursor Line Begin | ++----+----+-------------+-------------------------------+ +| 22 | V | | Cursor Down (8 Lines) | ++----+----+-------------+-------------------------------+ +| 23 | W | Up | Cursor Up | ++----+----+-------------+-------------------------------+ +| 24 | X | | Cursor Color Inverse | ++----+----+-------------+-------------------------------+ +| 26 | Z | Delete | Delete Character Right | ++----+----+-------------+-------------------------------+ +| 27 | \[ | Escape | Exit | ++----+----+-------------+-------------------------------+ + +**Console Key Codes - Printable**\ + ++-------+-----------+---------------------------+ +| 20-7F | ASCII Set | Standard ASCII Characters | ++-------+-----------+---------------------------+ +| 80-8F | | Set Foreground Color | ++-------+-----------+---------------------------+ +| 90-9F | | Set Background Color | ++-------+-----------+---------------------------+ +| C0-FF | | User-definable Characters | ++-------+-----------+---------------------------+ + +\newpage + +# Graphics + +## Graphics Settings + +Function 5,1 configures the global graphics system settings. Not all +Parameters are relevant for all graphics commands; but all Parameters +will be set by this command. So mind their values. + +The actual color of each drawn pixel will be computed at runtime by +AND'ing the existing pixel color with the value specified in +`Params[0]`, then XOR'ing the result with the value specified in +`Params[1]`. + +The value in `Params[2]` is a flag which determines the paint fill mode +for the Draw Rectangle and Draw Ellipse commands: reset (`0`) for +outline, set (`1`) for solid fill. + +The value in `Params[3]` is the draw extent (window) for the Draw Image +command. + +The value in `Params[4]` is a bit-field of flags for the Draw Image +command, which determine if the image will be inverted (flipped) +horizontally or vertically: `bit-0` for horizontal, `bit-1` for +vertical, reset (`0`) for normal, set (`1`) for inverted. + +For the \"Draw Rectangle\" and \"Draw Ellipse\" commands, the given +order and position of the coordinates are not significant. To be +precise, one is \"a corner\" and the other is \"the opposite corner\". +For the \"Draw Ellipse\" command, these corners are referring to the +bounding-box. The coordinates for an ellipse will lie outside of the +ellipse itself. + +\newpage + +## Graphics Data + +Graphics data files are conventionally named ending in the .gfx suffix; +though this is not mandatory. The format is quite simple. + +**Graphics Data Format**\ + ++--------+-------+--------------------------------+ +| 0 | 1 | Graphics Data Format ID | ++--------+-------+--------------------------------+ +| 1 | Count | Number of 16x16 tiles in use | ++--------+-------+--------------------------------+ +| 2 | Count | Number of 16x16 sprites in use | ++--------+-------+--------------------------------+ +| 3 | Count | Number of 32x32 sprites in use | ++--------+-------+--------------------------------+ +| 4..255 | | Reserved | ++--------+-------+--------------------------------+ +| 256 | Raw | Sprites graphics data | ++--------+-------+--------------------------------+ + +The layout of sprites graphics data is all of the 16x16 tiles, followed +by all the 16x16 sprites, followed by all the 32x32 sprites, all in +their respective orders. As there is currently only about 20kB of +Graphics Memory, these should be used somewhat sparingly. + +Each byte specifies 2 pixels. The upper 4 bits represent the first pixel +colour; and the lower 4 bits represent the second pixel colour. So tiles +and 16x16 sprites occupy 16x16/2 bytes (128 bytes) each. Each 32x32 +sprite occupies 32x32/2 bytes (512 bytes). Colour 0 is transparent for +sprites (colour 9 should be used for a black pixel). + +The release package includes Python scripts for creating graphics files, +which allow you to design graphics using your preferred editing tools +(eg: Gimp, Inkscape, Krita, etc). There is an example in the `crossdev/` +directory, which demonstrates how to get started importing graphics into +the Neo6502. + +\newpage + +## Pixel Colors + +**Pixel Colors**\ + ++-------+-------------------+ +| `$80` | Black/Transparent | ++-------+-------------------+ +| `$81` | Red | ++-------+-------------------+ +| `$82` | Green | ++-------+-------------------+ +| `$83` | Yellow | ++-------+-------------------+ +| `$84` | Blue | ++-------+-------------------+ +| `$85` | Magenta | ++-------+-------------------+ +| `$86` | Cyan | ++-------+-------------------+ +| `$87` | White | ++-------+-------------------+ +| `$88` | Black | ++-------+-------------------+ +| `$89` | Dark Grey | ++-------+-------------------+ +| `$8A` | Dark Green | ++-------+-------------------+ +| `$8B` | Orange | ++-------+-------------------+ +| `$8C` | Dark Orange | ++-------+-------------------+ +| `$8D` | Brown | ++-------+-------------------+ +| `$8E` | Pink | ++-------+-------------------+ +| `$8F` | Light Grey | ++-------+-------------------+ + +\newpage + +# Tile Maps + +A tile map occupies an area of user memory in 65C02. It is comprised of +three meta-data bytes, followed by one byte for each tile, which is it's +tile number in the graphic file (refer to the following section). + +`F0-FF` are special reserved tile numbers, `F0` is a transparent tile; +and `F1-FF` are a solid tile in the current palette colour. The format +is very simple. + +**Tile Maps Format**\ + ++-----+--------+---------------------------------------------+ +| 0 | 1 | Graphics Data Format ID | ++-----+--------+---------------------------------------------+ +| 1 | Width | Width of tile-map (number of tiles) | ++-----+--------+---------------------------------------------+ +| 2 | Height | Height of tile-map (number of tiles) | ++-----+--------+---------------------------------------------+ +| 3.. | Raw | Tiles graphics data (width \* height bytes) | ++-----+--------+---------------------------------------------+ + +\newpage + +# Sprites + +The Neo6502 graphics system has one sprite layer (z-plane) in the +conventional sense. Technically, there is no \"sprite layer\", per-se. +The system uses palette manipulation to create, what is in practice, a +pair of 4-bit bit-planes. The sprite graphics are in the upper nibble, +the background is in the lower nibble, and the background is drawn only +if the sprite graphic layer is zero. It's this top nibble which is read +by Function 5,36 \"Read Sprite Pixel\". + +Function 6,2 sets or updates a sprite. These parameters (eg: the X and Y +coordinates) cannot be set independently. To retain/reuse the current +value of a parameter for a subsequent call, set each of the associated +byte(s) to `$80` (eg: `$80,$80,$80,$80` for coordinates). + +The 'Sprite' Parameter `Params[0]` specifies the index of the sprite in +the graphics system. Sprite 0 is the turtle sprite. + +`Params[1,2]`,`Params[3,4]` specifies the X and Y screen coordinates. + +Bits 0-5 of the 'Image' Parameter `Params[5]` specify the index of a +specific graphic within the sprites data. Bit 6 of the 'Image' Parameter +specifies the sprite dimensions: reset (`0`) for 16x16, set (`1`) for +32x32. In practice, the index is the same as the sprite number +(`$80`-`$BF` for 16x16 sprites, `$C0`-`$FF` for 32x32 sprites), but +without bit-7 set. + +The value in `Params[6]` specifies a bit-field of flags, which +determines if the graphic will be inverted (flipped) horizontally or +vertically: `bit-0` for horizontal, `bit-1` for vertical, reset (`0`) +for normal, set (`1`) for inverted. + +`Params[7]` specifies the anchor alignment. + +\newpage + +## Sprite Anchors + +The table below shows the valid anchor alignments for a sprite. The +anchor position is the origin of the relative coordinate given. That is, +coordinates 0,0 of the sprite will coincide with one of the positions +shown in the table below. The default anchor alignment is zero +(middle-center). + +**Sprite Anchors**\ + ++------------+-------------+------------+ +| 7 | 8 | 9 | ++------------+-------------+------------+ +| | | | ++------------+-------------+------------+ +| | | | ++------------+-------------+------------+ +| 4 | 0/5 | 6 | ++------------+-------------+------------+ +| | | | ++------------+-------------+------------+ +| | | | ++------------+-------------+------------+ +| 1 | 2 | 3 | ++------------+-------------+------------+ + +To the right are two examples. Assume this is a 32x32 sprite. In the +upper example, the anchor point is at 8, the top-center. Considering the +origin at the bottom-left, this sprite is drawn at 16,32, the midpoint +of the top of the square. + +In the lower example, the anchor point is at 0; and this sprite is drawn +at 16,16 (the middle of the square). The anchor point should be +something like the centre point. So for a walking character, this might +be anchor point 2 (the bottom-center). + +\newpage + +# Sound + +Function 8,4 queues a sound. Queued sounds are played sequentially, each +after the previous has completed, such that sounds within a channel +queue will not conflict, interrupt, or overlap. + +Frequency is in units of Hertz. Duration is in units of 100ths of a +second. Slide is a gradual linear change in frequency, in units of Hz +per 100th of a second. Sound target type 0 is the beeper. Currently, the +beeper is the only available sound target. + +**Queue Sound Parameters** + ++-------+-------+-------+-------+-------+-------+-------+-------+ +| FF04 | FF05 | FF06 | FF07 | FF08 | FF09 | FF0A | FF0B | ++-------+-------+-------+-------+-------+-------+-------+-------+ +|Channel| Freq | Freq | Length| Length| Slide | Slide | Target| +| | Low | High | Low | High | Low | High | | ++-------+-------+-------+-------+-------+-------+-------+-------+ + +\newpage + +# Sound Effects + +Function 8,5 plays a sound effect immediately. These will be synthesised +to the best ability of the available hardware. These are predefined as: + ++------+------------+ +| `0` | positive | ++------+------------+ +| `1` | negative | ++------+------------+ +| `2` | error | ++------+------------+ +| `3` | confirm | ++------+------------+ +| `4` | reject | ++------+------------+ +| `5` | sweep | ++------+------------+ +| `6` | coin | ++------+------------+ +| `7` | las70 | ++------+------------+ +| `8` | powerup | ++------+------------+ +| `9` | victory | ++------+------------+ +| `10` | defeat | ++------+------------+ +| `11` | fanfare | ++------+------------+ +| `12` | alarm 1 | ++------+------------+ +| `13` | alarm 2 | ++------+------------+ +| `14` | alarm 3 | ++------+------------+ +| `15` | ringtone 1 | ++------+------------+ +| `16` | ringtone 2 | ++------+------------+ +| `17` | ringtone 3 | ++------+------------+ +| `18` | danger | ++------+------------+ +| `19` | expl100 | ++------+------------+ +| `20` | expl50 | ++------+------------+ +| `21` | expl20 | ++------+------------+ +| `22` | las30 | ++------+------------+ +| `23` | las10 | ++------+------------+ + +\newpage + +# API Functions + +The following tables are a comprehensive list of all supported API +functions. + +For the convenience of application programmers, the application include +files `examples/C/neo6502.h` and `examples/assembly/neo6502.asm.inc` +define macros for these groups, their functions, and common parameters +(colors, musical notes, etc).