1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-12-25 21:29:25 +00:00
millfork/docs/stdlib/other.md
Karol Stasiak 75e572f58c Library improvements:
– random module
– ensure_mixedcase() function
2018-12-30 18:59:32 +01:00

57 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[< back to index](../index.md)
## stdio
The `stdio` module automatically imports the `string` and `err` modules.
It requires an implementation of `void putchar(byte a)` and therefore works only on targets with console output.
#### `void putstr(pointer str, byte len)`
Prints a string of length `len` located at address `str`.
#### `void putstrz(pointer str)`
Prints a null-terminated string located at address `str`.
If the string is longer than 255 bytes, then the behaviour is undefined (might even crash).
#### `void ensure_mixedcase()`
On targets that have separate all-caps and mixed-case modes (like most Commodore machines), switches to the mixed-case mode.
## err
#### `enum error_number`
Standard error codes. All codes other than `err_ok` suggest that the last operation failed.
#### `error_number errno`
The result of the last operation.
## random
A simple and reasonably fast random number generator. Not suitable for cryptographic or simulation uses.
#### `word rand_seed`
Random number generator state.
#### `byte rand()`
Get a random byte (0255) and update the state of the generator.
#### `void init_rand_seed()`
Initializes the random number generator state.
This may take a long time, even several frames, depending on the target.
Current implementation:
* On C64, spends two frames reading noise data from the SID chip.
* On Z80, reads the refresh register.
* On all other targets, sets the seed to 1.