diff --git a/libsrc/atari/crt0.s b/libsrc/atari/crt0.s index 8edc4046f..3c1b2d820 100644 --- a/libsrc/atari/crt0.s +++ b/libsrc/atari/crt0.s @@ -22,7 +22,6 @@ .include "zeropage.inc" .include "atari.inc" - .include "_file.inc" ; ------------------------------------------------------------------------ ; EXE header @@ -101,18 +100,6 @@ L1: lda sp,x lda #$FF sta CH -; set stdio stream handles - - lda #0 - jsr getfd - sta __filetab + (0 * .sizeof(_FILE)); setup stdin - lda #0 - jsr getfd - sta __filetab + (1 * .sizeof(_FILE)); setup stdout - lda #0 - jsr getfd - sta __filetab + (2 * .sizeof(_FILE)); setup stderr - ; Push arguments and call main jsr callmain diff --git a/libsrc/atari/getfd.s b/libsrc/atari/getfd.s index 6fb38e9ae..a5457c5aa 100644 --- a/libsrc/atari/getfd.s +++ b/libsrc/atari/getfd.s @@ -7,12 +7,15 @@ .include "atari.inc" .include "fd.inc" + .include "_file.inc" .importzp tmp1 .export fdt_to_fdi,getfd .export fd_table,fd_index .export ___fd_table,___fd_index ; for test(debug purposes only + .constructor initfds,24 + .data ___fd_index: @@ -32,6 +35,23 @@ fd_table: ; each entry represents an open iocb .code +; set stdio stream handles + +.proc initfds + + lda #0 + jsr getfd + sta __filetab + (0 * .sizeof(_FILE)); setup stdin + lda #0 + jsr getfd + sta __filetab + (1 * .sizeof(_FILE)); setup stdout + lda #0 + jsr getfd + sta __filetab + (2 * .sizeof(_FILE)); setup stderr + rts + +.endproc + ; fdt_to_fdi ; returns a fd_index entry pointing to the given ft_table entry ; get fd_table entry in A