mirror of
https://github.com/KarolS/millfork.git
synced 2024-12-22 01:29:30 +00:00
Move apple2_prodos module documentation
This commit is contained in:
parent
03bc5894aa
commit
e8f5667faa
@ -8,6 +8,8 @@ The current platform configuration for the Apple II targets the original Apple I
|
|||||||
Simple programs have been tested on the Apple II, II+, IIe and enhanced IIe. The IIc, IIc+ are untested.
|
Simple programs have been tested on the Apple II, II+, IIe and enhanced IIe. The IIc, IIc+ are untested.
|
||||||
The IIgs may work in compatibility mode, but this is untested. The Apple III is untested.
|
The IIgs may work in compatibility mode, but this is untested. The Apple III is untested.
|
||||||
|
|
||||||
|
ProDOS support is handled by the [`apple2_prodos` module](../stdlib/apple2.md).
|
||||||
|
|
||||||
### Running your program
|
### Running your program
|
||||||
|
|
||||||
The compiler output is a raw machine code file, which then has to be put on a disk.
|
The compiler output is a raw machine code file, which then has to be put on a disk.
|
||||||
@ -26,83 +28,3 @@ When you have placed your file on disk, boot the disk and enter this at the BASI
|
|||||||
This has been successfully tested under DOS 3.3 and [ProDOS 2.4](https://prodos8.com/), on an Apple II+ and Apple IIe.
|
This has been successfully tested under DOS 3.3 and [ProDOS 2.4](https://prodos8.com/), on an Apple II+ and Apple IIe.
|
||||||
|
|
||||||
Creating a bootable disk is beyond the scope of this document.
|
Creating a bootable disk is beyond the scope of this document.
|
||||||
|
|
||||||
### apple2_prodos
|
|
||||||
|
|
||||||
This module provides basic support for issuing ProDOS calls. It assumes
|
|
||||||
ProDOS has been loaded normally before your program has started. The
|
|
||||||
API closely follows the ProDOS machine language interface. See the
|
|
||||||
[ProDOS 8 Technical Reference Manual](http://www.easy68k.com/paulrsm/6502/PDOS8TRM.HTM)
|
|
||||||
for more details, such as the error code values returned. The following functions
|
|
||||||
are currently implemented:
|
|
||||||
|
|
||||||
void prodos_read_block(byte unit, pointer data_buffer, word block_number)
|
|
||||||
|
|
||||||
Read the specified block from device unit into data_buffer. data_buffer must be
|
|
||||||
page-aligned.
|
|
||||||
|
|
||||||
void prodos_write_block(byte unit, pointer data_buffer, word block_number)
|
|
||||||
|
|
||||||
Write the specified block from device unit into data_buffer. data_buffer must be
|
|
||||||
page-aligned.
|
|
||||||
|
|
||||||
void prodos_close(byte rnum)
|
|
||||||
|
|
||||||
Close file referred to by reference rnum. ProDOS will free the associated buffers
|
|
||||||
and flush all changes to disk if necessary.
|
|
||||||
|
|
||||||
void prodos_flush(byte rnum)
|
|
||||||
|
|
||||||
Flush any changes to disk for file referred to by reference rnum.
|
|
||||||
|
|
||||||
void prodos_get_prefix(pointer filename)
|
|
||||||
|
|
||||||
Takes a pointer to a 64 byte buffer. ProDOS will fill this with the current path
|
|
||||||
prefix as a Pascal-style string.
|
|
||||||
|
|
||||||
void prodos_set_prefix(pointer filename)
|
|
||||||
|
|
||||||
Sets or modifies the ProDOS prefix. Takes a pointer to a Pascal-style string.
|
|
||||||
|
|
||||||
void prodos_create(pointer filename, byte filetype)
|
|
||||||
|
|
||||||
Create a file. Filename is a pointer to a Pascal-style string. filetype is one
|
|
||||||
of the standard ProDOS file types. See the ProDOS manual for more details. This
|
|
||||||
*must* be called before a file can be opened or written. ProDOS does not create
|
|
||||||
files implicitly.
|
|
||||||
|
|
||||||
void prodos_destroy(pointer filename)
|
|
||||||
|
|
||||||
Delete a file.
|
|
||||||
void prodos_rename(pointer filename, pointer new_filename)
|
|
||||||
|
|
||||||
Rename a file.
|
|
||||||
|
|
||||||
byte prodos_open (pointer filename, pointer buffer)
|
|
||||||
|
|
||||||
Open a file. Filename is a pointer to a Pascal-style string containing the path of
|
|
||||||
file to be opened. Buffer is a 1024 byte I/O buffer used internally by ProDOS. The
|
|
||||||
buffer must be page-aligned. This call returns a byte which is the ProDOS file
|
|
||||||
handle. This handle is used by other calls.
|
|
||||||
|
|
||||||
A minimal example:
|
|
||||||
|
|
||||||
byte file_handle
|
|
||||||
array io_buffer [1024] align (256)
|
|
||||||
file_handle = prodos_open("myfile"p, io_buffer)
|
|
||||||
prodos_close(file_handle)
|
|
||||||
|
|
||||||
Files must exist to be opened. Use the prodos_create call to create a file
|
|
||||||
first if necessary.
|
|
||||||
|
|
||||||
void prodos_newline(byte rnum, byte mask, byte newline_char)
|
|
||||||
|
|
||||||
Set the ProDOS newline character and mask. See ProDOS manual for details.
|
|
||||||
|
|
||||||
void prodos_read(byte rnum, pointer data_buffer, word read_count)
|
|
||||||
|
|
||||||
Read the number of bytes specified by read_count into data_buffer from file handle rnum.
|
|
||||||
|
|
||||||
void prodos_write(byte rnum, pointer data_buffer, word write_count)
|
|
||||||
|
|
||||||
Write the number of bytes specified by write_count from data_buffer to file handle rnum.
|
|
@ -77,6 +77,8 @@
|
|||||||
* [PET-only modules](stdlib/cbm_pet.md)
|
* [PET-only modules](stdlib/cbm_pet.md)
|
||||||
|
|
||||||
* [`cbm_file` module](stdlib/cbm_file.md)
|
* [`cbm_file` module](stdlib/cbm_file.md)
|
||||||
|
|
||||||
|
* [Apple II-only modules](stdlib/apple2.md)
|
||||||
|
|
||||||
* [NES-only modules](stdlib/nes.md)
|
* [NES-only modules](stdlib/nes.md)
|
||||||
|
|
||||||
|
91
docs/stdlib/apple2.md
Normal file
91
docs/stdlib/apple2.md
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
[< back to index](../doc_index.md)
|
||||||
|
|
||||||
|
# Apple II-oriented modules
|
||||||
|
|
||||||
|
## apple2_prodos module
|
||||||
|
|
||||||
|
This module provides basic support for issuing ProDOS calls.
|
||||||
|
It assumes ProDOS has been loaded normally before your program has started.
|
||||||
|
The API closely follows the ProDOS machine language interface.
|
||||||
|
See the
|
||||||
|
[ProDOS 8 Technical Reference Manual](http://www.easy68k.com/paulrsm/6502/PDOS8TRM.HTM)
|
||||||
|
for more details, such as the error code values returned.
|
||||||
|
The following functions are currently implemented:
|
||||||
|
|
||||||
|
#### void prodos_read_block(byte unit, pointer data_buffer, word block_number)
|
||||||
|
|
||||||
|
Read the specified block from device `unit` into `data_buffer`.
|
||||||
|
`data_buffer` must be page-aligned.
|
||||||
|
|
||||||
|
#### void prodos_write_block(byte unit, pointer data_buffer, word block_number)
|
||||||
|
|
||||||
|
Write the specified block from device `unit` into `data_buffer`.
|
||||||
|
`data_buffer` must be page-aligned.
|
||||||
|
|
||||||
|
#### void prodos_close(byte rnum)
|
||||||
|
|
||||||
|
Close file referred to by reference `rnum`.
|
||||||
|
ProDOS will free the associated buffers and flush all changes to disk if necessary.
|
||||||
|
|
||||||
|
#### void prodos_flush(byte rnum)
|
||||||
|
|
||||||
|
Flush any changes to disk for file referred to by reference `rnum`.
|
||||||
|
|
||||||
|
#### void prodos_get_prefix(pointer filename)
|
||||||
|
|
||||||
|
Takes a pointer to a 64-byte buffer.
|
||||||
|
ProDOS will fill this with the current path prefix as a Pascal-style string.
|
||||||
|
|
||||||
|
#### void prodos_set_prefix(pointer filename)
|
||||||
|
|
||||||
|
Sets or modifies the ProDOS prefix.
|
||||||
|
Takes a pointer to a Pascal-style string.
|
||||||
|
|
||||||
|
#### void prodos_create(pointer filename, byte filetype)
|
||||||
|
|
||||||
|
Create a file.
|
||||||
|
`filename` is a pointer to a Pascal-style string.
|
||||||
|
`filetype` is one of the standard ProDOS file types.
|
||||||
|
See the ProDOS manual for more details.
|
||||||
|
This *must* be called before a file can be opened or written.
|
||||||
|
ProDOS does not create files implicitly.
|
||||||
|
|
||||||
|
#### void prodos_destroy(pointer filename)
|
||||||
|
|
||||||
|
Delete a file.
|
||||||
|
|
||||||
|
#### void prodos_rename(pointer filename, pointer new_filename)
|
||||||
|
|
||||||
|
Rename a file.
|
||||||
|
|
||||||
|
#### byte prodos_open (pointer filename, pointer buffer)
|
||||||
|
|
||||||
|
Open a file.
|
||||||
|
`filename` is a pointer to a Pascal-style string containing the path of file to be opened.
|
||||||
|
Buffer is a 1024 byte I/O buffer used internally by ProDOS.
|
||||||
|
The buffer must be page-aligned.
|
||||||
|
This call returns a byte which is the ProDOS file handle.
|
||||||
|
This handle is used by other calls.
|
||||||
|
|
||||||
|
A minimal example:
|
||||||
|
|
||||||
|
byte file_handle
|
||||||
|
array io_buffer [1024] align (256)
|
||||||
|
file_handle = prodos_open("myfile"p, io_buffer)
|
||||||
|
prodos_close(file_handle)
|
||||||
|
|
||||||
|
Files must exist to be opened.
|
||||||
|
Use the `prodos_create` call to create a file first if necessary.
|
||||||
|
|
||||||
|
#### void prodos_newline(byte rnum, byte mask, byte newline_char)
|
||||||
|
|
||||||
|
Set the ProDOS newline character and mask.
|
||||||
|
See ProDOS manual for details.
|
||||||
|
|
||||||
|
#### void prodos_read(byte rnum, pointer data_buffer, word read_count)
|
||||||
|
|
||||||
|
Read the number of bytes specified by `read_count` into `data_buffer` from file handle `rnum`.
|
||||||
|
|
||||||
|
#### void prodos_write(byte rnum, pointer data_buffer, word write_count)
|
||||||
|
|
||||||
|
Write the number of bytes specified by `write_count` from `data_buffer` to file handle `rnum`.
|
@ -50,6 +50,7 @@ nav:
|
|||||||
- C64-only modules: stdlib/c64.md
|
- C64-only modules: stdlib/c64.md
|
||||||
- VIC-20-only modules: stdlib/vic20.md
|
- VIC-20-only modules: stdlib/vic20.md
|
||||||
- PET-only modules: stdlib/cbm_pet.md
|
- PET-only modules: stdlib/cbm_pet.md
|
||||||
|
- Apple II-only modules: stdlib/apple2.md
|
||||||
- NES-only modules: stdlib/nes.md
|
- NES-only modules: stdlib/nes.md
|
||||||
- Lynx-only modules: stdlib/lynx.md
|
- Lynx-only modules: stdlib/lynx.md
|
||||||
- Game Boy–only modules: stdlib/gb.md
|
- Game Boy–only modules: stdlib/gb.md
|
||||||
|
Loading…
Reference in New Issue
Block a user