|
CB2 micro
Technical manual
|




| connection | signal |
| 1 | Video blue |
| 2 | Video red |
| 3 | Video green |
| 4 | VSYNC |
| 5 | HSYNC / CSYNC |
| 6 | + 5V |
| 7 | Audio |
| 8 | Video BAS |
| 9 | Clock Sync |
| casing | GND (0V) |






| start address | end address | bytes | function |
| 0 | 689 | 690 | character |
| 690 | 1379 | 690 | attributes |
| 1380 | 2759 | 1380 | Backup for monitor |


| start address | end address | bytes | function |
| 0 | 2435 | 2436 | pixel information |
| 2436 | 2750 | 315 | attributes |
| 2751 | 2759 | 9 | unused |


| start address | end address | bytes | function |
| 0 | 2279 | 2280 | pixel information |
| 2280 | 2759 | 480 | unused |

| start address | end address | bytes | function |
| 0 | 2435 | 2436 | pixel information |
| 2436 | 2759 | 324 | unused |

| start address | end address | bytes | function |
| 0 | 689 | 690 | character |
| 690 | 1379 | 690 | attributes |
| 1448 | 2727 | 1280 | character set |
| 2728 | 2759 | 32 | unused |



| start address | end address | bytes | function |
| 0 | 1023 | 1024 | pixel information |
| 1024 | 2759 | 1736 | Backup for monitor |

| start address | end address | bytes | function |
| 0 | 689 | 690 | character |
| 690 | 2609 | 1920 | character set |
| 2610 | 2759 | 150 | unused |


.include "M644Pdef.inc" |
.include "M644Pdef.inc" |
| bit | Surname | function |
| 7 | --- | currently not used |
| 6 | UPAR | 0 = driver uses parallel port |
| 5 | ISLIB | 0 = program is a library |
| 4 | EXEC | 0 = Program can be started from the main menu |
| 3 ... 0 | ICOL | ICON foreground color |
| color code | colour | file type |
| 0000 | black | not used (invisible) |
| x001 | blue | not used (lack of contrast) |
| X010 | red | Reserved for loader |
| x011 | magenta | Default for drivers |
| x100 | green | Default for libraries |
| x101 | cyan | Default for binary programs |
| x110 | yellow | Reserved for non-bootable BASIC programs (text) |
| x111 | White | Reserved for BASIC programs |
| Type | flag byte | program type |
| "B" | 0xF7 | dates |
| "N" | 0xE5 | binary |
| "N" | 0xd4 | Binary library |
| "N" | 0xf3 | driver |
| "N" | 0xB3 | Driver, uses parallel port |
| "L" | 0xF2 | Loader |
| bit | function |
| 7 | Not occupied |
| 6 | Program contains a font |
| 5 | Program contains a file system driver |
| 4 | Program contains drivers for external / internal memory |
| 3 | Program contains BASIC extension |
| 2 | Program contains sound routines |
| 1 | Program contains cyclic routine called in every frame |
| 0 | Program contains video drivers |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x00 | 0x00 | 12 | program name |
| --- | 0x0c | 1 | "N" as identifier for binary programs |
| --- | 0x0d | 1 | Flagbyte 1, usually 0xe5 |
| --- | 0x0e | 1 | Flagbyte 2, usually 0xff |
| --- | 0x0f | 1 | Library number, should be 0xff |
| 0x08 | 0x10 | 12 | Icon data |
| 0x0e | 0x1c | 2 | can be used arbitrarily |
| 0x0f | 0x1e | 2 | can be used arbitrarily |
| 0x10 | 0x20 | 2 | Start the program |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x00 | 0x00 | 12 | program name |
| --- | 0x0c | 1 | "N" as identifier for binary programs |
| --- | 0x0d | 1 | Flag byte 1 = 0xd4 |
| --- | 0x0e | 1 | Flagbyte 2 = 0xff or additional functions |
| --- | 0x0f | 1 | library number |
| 0x08 | 0x10 | 12 | Icon data |
| 0x0e | 0x1c | 2 | can be used arbitrarily |
| 0x0f | 0x1e | 2 | can be used arbitrarily |
| 0x10 | 0x20 | 2 | Jump to the routine Nr.0 |
| 0x11 | 0x22 | 2 | Jump to the routine Nr.1 |
| 0x12 | 0x24 | 2 | Jump to routine no.2, further routines up to 119 possible |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x00 | 0x00 | 12 | program name |
| --- | 0x0c | 1 | "N" as identifier for binary programs |
| --- | 0x0d | 1 | Flagbyte 1 = 0xf4 |
| --- | 0x0e | 1 | Flag byte 2 = 0xf7 |
| --- | 0x0f | 1 | library number |
| 0x08 | 0x10 | 12 | Icon data |
| 0x0e | 0x1c | 2 | should be 0xffff |
| 0x0f | 0x1e | 2 | should be 0xffff |
| 0x10 | 0x20 | 2 | (Jump to) parser routine |
| 0x11 | 0x22 | 2 | Jump to the routine Nr.1 |
| 0x12 | 0x24 | 2 | Jump to routine no.2, further routines up to 119 possible |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x00 | 0x00 | 12 | program name |
| --- | 0x0c | 1 | "N" as identifier for binary programs |
| --- | 0x0d | 1 | Flag byte 1 = 0xd3 |
| --- | 0x0e | 1 | Flag byte 2 = 0xfe |
| --- | 0x0f | 1 | library number |
| 0x08 | 0x10 | 12 | Icon data |
| 0x0e | 0x1c | 2 | Jump to IN expansion or R24 (ereg) set to 40 |
| 0x0f | 0x1e | 2 | Jump to OUT expansion or R24 (ereg) set to 40 |
| 0x10 | 0x20 | 2 | Jump to the (demo) application if program can be started |
| 0x11 | 0x22 | 2 | Jump to INIT video mode (T flag set) or EXIT video mode (T flag cleared) |
| 0x12 | 0x24 | 2 | Jump to the CLS routine |
| 0x13 | 0x26 | 2 | Jump to the character output, characters in R20 |
| 0x14 | 0x28 | 2 | Jump to the routine to set cursor position to XH: XL |
| 0x15 | 0x2a | 2 | Jump to the plot XH: XL |
| 0x16 | 0x2c | 2 | Jump to the newline routine, cursor to the beginning of the next line |
| 0x17 | 0x2e | 2 | Jump to the video output routine |
| 0x18 | 0x30 | 2 | Jump to init routine at system startup |
| 0x19 | 0x32 | 2 | Jump to routine # 9, can go to 119 |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x19 | 0x32 | 2 | Jump to the array READ routine (Page / R20 = pointer, XL = data) |
| 0x1a | 0x34 | 2 | Jump to array WRITE routine (Page / R20 = pointer, XL = data) |
| 0x1b | 0x36 | 2 | Jump to byte READ routine (X +) -> r18 |
| 0x1c | 0x38 | 2 | Jump to byte WRITE routine r18 -> (X +) |
| 0x1d | 0x3a | 2 | Jump to the Word-READ routine (X +) -> r19 / r18 |
| 0x1e | 0x3c | 2 | Jump to Word-WRITE routine r19 / r18 -> (X +) |
| 0x1f | 0x3E | 2 | Jump to the XMEM-CHEXK routine (X = address of the last memory cell or 0 if no XMEM exists) |
| 0x20 | 0x40 | 2 | Jump to the XMEM-CLEAR routine (describes complete XMEM with 0x00) |
| 0x21 | 0x42 | 2 | Jump to routine No.17, can go to 119 |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x21 | 0x42 | 2 | Jump to the frame-INT routine |
| WORD Offset | BYTE offset | Length (bytes) | function |
| 0x22 | 0x44 | 2 | Jump to Envelope Routine (at the end of the frame) |
| 0x23 | 0x46 | 2 | Jump to the notes routine |
| offset | format | content |
| 0 | INTEGER | Return value of the function |
| 2 | INTEGER | Call parameter 1 |
| 4 | INTEGER | Call parameter 2 |
| 6 | INTEGER | Call parameter 3 |
| 8 | INTEGER | Call parameter 4 |
| 10 | INTEGER | Call parameter 5 |
| 12 | BYTE | Number of transferred parameters |
| start address | end address | meaning |
| 0x800 | 0x809 | Level of usable output pins when I / O is disabled (0/1) |
| 0x810 | 0x819 | Data direction of the usable output pins when I / O is disabled (0/1) |
| 0x900 | 0xbff | Driver specific I / O |
| 0x0c00 | 0xffff | currently not used |
| Function name | Name of the API function, also corresponds to the macro call |
| Call without macro | Calling the function when working without macros |
| function Description | Brief description of the function |
| Parameter | Register assignment to the parameters |
| Return values | Register assignment to the return values |
| Register | Registers whose content is changed (except return values) |
| Video Modes | Video modes in which the function is useful. If this table row is missing, the function is applicable in all video modes. |
| function name | api_pushxyz |
| Call without macro | call api_pushxyz |
| function Description | saves the registers X, Y and Z on the stack |
| parameter | --- |
| return values | --- |
| register | R0, R1 |
| function name | api_popxyz |
| Call without macro | jmp api_popxyz |
| function Description | gets the registers X, Y and Z from the stack and executes a RET |
| parameter | --- |
| return values | --- |
| register | X, Y, Z |
| function name | api_pushregs |
| Call without macro | call api_pushregs |
| function Description | saves the registers X, Y and Z as well as R20-R23 on the stack |
| parameter | --- |
| return values | --- |
| register | R0, R1 |
| function name | api_popxyz |
| Call without macro | jmp api_popregs |
| function Description | gets the registers X, Y and Z as well as R20-R23 from the stack and executes a RET |
| parameter | --- |
| return values | --- |
| register | X, Y, Z, R20, R21, R22, R23 |
| function name | api_add |
| Call without macro | call api_add |
| function Description | X = X + R16 / R17 |
| parameter | X, R16, R17 |
| return values | X |
| register | R18 |
| function name | api_sub |
| Call without macro | call api_sub |
| function Description | X = X - R16 / R17 |
| parameter | X, R16, R17 |
| return values | X |
| register | R16 / R17 = -R16 / R17 |
| function name | api_mul |
| Call without macro | call api_mul |
| function Description | X = X * R16 / R17 |
| parameter | X, R16, R17 |
| return values | X |
| register | R16 ... R21 |
| function name | api_div |
| Call without macro | call api_div |
| function Description | X = X / R16 / R17 |
| parameter | X, R16, R17 |
| return values | X = quotient, R18 / R19 = remainder |
| register | R20, R21 |
| function name | api_sin |
| Call without macro | call api_sin |
| function Description | X = 256 * SIN (X) |
| parameter | X (in degrees) |
| return values | X |
| register | Z, R16, R17 |
| function name | api_cos |
| Call without macro | call api_cos |
| function Description | X = 256 * COS (X) |
| parameter | X (in degrees) |
| return values | X |
| register | Z, R16, R17 |
| function name | api_eq |
| Call without macro | call api_eq |
| function Description | returns 1 if X == R16 / R17, otherwise 0 |
| parameter | X, R16, R17 |
| return values | X |
| register | --- |
| function name | api_gt |
| Call without macro | call api_gt |
| function Description | returns 1 if X> R16 / R17, otherwise 0 |
| parameter | X, R16, R17 |
| return values | X |
| register | --- |
| function name | api_lt |
| Call without macro | call api_lt |
| function Description | returns 1 if X <R16 / R17, otherwise 0 |
| parameter | X, R16, R17 |
| return values | X |
| register | --- |
| function name | api_sqr |
| Call without macro | call api_sqr |
| function Description | returns the square root of X, in this case X is unsigned |
| parameter | X |
| return values | X |
| register | R16, R17, R18, R19 |
| function name | api_abs |
| Call without macro | call api_abs |
| function Description | returns the absolute value of X |
| parameter | X |
| return values | X |
| register | --- |
| function name | api_rnd |
| Call without macro | call api_rnd |
| function Description | returns a random number between 0 and X-1 |
| parameter | X |
| return values | X |
| register | R16 ... R19 |
| function name | api_dbit |
| Call without macro | call api_dbit |
| function Description | calculates bit patterns for fonts in video mode 4, corresponds to the DBIT () function in BASIC |
| parameter | X |
| return values | X |
| register | --- |
| function name | api_adc |
| Call without macro | call api_adc |
| function Description | starts the ADC and returns the ADC value. |
| parameter | X = channel (0 ... 7) |
| return values | X = ADC value |
| register | --- |
| function name | api_scale |
| Call without macro | call api_scale |
| function Description | scaling function |
| parameter | The parameters are in the range defined with api_getpartab |
| return values | R16 / R17 = result |
| register | R4-R7, R18, R19 |
| offset | parameter |
| 0 | Y0 |
| 2 | Y1 |
| 4 | X0 |
| 6 | X |
| 8th | X1 |
| function name | api_sync |
| Call without macro | call api_sync |
| function Description | waiting for the end of the currently displayed field (lower edge of the used area) |
| parameter | --- |
| return values | --- |
| register | --- |
| function name | api_fast |
| Call without macro | call api_fast |
| function Description | turns off the picture output |
| parameter | --- |
| return values | --- |
| register | --- |
| function name | api_slow |
| Call without macro | call api_slow |
| function Description | turns on the picture output |
| parameter | --- |
| return values | --- |
| register | --- |
| function name | api_wpage |
| Call without macro | call api_wpage |
| function Description | writes a flash page |
| parameter | Y = RAM address, Z = flash address |
| return values | --- |
| register | R20 ... R23, X, Y, Z |
| function name | api_version |
| Call without macro | call api_version |
| function Description | determines the API version |
| parameter | --- |
| return values | R20 = API version (currently 6) |
| register | --- |
| function name | api_getvram |
| Call without macro | call api_getvram |
| function Description | determines the start address of the image memory |
| parameter | --- |
| return values | Y points to the beginning of the image memory |
| register | --- |
| function name | api_getsysram |
| Call without macro | call api_getsysram |
| function Description | determines the start address of the system memory |
| parameter | --- |
| return values | Y points to the beginning of the system memory |
| register | --- |
| function name | api_getpal |
| Call without macro | call api_getpal |
| function Description | determines the start address of the pallet memory |
| parameter | --- |
| return values | Y points to the beginning of the pallet memory |
| register | --- |
| function name | api_getarray |
| Call without macro | call api_getarray |
| function Description | determines the start address of the array |
| parameter | --- |
| return values | Y points to the beginning of the array |
| register | --- |
| function name | api_getvar |
| Call without macro | call api_getvar |
| function Description | determines the start address of the BASIC variable |
| parameter | --- |
| return values | Y points to the beginning of the BASIC variable (variable "A") |
| register | --- |
| function name | api_getprg |
| Call without macro | call api_getprg |
| function Description | determines the start address of the program assignment |
| parameter | --- |
| return values | Y points to the beginning of the assignment table (Word) |
| register | --- |
| function name | api_getvalues |
| Call without macro | call api_getvalues |
| function Description | determines the start address of the function parameter block |
| parameter | --- |
| return values | Y points to the beginning of the block |
| register | --- |
| function name | api_getpartab |
| Call without macro | call api_getpartab |
| function Description | determines the start address of the (internal) parameter block |
| parameter | --- |
| return values | Y points to the beginning of the block |
| register | --- |
| function name | api_getchart0 |
| Call without macro | call api_getchart0 |
| function Description | determines the starting address of the character table for font 0 in Flash |
| parameter | --- |
| return values | Z points to the beginning of the character table for font 0 |
| register | --- |
| function name | api_getchart1 |
| Call without macro | call api_getchart1 |
| function Description | determines the starting address of the character map for font 1 in Flash |
| parameter | --- |
| return values | Z points to the beginning of the character map for font 1 |
| register | --- |
| function name | api_getbuffer |
| Call without macro | call api_getbuffer |
| function Description | determines the start address of the two BASIC buffers |
| parameter | --- |
| return values | Y points to the beginning of the two memory areas |
| register | --- |
| function name | api_getprog |
| Call without macro | call api_getprog |
| function Description | determines the number of the calling program in Flash |
| parameter | --- |
| return values | ZL = program number (0 ... 7) |
| register | ZH |
| function name | api_getbase |
| Call without macro | call api_getbase |
| function Description | determines the start address of the calling program in Flash |
| parameter | --- |
| return values | Z points to the beginning of the calling program |
| register | --- |
| function name | api_dataptr |
| Call without macro | call api_dataptr |
| function Description | determines the address of a data block in the calling program |
| parameter | X = offset |
| return values | Z points to the absolute address of a data block in the calling program |
| register | --- |
| function name | api_drvcode |
| Call without macro | call api_drvcode |
| function Description | determines the flagbyte and drivercode of a loaded driver |
| parameter | --- |
| return values | R20 = flagbyte, R21 = drivercode |
| register | --- |
| function name | api_waitkey |
| Call without macro | call api_waitkey |
| function Description | waits for a keystroke (except SHIFT, CTRL, ALT) |
| parameter | --- |
| return values | R20 = Keycode of the pressed key |
| register | --- |
| function name | api_nokey |
| Call without macro | call api_nokey |
| function Description | waits until no key is pressed (except SHIFT, CTRL, ALT) |
| parameter | --- |
| return values | --- |
| register | --- |
| function name | api_kstate |
| Call without macro | call api_kstate |
| function Description | returns the current state of the SHIFT, CTRL and ALT keys |
| parameter | --- |
| return values | R20 (Bit0 = LSHIFT, Bit1 = RSHIFT, Bit2 = LCTRL, Bit3 = RCTRL, Bit4 = ALT) |
| register | --- |
| function name | api_keycode |
| Call without macro | call api_keycode |
| function Description | returns the keycode of the key being pressed or 0x00 (no key pressed) |
| parameter | --- |
| return values | R20 = Keycode |
| register | --- |
| function name | api_lastkey |
| Call without macro | call api_lastkey |
| function Description | returns the keycode of the last pressed key or 0x00 (no key pressed yet) |
| parameter | --- |
| return values | R20 = Keycode |
| register | --- |
| function name | api_scancode |
| Call without macro | call api_scancode |
| function Description | returns the scan code of the last key pressed |
| parameter | --- |
| return values | R20 = scan code |
| register | --- |
| function name | api_clrscr |
| Call without macro | call api_clrscr |
| function Description | clears the screen with the current color setting |
| parameter | --- |
| return values | --- |
| register | R20 |
| Video Modes | 0 ... 6 |
| function name | api_clearvec |
| Call without macro | call api_clearvec |
| function Description | deletes the vector area in graphic mode 7 |
| parameter | --- |
| return values | --- |
| register | --- |
| Video Modes | 7 |
| function name | api_cleartext |
| Call without macro | call api_cleartext |
| function Description | deletes the text area in graphic mode 7 with the current color setting |
| parameter | --- |
| return values | --- |
| register | --- |
| Video Modes | 7 |
| function name | api_gotoxy |
| Call without macro | call api_gotoxy |
| function Description | sets the position of the text cursor (also in the graphics modes) |
| parameter | XL = X position, XH = Y position, in the graphics modes as pixel position |
| return values | --- |
| register | In text mode, XL and XH are limited to the maximum screen coordinates |
| Video Modes | all |
| function name | api_outchar |
| Call without macro | call api_outchar |
| function Description | gives a sign |
| parameter | R20 = character, R25 = mode |
| return values | --- |
| register | R20, R21 |
| Video Modes | all |
| function name | api_newline |
| Call without macro | call api_newline |
| function Description | returns a line feed |
| parameter | --- |
| return values | --- |
| register | R20, R21 |
| Video Modes | 0, 4, 6 |
| function name | api_outdez |
| Call without macro | call api_outdez |
| function Description | outputs the contents of X decimal (-32768 ... 32767) |
| parameter | X = 16-bit value, R25 = mode / format |
| return values | --- |
| register | R20, R21 |
| Video Modes | all |
| function name | api_outhex |
| Call without macro | call api_outhex |
| function Description | outputs the contents of X hexadecimal (00 ... FF or 0000 ... FFFF) |
| parameter | X = 16-bit value, R25 = mode / format |
| return values | --- |
| register | R20, R21 |
| Video Modes | all |
| function name | api_romtext |
| Call without macro | call api_romtext |
| function Description | returns a null-terminated string from the flash |
| parameter | Z = Pointer to the string in Flash |
| return values | --- |
| register | Z, R20, R21 |
| Video Modes | all |
| function name | api_thistext |
| Call without macro | call api_thistext |
| function Description | returns a null-terminated string from the Flash that immediately follows the call. |
| parameter | If the first byte is 0xFF, the string to be output directly follows, otherwise the first byte is evaluated as the Y coordinate and the second as the X coordinate before the actual string follows. |
| return values | --- |
| register | Z, R20, R21 |
| Video Modes | all |
| function name | api_cbox |
| Call without macro | call api_cbox |
| function Description | Deletes a rectangular area with the set color |
| parameter | YL = X1, YH = Y1, ZL = X2, ZH = Y2 |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 4 |
| function name | api_ibox |
| Call without macro | call api_ibox |
| function Description | Inverts a rectangular area (exchanges foreground with background color) |
| parameter | YL = X1, YH = Y1, ZL = X2, ZH = Y2 |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 4 |
| function name | api_scroll |
| Call without macro | call api_scroll |
| function Description | Scrolls the inner screen area, see SCROLL command |
| parameter | R20 = direction (0 = up, 1 = to the right, 2 = down, 3 = to the left) |
| return values | --- |
| register | --- |
| Video Modes | 0, 4, 6 |
| function name | api_sprite |
| Call without macro | call api_sprite |
| function Description | represents a sprite (see BASIC Reference) |
| parameter | XL = X, XH = Y, Y = pointer to sprite data |
| return values | --- |
| register | --- |
| Video Modes | 0, 4, 6 |
| function name | api_copychar4 |
| Call without macro | call api_copychar4 |
| function Description | copies a character from the system character set into the user character set for video mode 4 |
| parameter | R20 = system character, R21 = user character (0 ... 127) |
| return values | --- |
| register | --- |
| Video Modes | 4 |
| function name | api_copychar6 |
| Call without macro | call api_copychar6 |
| function Description | copies a character from the system character set into the user character set for video mode 6 |
| parameter | R20 = system character, R21 = user character (0 ... 63), R22 = VG / HG color |
| return values | --- |
| register | --- |
| Video Modes | 6 |
| function name | api_sbackup |
| Call without macro | call api_sbackup |
| function Description | copies the visible screen area to the monitor backup screen |
| parameter | --- |
| return values | --- |
| register | R20, X, Y, Z |
| Video Modes | only useful at 1 and 5 |
| function name | api_srestore |
| Call without macro | call api_srestore |
| function Description | copies the monitor backup screen to the visible screen area |
| parameter | --- |
| return values | --- |
| register | R20, X, Y, Z |
| Video Modes | only useful at 1 and 5 |
| function name | api_plot |
| Call without macro | call api_plot |
| function Description | Draws a point in the set foreground color |
| parameter | XL = X, XH = Y |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 2, 3, (4), 5 |
| function name | api_draw |
| Call without macro | call api_draw |
| function Description | Draws a line in the set foreground color |
| parameter | YL = X1, YH = Y1, ZL = X2, ZH = Y2 |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 2, 3, (4), 5 |
| function name | api_box |
| Call without macro | call api_box |
| function Description | Draws a rectangle in the foreground color |
| parameter | YL = X1, YH = Y1, ZL = X2, ZH = Y2 |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 2, 3, (4), 5 |
| function name | api_fbox |
| Call without macro | call api_fbox |
| function Description | Draws a filled rectangle in the set foreground color |
| parameter | YL = X1, YH = Y1, ZL = X2, ZH = Y2 |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 2, 3, (4), 5 |
| function name | api_circle |
| Call without macro | call api_circle |
| function Description | Draw a circle / ellipse in the set foreground color |
| parameter | YL = X, YH = Y, ZL = RX, ZH = RY |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 2, 3, (4), 5 |
| function name | api_fcircle |
| Call without macro | call api_fcircle |
| function Description | Draw a filled circle in the set foreground color |
| parameter | YL = X, YH = Y, ZL = RX, ZH = RY |
| return values | --- |
| register | --- |
| Video Modes | 0, 1, 2, 3, (4), 5 |
| function name | api_bcopy1 |
| Call without macro | call api_bcopy1 |
| function Description | Copies a screen section to another location |
| parameter | YL = SRCX, YH = SRCY, ZL = DESTX, ZH = DESTY, R21 = bytes / line, R22 = lines |
| return values | --- |
| register | R4ldotsR7 |
| Video Modes | 1, 2, 3, 5 |
| function name | api_bcopy2 |
| Call without macro | call api_bcopy2 |
| function Description | Copies a screen section from the image memory to the RAM |
| parameter | YL = SRCX, YH = SRCY, Z = RAM address, R21 = bytes / line, R22 = lines |
| return values | --- |
| register | R4ldotsR7 |
| Video Modes | 1, 2, 3, 5 |
| function name | api_bcopy3 |
| Call without macro | call api_bcopy3 |
| function Description | Copies a screen section RAM into the image memory |
| parameter | YL = DESTX, YH = DESTY, Z = RAM address |
| return values | --- |
| register | R4ldotsR7 |
| Video Modes | 1, 2, 3, 5 |
| function name | api_putpar |
| Call without macro | call api_putpar |
| function Description | Outputs a character via the parallel interface |
| parameter | R20 = characters |
| return values | --- |
| register | --- |
| function name | api_getser |
| Call without macro | call api_getser |
| function Description | waits for a character from the serial interface, no abort option |
| parameter | --- |
| return values | R20 = characters |
| register | --- |
| function name | api_getserb |
| Call without macro | call api_getserb |
| function Description | waiting for a character from the serial interface, abort with ESC possible |
| parameter | --- |
| return values | R20 = character or 0x1B (if canceled with ESC) |
| register | --- |
| function name | api_putser |
| Call without macro | call api_putser |
| function Description | Outputs a character via the serial interface |
| parameter | R20 = characters |
| return values | --- |
| register | --- |
| function name | api_putsernl |
| Call without macro | call api_putsernl |
| function Description | outputs a line feed via the serial interface |
| parameter | --- |
| return values | --- |
| register | Y = Y + 128 |
| function name | api_hexline |
| Call without macro | call api_hexline |
| function Description | outputs a memory area as a hex string with a final line feed via the serial interface |
| parameter | Y = address RAM block, ZL = number of bytes |
| return values | --- |
| register | ZL, R20, Y = Y + 128 |
| function name | api_putxm |
| Call without macro | call api_putxm |
| function Description | outputs an X-Modem block via the serial interface |
| parameter | R22 = block number, Y = address RAM block |
| return values | --- |
| register | Y = Y + 128 |
| function name | api_getxm |
| Call without macro | call api_getxm |
| function Description | reads in an X-Modem block via the serial interface |
| parameter | Y = address RAM block |
| return values | R22 = block number |
| register | Y = Y + 128 |
| function name | api_preceive |
| Call without macro | call api_preceive |
| function Description | loads a program (in binary mode) via the X-Modem protocol |
| parameter | R15 = program number 1 (0 ... 7] |
| return values | |
| register | R20 ... R23, X, Y, Z |
| function name | api_psend |
| Call without macro | call api_psend |
| function Description | sends a program (in binary mode) via the X-modem protocol |
| parameter | R15 = program number 1 (0 ... 7] |
| return values | |
| register | R20 ... R23, X, Y, Z |
| function name | api_note |
| Call without macro | call api_note |
| function Description | Plays a note at the current volume |
| parameter | XL = note value, according to the BASIC command note |
| return values | --- |
| register | --- |
| function name | api_setvolume |
| Call without macro | call api_setvolume |
| function Description | sets the global volume |
| parameter | XL = volume value (0 ... 15) |
| return values | --- |
| register | --- |
| function name | api_startseq |
| Call without macro | call api_startseq |
| function Description | starts the sequencer |
| parameter | --- |
| return values | Y = start address (RAM), Z = end address + 1 (RAM), XL = speed, XH = number of cycles |
| register | --- |
| function name | api_setseq |
| Call without macro | call api_setseq |
| function Description | sets the cyclic error of the sequencer |
| parameter | XL = new cycle value |
| return values | --- |
| register | --- |
| function name | api_getseq |
| Call without macro | call api_getseq |
| function Description | reads the cyclic error of the sequencer |
| parameter | XL = current cycle value |
| return values | --- |
| register | --- |
| function name | api_eep_read |
| Call without macro | call api_eep_read |
| function Description | reads a byte from the internal EEPROM |
| parameter | Y = Address |
| return values | R20 = Byte |
| register | Y = Y + 1 |
| function name | api_eep_write |
| Call without macro | call api_eep_write |
| function Description | writes a byte to the internal EEPROM |
| parameter | Y = address, R20 = byte |
| return values | --- |
| register | Y = Y + 1 |
| function name | api_i2c_start |
| Call without macro | call api_i2c_start |
| function Description | creates a start condition on the I2C bus |
| parameter | --- |
| return values | --- |
| register | R20 |
| function name | api_i2c_stop |
| Call without macro | call api_i2c_stop |
| function Description | creates a stop condition on the I2C bus |
| parameter | --- |
| return values | --- |
| register | R20 |
| function name | api_i2c_rbyte |
| Call without macro | call api_i2c_rbyte |
| function Description | reads a byte from the I2C bus and sends an ACK |
| parameter | --- |
| return values | R21 = byte, R22 = I2C status register |
| register | R20 |
| function name | api_i2c_rbyten |
| Call without macro | call api_i2c_rbyten |
| function Description | reads a byte from the I2C bus without sending an ACK |
| parameter | --- |
| return values | R21 = byte, R22 = I2C status register |
| register | R20 |
| function name | api_i2c_wbyte |
| Call without macro | call api_i2c_wbyte |
| function Description | sends a byte to the I2C bus and waits for ACK / NAK |
| parameter | R21 = Byte |
| return values | R22 = I2C status register |
| register | R20 |
| function name | api_i2c_read |
| Call without macro | call api_i2c_read |
| function Description | reads in a data byte from an external EEPROM |
| parameter | X = memory address in EEPROM, R23 = EEPROM address (0 ... 7) |
| return values | R21 = byte R24 = error status |
| register | X = X + 1, R20, R22 |
| function name | api_i2c_write |
| Call without macro | call api_i2c_write |
| function Description | writes a byte of data to an external EEPROM |
| parameter | R21 = byte X = memory address in EEPROM, R23 = EEPROM address (0 ... 7) |
| return values | R24 = Error Status |
| register | X = X + 1, R20, R22 |
| function name | api_i2c_rlm75 |
| Call without macro | call api_i2c_rlm75 |
| function Description | reads the temperature value from a connected LM75 temperature sensor |
| parameter | R23 = LM75 address (0 ... 7) |
| return values | R24 = error status, X = temperature value in 1/2 degree |
| register | R20, R21, R22 |
| function name | api_alert |
| Call without macro | call api_alert |
| function Description | outputs an alert box, after ENTER the screen is restored |
| parameter | Y points to color byte (FG / HG) and zero-terminated text in RAM |
| return values | --- |
| register | R20 |
| function name | api_alert_nb |
| Call without macro | call api_alert_nb |
| function Description | outputs an alert box, after ENTER the screen is NOT restored |
| parameter | Y points to color byte (FG / HG) and zero-terminated text in RAM |
| return values | --- |
| register | R20 |
| function name | api_alertthis |
| Call without macro | call api_alertthis |
| function Description | outputs an alert box, after ENTER the screen is restored |
| parameter | the color byte and the text are null terminated after the call |
| return values | --- |
| register | R20 |
| function name | api_alertthis_nb |
| Call without macro | call api_alertthis_nb |
| function Description | outputs an alert box, after ENTER the screen is NOT restored |
| parameter | the color byte and the text are null terminated after the call |
| return values | --- |
| register | R20 |
| function name | api_ask |
| Call without macro | call api_ask |
| function Description | outputs a question box, after Y / N / ENTER / ESC the screen is restored |
| parameter | Y points to color byte (FG / HG) and zero-terminated text in RAM |
| return values | T flag is set at Y / ENTER |
| register | R20 |
| function name | api_ask_nb |
| Call without macro | call api_ask_nb |
| function Description | outputs a question box, after Y / N / ENTER / ESC the screen is NOT restored |
| parameter | Y points to color byte (FG / HG) and zero-terminated text in RAM |
| return values | T flag is set at Y / ENTER |
| register | R20 |
| function name | api_askthis |
| Call without macro | call api_askthis |
| function Description | outputs a question box, after Y / N / ENTER / ESC the screen is restored |
| parameter | the color byte and the text are null terminated after the call |
| return values | T flag is set at Y / ENTER |
| register | R20 |
| function name | api_askthis_nb |
| Call without macro | call api_askthis_nb |
| function Description | outputs a question box, after Y / N / ENTER / ESC the screen is NOT restored |
| parameter | the color byte and the text are null terminated after the call |
| return values | T flag is set at Y / ENTER |
| register | R20 |
| function name | api_fs_size |
| Call without macro | call api_fs_size |
| function Description | determines the size of the connected Dataflash module |
| parameter | --- |
| return values | R20 = (number of sectors / 256) or 0 |
| register | --- |
| function name | api_fs_create |
| Call without macro | call api_fs_create |
| function Description | creates a file |
| parameter | R20 = file number, R21 = number of sectors, R22 = file type |
| return values | R24 (error code or 0) |
| register | Array (512-767) |
| function name | api_fs_delete |
| Call without macro | call api_fs_delete |
| function Description | deletes a file |
| parameter | R20 = file number |
| return values | R24 (error code or 0) |
| register | --- |
| function name | api_fs_read |
| Call without macro | call api_fs_read |
| function Description | reads a file sector into an area of the array |
| parameter | R20 = file number, R21 = sector number, R22 = array third (0,1,2) |
| return values | R24 (error code or 0) |
| register | --- |
| function name | api_fs_write |
| Call without macro | call api_fs_write |
| function Description | writes a file sector from an area of the array |
| parameter | R20 = file number, R21 = sector number, R22 = array third (0,1,2) |
| return values | R24 (error code or 0) |
| register | --- |
| function name | api_fs_cfree |
| Call without macro | call api_fs_cfree |
| function Description | Counts the free program slots and data sectors |
| parameter | --- |
| return values | Z = free program slots, Y = free data sectors |
| register | --- |
| function name | api_fs_checkf |
| Call without macro | call api_fs_checkf |
| function Description | determines if the Dataflash module is formatted |
| parameter | --- |
| return values | R20 (1 = formatted, otherwise 0) |
| register | --- |
| function name | api_fs_gettype |
| Call without macro | call api_fs_gettype |
| function Description | determines the file type of a file |
| parameter | R20 = file number |
| return values | R20 = File Type Code |
| register | --- |
| function name | api_fs_fsize |
| Call without macro | call api_fs_fsize |
| function Description | determines the size of a file (in pages) or the free space on the Dataflash module |
| parameter | X = file number or -1 (free files) or -2 (free pages) |
| return values | X = number of pages / files |
| register | Y Z |
| function name | api_fs_ffind |
| Call without macro | call api_fs_ffind |
| function Description | searches for a file |
| parameter | X = Arrayposition (see FFIND function) |
| return values | X = file number or -1 |
| register | Y Z |
| function name | api_fs_check |
| Call without macro | call api_fs_check |
| function Description | tests the dataflash for a valid file system |
| parameter | |
| return values | |
| register | R20 |
| function name | api_fs_fsel |
| Call without macro | call api_fs_fsel |
| function Description | calls the Fileselectorbox (only in video mode 0) |
| parameter | the header is null terminated after the call |
| return values | R23 = file number, R20 = file type |
| register | --- |
| function name | api_fs_fsel_nb |
| Call without macro | call api_fs_fsel_nb |
| function Description | calls the Fileselectorbox without screen backup (only in video mode 0) |
| parameter | the header is null terminated after the call |
| return values | R23 = file number, R20 = file type |
| register | --- |
| function name | api_fs_rread |
| Call without macro | call api_fs_rread |
| function Description | reads a sector from the dataflash |
| parameter | X = sector number, Y = address in RAM |
| return values | R24 (error code or 0) |
| register | Y = Y + 256 |
| function name | api_fs_rwrite |
| Call without macro | call api_fs_rwritw |
| function Description | writes a sector in the dataflash |
| parameter | X = sector number, Y = address in RAM |
| return values | R24 (error code or 0) |
| register | Y = Y + 256 |
| function name | api_lfind |
| Call without macro | call api_lfind |
| function Description | searches the system for a library |
| parameter | X = library code |
| return values | R21 = program slot (1 ... 8) or 0 for not found |
| register | Z, R22-R23 |
| function name | api_lcall |
| Call without macro | call api_lcall |
| function Description | Invokes a function in a Libarary |
| parameter | R20 = library (1 ... 8), R21 = function number |
| return values | possibly from called function |
| register | Z, R0, R1 and registers of the function call |
| function name | api_token |
| Call without macro | call api_token |
| function Description | tokenizes a line from the source buffer into the code buffer |
| parameter | Source text in the source buffer |
| return values | tokenized line in the code buffer |
| register | X, Y, Z, R20-R23 |
| function name | api_untoken |
| Call without macro | call api_untoken |
| function Description | translates a tokenized line back into the source code |
| parameter | tokenized line in the code buffer |
| return values | Source text in the source buffer |
| register | X, Y, Z, R20 ... R23 |
| function name | api_basrun |
| Call without macro | call api_basrun |
| function Description | executes the line in the code buffer |
| parameter | R12 = line number, R13 = first statement, line in the code buffer |
| return values | --- |
| register | X, Y, Z, R4 ... R7, R20 ... R23 |
| function name | api_exparser |
| Call without macro | call api_exparser |
| function Description | interprets a formula in text format |
| parameter | Z = Pointer to function text |
| return values | X = result (16 bit signed) |
| register | Y, Z, R4 ... R7, R20 ... R23 |
| function name | api_tparser |
| Call without macro | call api_tparser |
| function Description | provides a token parser |
| parameter | Z = pointer to token table in flash, Y = pointer to text in RAM, R22 = length of an entry in bytes |
| return values | R20 = found token or 0 |
| register | Y stands behind the found text |
tokentab: |
| function name | api_arrview |
| Call without macro | call api_arrview |
| function Description | Array View |
| parameter | R23 = display position (* 64) |
| return values | --- |
| register | --- |
| function name | api_vm0cls |
| Call without macro | jmp api_vm0cls |
| function Description | jumps to the CLS routine of video mode 0 |
| parameter | usable only in drivers |
| return values | --- |
| register | --- |
| function name | api_vm0char |
| Call without macro | jmp api_vm0char |
| function Description | jumps to the character output routine of video mode 0 |
| parameter | usable only in drivers |
| return values | --- |
| register | --- |
| function name | api_vm0gotoxy |
| Call without macro | jmp api_vm0gotoxy |
| function Description | jumps to the positioning routine of video mode 0 |
| parameter | usable only in drivers |
| return values | --- |
| register | --- |
| function name | api_vm0plot |
| Call without macro | jmp api_vm0plot |
| function Description | jumps to pixel network routine of video mode 0 |
| parameter | usable only in drivers |
| return values | --- |
| register | --- |
| function name | api_vm0line |
| Call without macro | jmp api_vm0line |
| function Description | outputs a pixel line in video mode 0 |
| parameter | usable only in drivers |
| return values | --- |
| register | --- |
| function name | api_vm0newline |
| Call without macro | jmp api_vm0newline |
| function Description | outputs a line feed in video mode 0. |
| parameter | usable only in drivers |
| return values | --- |
| register | --- |
| function name | api_aread |
| Call without macro | call api_aread |
| function Description | reads a ByteWord from the array |
| parameter | Y = Arraypointer |
| return values | XL / X = content of the array cell |
| register | R21 |
| function name | api_awrite |
| Call without macro | call api_awrite |
| function Description | writes a byte / word into the array |
| parameter | Y = Arraypointer, XL / X = value to be written |
| return values | --- |
| register | R21 |
| function name | api_pageset |
| Call without macro | call api_pageset |
| function Description | sets the array page for external storage |
| parameter | XL = new array page (after system startup 0) |
| return values | --- |
| register | --- |
| function number | function |
| 0 | Dummy function if the library is called from the main menu |
| 1 | initialization |
| 2 | Integer assignment variable = value |
| 3 | Assignment via text string in the array |
| 4 | returns integer value of the variable |
| 5 | Text output of the variable |
| 6 | Absolute value of a variable |
| 7 | Inverse value (0 variable) |
| 8 | Addition V3 = V1 + V2 |
| 9 | Subtracking V3 = V1 - V2 |
| 10 | Multiplication V3 = V1 * V2 |
| 11 | Division V3 = V1 / V2 |
| 12 | Constant assignment with predefined constants |
| 13 | Pre-comma portion of a variable (INT) |
| 14 | Fractional part of a variable (FRAC) |
| 15 | Comparison of two variables |
| 16 | Copy variable |
| 17 | Variable / 2 |
| 18 | Variable * 2 |
| 19 | Start script in the array memory |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Number of pre-bytes bytes - 1 (0 ... 15) |
| Parameter 2 | Number of decimal bytes |
| Parameter 3 | --- |
| return value | Number of initialized variables |
| parameter | meaning |
| Parameter 1 | variable number |
| Parameter 2 | variable value |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | variable number |
| Parameter 2 | Text start in the array |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | variable number |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | Integer value of the variable |
| parameter | meaning |
| Parameter 1 | variable number |
| Parameter 2 | Bit 7 ... 4: minimum precom-byte -1 bit 3 ... 0: post-decimal byte |
| Parameter 3 | (optional output channel) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | Variable number of variable 3 |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | Variable number of variable 3 |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | Variable number of variable 3 |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | Variable number of variable 3 |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | variable number |
| Parameter 2 | Constant number (0 ... 7) |
| Parameter 3 | --- |
| return value | 0 |
| constant number | value |
| 0 | 0 |
| 1 | 1 |
| 2 | PI |
| 3 | e (Euler number) |
| 4 | ln (2) |
| 5 | ln (10) |
| 6 | SQRT (2) |
| 7 | SQRT (3) |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | Comparison result (1,0,2) |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Variable number of variable 1 |
| Parameter 2 | Variable number of variable 2 |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Start address in the array |
| Parameter 2 | opt. Parameter 1 |
| Parameter 3 | opt. Parameter 2 |
| Parameter 4 | opt. Parameter 3 |
| return value | Return value, depending on the exit command |
| code | meaning |
| 0 0 0 V | End script, variable value (integer) of variable v is returned |
| 0 1 x M | End script, the value of Counter M is returned |
| 0 2 nn | E is jumped to the script position nn |
| 0 3 CV | Variable V is initialized with the constant C |
| 0 4 x V | Variable V is initialized with the value of optional parameter 1 |
| 0 5 x V | Variable V is initialized with the value of optional parameter 2 |
| 0 6 x V | Variable V is initialized with the value of optional parameter 3 |
| 1 0 WV | W = V |
| 1 1 WV | W = ABS (V) |
| 1 2 WV | W = -V |
| 1 3 WV | W = INT (V) |
| 1 4 WV | W = FRAC (V) |
| 1 5 WV | W = V * 2 |
| 1 6 WV | W = V / 2 |
| 1 8 WV | skips the next statement if V is equal to W. |
| 1 9 WV | skips the next statement if V is not equal to W. |
| 1 AWV | skips the next statement if V is greater than W. |
| 1 BWV | skips the next statement if V is less than W. |
| 4 UWV | W = U + V |
| 5 UWV | W = U - V |
| 6 UWV | W = U * V |
| 7 UWV | W = U / V |
| 8 mnn | the counter M is set to nn |
| 9 mnn | to the counter M nn is added |
| AM nn | skips the next statement if the counter M is equal to nn |
| BM nn | skips the next statement if the counter M is not nn |
| CM xn | Counter M is initialized with parameter N. |
| other codes | No function (NOP) |

PROGRAM :Fractal 2 |

| function number | function |
| 0 | Start of the demonstration program (currently not used) |
| 1 | PA.1 to HIGH, voltage measurement to PA.0 and PA.1 |
| 2 | PA.2 to HIGH, voltage measurement to PA.0 and PA.2 |
| 3 | PA.3 to HIGH, voltage measurement to PA.0 and PA.3 |
| 4 | PA.3 from LOW to HIGH, time measurement to U (PA.0)> Uref (resolution 300ns) |
| 5 | PA.3 from LOW to HIGH, time measurement to U (PA.0)> Uref (resolution 500ns) |
| 6 | PA.2 from LOW to HIGH, time measurement to U (PA.0)> Uref (resolution 300ns) |
| 7 | PA.2 from LOW to HIGH, time measurement to U (PA.0)> Uref (resolution 64us) |
| 8 | PA.1 from LOW to HIGH, time measurement to U (PA.0) <Uref (resolution 300ns) |
| 9 | PA.1 from LOW to HIGH, time measurement to U (PA.0) <Uref (resolution 500ns) |
| 10 | PA.2 from LOW to HIGH, time measurement to U (PA.0) <Uref (resolution 500ns) |
| 11 | PA.3 from LOW to HIGH, time measurement to U (PA.0) <Uref (resolution 300ns) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 32 x measured value of PA.0, measured value of PA.1 in AR (1024) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 16 x measured value (in 300 nanosecond steps) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 2 x measured value (in 500 nanosecond steps) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 2 x measured value (in 500 nanosecond steps) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 2 x measured value (in 64 microsecond steps) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 16 x measured value (in 300 nanosecond steps) |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 2 x measured value (in 500 nanosecond steps) |

| Type of measurement | measuring range |
| resistance | 10Ω ... 1MΩ |
| diode | 0 ... 4.8V |
| capacity | 100pF ... 1000μF |
| inductance | 10 uH ... 100mH |
| address | row | measuring range |
| 1026 | 9 | Resistors 6,5KΩ <R <1MΩ |
| 1027 | 9 | Resistors 200Ω <R <6,5KΩ |
| 1028 | 9 | Resistors 10Ω <R <200Ω |
| 1029 | 10 | Diode voltage 0V <U <4.8V |
| 1030,1031 (final value, offset) | 11 | Capacitors 0.1nF <C <72nF |
| 1032,1033 (final value, offset) | 11 | Capacitors 72nF <C <740nF |
| 1034,1035 (final value, offset) | 12 | Capacitors 740nF <C <22μF |
| 1036,1037 (final value, offset) | 12 | Capacitors 22μF <C <1000μF |
| 1038 | 13 | Inductors 50μH <L <6.7mH |
| 1038 | 13 | Inductors 6,7mH <L <830mH |
PROGRAM:Mess4 |
| command | function |
| _SETSEC n | sets the seconds value to parameter n, while the limits are monitored. |
| _SETMIN n | sets the minute value to the parameter n, while the limits are monitored. |
| _SETHOUR n | sets the hour value to the parameter n, while the limits are monitored. |
| _SETDAY n | sets the day value to the parameter n, while the limits are monitored. |
| _SETMONTH n | sets the monthly value to the parameter n, while the limits are monitored. |
| _SETYEAR n | sets the year value to the parameter n (0..99) |
| _GETSEC V | reads the second value into variable V |
| _GETMIN V | reads the minute value into variable V |
| _GETHOUR V | reads the hour value into variable V |
| _GETDAY V | reads the day value into variable V |
| _GETMONTH V | reads the month value into variable V |
| _GETYEAR V | reads the year value into variable V |
| start address | end address | bytes | function |
| 0 | 1079 | 1080 | 24 lines characters |
| 1080 | 1319 | 240 | used internally |
| 1320 | 2599 | 1280 | character set |
| 2600 | 2759 | 160 | unused |

| start address | end address | bytes | function |
| 0 | 1199 | 1200 | 24 lines characters |
| 1200 | 2759 | 1560 | unused |

| start address | end address | bytes | function |
| 0 | 1439 | 1440 | 24 lines characters |
| 1440 | 2759 | 1320 | unused |

| start address | end address | bytes | function |
| 0 | 39 | 40 | system |
| 40 | 1063 | 1024 | tilemap |
| 1064 | 2599 | 1568 | 49 tiled definitions |
| 2632 | 2691 | 60 | 2 lines characters |
| 2692 | 2751 | 60 | 2 lines of attributes |
| 2752 | 2759 | 8th | not used |


| address | size | function |
| 0 | byte | Y-coordinate (top left) of the visible section |
| 1 | byte | X-coordinate (top left) of the visible section |
| 4 | Word | Start address of the sprite area in memory is initialized by function 24 |
| 6 | byte | Number of initialized sprites is initialized by function 24 |
| offset | meaning |
| 0 | New Y coordinate |
| 1 | New X coordinate |
| 2 | Old Y coordinate |
| 3 | Old X coordinate |
| 4 | Sprite Tile |
| 5 | Start of the 4 backup tiles |
| 6 | Transparency Color |
| 7 | visible (0/1) |
| 8 | Sprite active (0/1) |
| 9 | Kollisionsflag |
| 10 | horizontal step size |
| 11 | vertical increment |
| 12 | Tile index 1 for restore |
| 13 | Tile index 2 for restore |
| 14 | Tile index 3 for restore |
| 15 | Tile index 4 for restore |
| function number | function |
| 9 | Fill tile map with constant tile index |
| 10 | Tile map with a tile bitmap set |
| 11 | Fill Tile Map area with constant tile index |
| 12 | Set a tile index in the tile map |
| 13 | Query a tile index in the tile map |
| 14 | Fill tile with paint |
| 15 | Draw a predefined pattern in tile |
| 16 | Draw an array-defined pattern in tile |
| 17 | Draw patterns from character set in tile |
| 18 | Mirror tile horizontally |
| 19 | Mirror tiles vertically |
| 20 | Tile 90 degrees clockwise |
| 21 | Turn the tile 90 degrees counterclockwise |
| 22 | Copy Tile |
| 23 | Join together tiles |
| 24 | Rotate 2 tiles |
| 25 | Initialize sprites |
| 26 | Define sprite |
| 27 | Position sprite |
| 28 | Enable sprite |
| 29 | Disable sprite |
| 30 | Draw a single sprite |
| 31 | Delete a drawn sprite |
| 32 | Draw all sprites sequentially |
| 33 | Delete all sprites sequentially |
| 34 | Recalculate all sprites coordinates |
| 35 | Move all sprites |
| 36 | --- |
| 37 | --- |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Bitmap position in the array (0 ... 640) |
| Parameter 2 | Tile number (0 ... 48) |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | starting position |
| Parameter 2 | end position |
| Parameter 3 | Tile number (0 ... 48) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Y-coordinate (0 ... 31) |
| Parameter 2 | X-coordinate (0 ... 31) |
| Parameter 3 | Tile number (0 ... 48) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Y-coordinate (0 ... 31) |
| Parameter 2 | Y-coordinate (0 ... 31) |
| Parameter 3 | --- |
| return value | Tile Index |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | Color (0 ... 15) |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | Sample number (0 ... 31) |
| Parameter 3 | Character color (0 ... 15) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | Array start cell (0 ... 760) |
| Parameter 3 | Character color (0 ... 15) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | Characters (0 ... 255) |
| Parameter 3 | Character color (0 ... 15) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile number (0 ... 48) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Source Tile (0 ... 48) |
| Parameter 2 | Target Tile (0 ... 48) |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Source and destination tiles (0 ... 48) |
| Parameter 2 | Character Tile (0 ... 48) |
| Parameter 3 | Transparency color (0 ... 15) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Tile 1 (0 ... 48) |
| Parameter 2 | Tile 2 (0 ... 48) |
| Parameter 3 | Shift direction (0 ... 3) |
| return value | 0 |
| Parameter 3 | direction |
| 0 | Shift / rotation upwards |
| 1 | Shift / rotation to the right |
| 2 | Shift / rotation down |
| 3 | Shift / rotation to the left |
| parameter | meaning |
| Parameter 1 | Array position (0 ... 511) |
| Parameter 2 | Number of sprites (1 ... 8) |
| Parameter 3 | --- |
| return value | Maximum sprite number |
| parameter | meaning |
| Parameter 1 | Sprite number (0 ... 7) |
| Parameter 2 | Tile number (0 ... 48) |
| Parameter 3 | Transparency color (0 ... 15) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Sprite number (0 ... 7) |
| Parameter 2 | Y position (0 ... 255) |
| Parameter 3 | X position (0 ... 255) |
| Parameter 4 | Y movement (0 ... 255) |
| Parameter 5 | X movement (0 ... 255) |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Sprite number (0 ... 7) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Sprite number (0 ... 7) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Array address (0 ... 752) |
| Parameter 2 | Y position |
| Parameter 3 | X position |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Array address (0 ... 752) |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| start address | end address | bytes | function |
| 0 | 59 | 60 | 2 lines characters |
| 60 | 119 | 60 | 2 lines of attributes |
| 120 | 224 | 105 | 105 line pointers |
| 225 | 2744 | 2520 | 105 line definitions |
| 2745 | 2759 | 15 | unused |




| function number | function |
| 16 | deletes the vector area |
| 17 | Fill line pointer constantly |
| 18 | Fill row pointer in ascending order |
| 19 | Fill the line pointer in descending order |
| 20 | Fill row pointer with array values |
| 21 | Copy line pointer ranges |
| 22 | Fill lines with constant array values |
| 23 | Fill rows with consecutive array values |
| 24 | --- |
| 25 | --- |
| 26 | --- |
| 27 | --- |
| parameter | meaning |
| Parameter 1 | --- |
| Parameter 2 | --- |
| Parameter 3 | --- |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | start row |
| Parameter 2 | number of lines |
| Parameter 3 | value |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | start row |
| Parameter 2 | number of lines |
| Parameter 3 | start value |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | start row |
| Parameter 2 | number of lines |
| Parameter 3 | start value |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Start-row pointer |
| Parameter 2 | number of lines |
| Parameter 3 | Array start position |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | Start line source area |
| Parameter 2 | Start line Target |
| Parameter 3 | number of lines |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | start row |
| Parameter 2 | number of lines |
| Parameter 3 | Array start position |
| return value | 0 |
| parameter | meaning |
| Parameter 1 | start row |
| Parameter 2 | number of lines |
| Parameter 3 | Array start position |
| return value | 0 |

| driver | driver code | display | Display works | Display does not work |
| lcd116.bin | 0xA0 | 1 x 16 characters | Powertip PC1601A | , |
| lcd216.bin | 0xA1 | 2 x 16 characters | , | , |
| lcd220.bin | 0xA2 | 2 x 20 characters | Powertip PC2002-M | , |

| button | Bit in scancode | keycode |
| left | 0 | 0xE2 |
| right | 1 | 0xE3 |
| up | 2 | 0xE4 |
| down | 3 | 0xE5 |
| enter | 4 | 0xEA |
| esc | 5 | 0xED |
| F5 | 6 | 0xF5 |
| start address | end address | bytes | function |
| 0 | 1079 | 1080 | 24 lines characters |
| 1080 | 1319 | 240 | used internally |
| 1320 | 2599 | 1280 | character set |
| 2600 | 2759 | 160 | unused |



| I / O address | access | function |
| 0x800 | R / W | Data signal D0 |
| 0x801 | R / W | Data signal D1 |
| 0x802 | R / W | Data signal D2 |
| 0x803 | R / W | Data signal D3 |
| 0x808 | R / W | Data signal STROBE |
| 0x809 | R / W | Data signal BUSY |
| 0x810 | W | Data direction D0 (0 = IN, 1 = OUT) |
| 0x811 | W | Data direction D1 (0 = IN, 1 = OUT) |
| 0x812 | W | Data direction D2 (0 = IN, 1 = OUT) |
| 0x813 | W | Data direction D3 (0 = IN, 1 = OUT) |
| 0x818 | R / W | Data direction STROBE |
| 0x819 | R / W | Data direction BUSY |
| 0x900 | R / W | Pulse width at D4 (0 ... 255) |
| 0x901 | R / W | Pulse width at D5 (0 ... 255) |
| 0x902 | R / W | Pulse width at D6 (0 ... 255) |
| 0x903 | R / W | Pulse width at D7 (0 ... 255) |

| I / O address | access | function |
| 0x808 | R / W | Data signal STROBE |
| 0x809 | R / W | Data signal BUSY |
| 0x818 | R / W | Data direction STROBE |
| 0x819 | R / W | Data direction BUSY |
| 0x900 | R / W | Pulse width at D0 (0 ... 255) |
| 0x901 | R / W | Pulse width at D1 (0 ... 255) |
| 0x902 | R / W | Pulse width at D2 (0 ... 255) |
| 0x903 | R / W | Pulse width at D3 (0 ... 255) |
| 0x904 | R / W | Pulse width at D4 (0 ... 255) |
| 0x905 | R / W | Pulse width at D5 (0 ... 255) |
| 0x906 | R / W | Pulse width at D6 (0 ... 255) |
| 0x907 | R / W | Pulse width at D7 (0 ... 255) |

| I / O address | access | function |
| 0x800 | R / W | Data signal D0 |
| 0x801 | R / W | Data signal D1 |
| 0x802 | R / W | Data signal D2 |
| 0x803 | R / W | Data signal D3 |
| 0x808 | R / W | Data signal STROBE |
| 0x809 | R / W | Data signal BUSY |
| 0x810 | W | Data direction D0 (0 = IN, 1 = OUT) |
| 0x811 | W | Data direction D1 (0 = IN, 1 = OUT) |
| 0x812 | W | Data direction D2 (0 = IN, 1 = OUT) |
| 0x813 | W | Data direction D3 (0 = IN, 1 = OUT) |
| 0x818 | R / W | Data direction STROBE |
| 0x819 | R / W | Data direction BUSY |
| 0x900 | R / W | Pulse width at D4 (0 ... 559) |
| 0x901 | R / W | Pulse width at D5 (0 ... 559) |
| 0x902 | R / W | Pulse width at D6 (0 ... 255) |
| 0x903 | R / W | Pulse width at D7 (0 ... 255) |
Press space to start! |
---------------------------- |
---------------------------- |
---------------------------- |
---------------------------- |
---------------------------- |
---------------------------- |
---------------------------- |

![]() | Leave program |
![]() | Change selected setting |
![]() | |
![]() | |
![]() | Clone system |
| Host signal | Host PIN | Target signal | Target PIN |
| GND | 4,6,8,10 | GND | 4,6,8,10 |
| VCC | 2 | VCC | 2 |
| MOSI | 1 | MOSI | 1 |
| MISO | 9 | MISO | 9 |
| SCK | 7 | SCK | 7 |
| SS | 3 | RESET | 5 |


![]() | Leave program |
![]() | Chip8 program received via X-modem |
![]() | Save Chip8 program |
![]() | Load Chip8 program |
![]() | Start Chip8 program |

![]() | |
![]() | Decrease delay, program execution becomes faster |
![]() | Increase delay, program execution slows down |
![]() | |
![]() | |