XOPEN
Description
open a file
Input
- Y : flag open mode
- A&X : path filename
Output
- AX contains $FF if it does not exists
- A : FD id if file is found
Modify
- RES, A X Y, XOPEN_SAVE XOPEN_FLAGS, XOPEN_RES_SAVE, XOPEN_SAVEA
- with XMALLOC call TR7
Internal kernel calls
- XMALLOC
- create_file_pointer
Changelog
Since kernel 2022.2
Flag | File exists | behaviour O_WRONLY | No | return Null O_WRONLY | Yes | open and return FD O_RDONLY | Yes | open and return FD O_WRONLY | No | return Null O_CREAT | No | Create file and open and return FD O_CREAT | Yes | open and return FD
Usage
lda #<str
ldx #>str
ldy #O_CREAT
BRK_TELEMON XOPEN
rts
str:
.asciiz "myfile"
See fopen macro from orix-sdk to use it
XOPEN does not manage './' or '../' calls
Multiples opened files are working since kernel 2022.2
Max 2 opened files are working since kernel 2022.2, it's a constant defined in kernel build
Flags behaviors since kernel 2023.1
Flag | File exists | Behaviour |
---|---|---|
O_WRONLY & O_CREAT | No | Create file, open and return FD |
O_WRONLY | No | return Null (Changed since kernel 2023.1) |
O_WRONLY | Yes | open and return FD |
O_RDONLY | Yes | open and return FD |
O_WRONLY | No | return Null |
O_CREAT | No | Create file and open and return FD |
O_CREAT | Yes | open and return FD |
Flags behaviors before kernel 2023.1
Flag | File exists | Behaviour |
---|---|---|
O_WRONLY & O_CREAT | No | Create file, open and return FD |
O_WRONLY | No | open and return FD |
O_WRONLY | Yes | open and return FD |
O_RDONLY | Yes | open and return FD |
O_WRONLY | No | return Null |
O_CREAT | No | Create file and open and return FD |
O_CREAT | Yes | open and return FD |