Hi, On Sat, 29 Jan 2022, Thorsten Otto via fpc-devel wrote:
> On Freitag, 28. Januar 2022 20:21:03 CET Karoly Balogh wrote: > >> a fixed GAS/LD support would be nice, of course. > > Yes, but currently i'm a bit lost here. Since that combination currently > does not support "smart linking", i guess i'll stick to vasm for now. Just for the record, the GNU as/ld is Atari specific, it's not a general issue for FPC on m68k. We run just fine with GNU as/ld on Linux/m68k for example, with all the bells & whistles enabled, but of course that's just ELF, and doesn't need any special treatment. > There are other parts that should be improved, and seem more important > to me (like ARGV support, completing the GEMDOS/BIOS/XBIOS interface > etc) Totally agree here. > Currently i'm trying to figure out whats wrong with readln() (used eg. > when getting the help screen). On both TOS anfd MiNT, i have to press > "return" three times. But can't find where readln(textfile) (without any > extra arguments) is implemented. All i can find is some declaration in > inc/system.fpd, and the procedure fpc_readln_end in inc/text.inc. Is > that actually the function which is called? And how does that magic > work? All read/write I/O functions of the RTL just wrap to OS specific calls, implemented in rtl/atari/sysfile.inc. Specifically, you want to look at do_read() and do_write(). These just call gemdos_fread() and gemdos_fwrite() for now, respectively. I think this is the main issue, as I've seen GEMDOS has special calls for console I/O which are not being utilized now. Or maybe you can set some file handle behavior, but we don't do that either. > I expect there some problem with expecting CR/LF also when reading from > console (although the win32 platform does not seem to suffer from this) Again, this isn't a generic problem, but Atari specific. I think the problem is the special nature of the console window, at least there seem to be special GEMDOS specific calls for console I/O. This of course add some complexity, because I didn't know how to choose the right file I/O function based on maybe the type of my file handle, or had no idea how redirection worked, etc. So I just wired it to gemdos_fread(), because that was kinda working (minus the 3 times enter thing). It certaily works for file I/O, otherwise the compiler would be read anything properly, and since even the compiler works, that can't be broken there. I think gemdos_fread() to a con handle actually just blocks there in case we try to read from stdin, and stdin is a console handle. FPC certainly doesn't try to wait for enter 3 times. Cheers, -- Charlie _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel