Merge pull request #2032 from jedeoric/telestrat_lseek

[Telestrat Target]  Add fseek to telestrat target (Orix)
This commit is contained in:
Bob Andrews 2023-03-19 11:51:24 +01:00 committed by GitHub
commit 8692630369
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 0 deletions

View File

@ -277,6 +277,8 @@ XRECLK = $3C ; Reset clock
XCLCL = $3D ; Close clock
XWRCLK = $3E ; Displays clock in the address in A & Y registers
XFSEEK = $3F ; Only in Orix
; Sound primitives
XSONPS = $40 ; Send data to PSG register (14 values)
XOUPS = $42 ; Send Oups sound into PSG

39
libsrc/telestrat/lseek.s Normal file
View File

@ -0,0 +1,39 @@
;
; Jede (jede@oric.org), 2023-03-13
;
; off_t __fastcall__ lseek(int fd, off_t offset, int whence);
.export _lseek
.include "telestrat.inc"
.include "zeropage.inc"
.import popax
.proc _lseek
; Save whence
sta tmp1
; Skip X
; Get offset and store
jsr popax
sta tmp2
stx tmp3
jsr popax
sta RESB
stx RESB+1
; Get FD
jsr popax
; Does not need X
sta RES ; Save FD
lda tmp2
ldy tmp3
ldx tmp1 ; Get whence
BRK_TELEMON XFSEEK
rts
.endproc