L80

Page 3/4
1 | 2 | | 4

By MicroTech

Champion (385)

MicroTech's picture

21-04-2006, 14:43

Here I am again with another L80 related question:

Development requires splitting code in many files and I've reached the limit of 110 files
per directory.
I use RuMsx and BlueMsx which (both) support 2 diskdrives.
I already splitted my .rel files on both disk drives but the problem
(only 110 files per dir) is still threatening.

I've tried L80 v.2.00 which supports paths with directories but when linking
the (approx) 60th .rel file I get a "No spare file handles" error.

Question 1:
Is a more efficent version of L80 available?
(possibly supporting subdirs and not limited to 64 file handles)

Question 2:
Is a msdos-style SUBST command available for MSXDOS2?
(ASSIGN is not useful 'cause I can't stop linking to "assign" a new drive)

Thanks
MicroTech

By pitpan

Prophet (3144)

pitpan's picture

21-04-2006, 14:51

I really wonder why would anyone require such an amount of files! Tongue

I don't know what can be done to fix the problem, but I guess that instead of looking for a new tool it would be better to modify the program structure so that is has a reasonable number of independant files. Wink

By ARTRAG

Enlighted (6538)

ARTRAG's picture

21-04-2006, 14:54

what about a linker for ms-dos ?
If you use bluemsx you could use a "cross"link in
a ms-dos window.
Maybe hlink ( from hitech ) works...

arf

In case look for LD80, it is a cross linker compatible with L80
http://search.luky.org/cola.2000/msg00534.html
and
http://gatling.ikk.sztaki.hu/~kissg/pd/ld80.html

{mod: The usual}

By ro

Scribe (4473)

ro's picture

21-04-2006, 15:25

man, what project are yeh working on!
It must be the bongzila of all coding projects. haha. darn dude, why not use subdirs?
and 110 files for sources?!?!?!
and all those link files, oh common!

By MicroTech

Champion (385)

MicroTech's picture

21-04-2006, 15:52

@ pitpan:
Ascii C has a limited amount of "label buffer" so reducing the number of header files #included
forces code to be split on more files.
For example if a function is very complex and as "tons" of #include you may be forced to leave 1 function per file).

I already have 1 .dsk with C compiler, 1 .dsk containing E3D library and 1.dsk with the application...
I'll try to reorganize.

@ ARTRAG:
I think Ascii C produces the most efficient asm code so I wish to continue using it:
linking on PC would force me to export .rel files from .dsk to pc harddisk to link
and then to import the executable again in the .dsk to test: is this correct?

@ ro:
I've written that L80 v1.00 doesn't support subdirs
while L80 v 2.00 is limited to (less than) 64 files.
The problem is that when linking all the necessary .rel files must be online and visible contemporary.

Probably I should build a library with the "less recently used" .rel files but I wish to find a faster way, if possible...

MicroTech

By ro

Scribe (4473)

ro's picture

21-04-2006, 16:06

why not compress more files into 1 link file for example.. or I'm I talking stupid here (never used link files, wbass remember)

By ARTRAG

Enlighted (6538)

ARTRAG's picture

21-04-2006, 16:39


I think Ascii C produces the most efficient asm code so I wish to continue using it:
linking on PC would force me to export .rel files from .dsk to pc harddisk to link
and then to import the executable again in the .dsk to test: is this correct?

Correct! The easyest way should be
1) develop with the C you like in the emulator using "dirasadisk" options,
2) link the rel file where they are (in their dir) using a cross linker (LD80 or what you like) from a msdos cmd shell

By MicroTech

Champion (385)

MicroTech's picture

21-04-2006, 17:05

@ ro:
I link with:
L80 < filelist.txt
where filelist.txt contains a list of .rel modules.
filelist.txt can be long "as I wish" but I've "only" 2 disk drives
with 112 files each (I wrote 110 but I was wrong, the right number is 112).

@ ARTRAG:
BlueMsx help says:

This is the Dir as Dsk feature, that works only in reading mode for security reasons : you can make changes on the virtual disk image, but these changes are not transferred to the Windows source directory.

This feature has also specific MSX limitations : no more than 112 files in a directory and you can't exceed a total size of 720 Kb (including the boot sector that will be added automatically on the virtual disk image). It can't work with MSX subdirectories and with special boot sectors.

Maybe my English is not very excellent Eek! but I understand that "dis as dsk"'s behaviour is a bit particular: if I link how can I "export" my executable to a "safe" place (pc harddisk)?
Seems a bit convulse to me Question

By ARTRAG

Enlighted (6538)

ARTRAG's picture

21-04-2006, 17:21


if I link how can I "export" my executable to a "safe" place (pc harddisk)?
Seems a bit convulse to me

you mean that you cannot compile having the rel file written in the virtual disk, do you ?

In this case you can compile on a true msx and than link on a PC
Each time you need to compile in MSX
pass the disk to the PC
link
and move teh disk to msx
or...
you could use openmsx, where dirasadisk can also write the files if the
total size of the file does not increase.

Smile

Last resort, pass to a crosscompiler, I think that this is a very
difficult step once the project is almost finished...
anyway I have no other proposals.Question

By MicroTech

Champion (385)

MicroTech's picture

21-04-2006, 17:36

@ ARTRAG:
an Italian boy (me) writes in English to another Italian boy (you) who answers in English and the first boy (me) doesn't understand ('cause it's in English)... really funny Wink
Where is the "Italiano" flag? Cool

Also using openMsx it seems improbable that output file will always have the same size...

This project is growing but its end is still far, being alone... Crying
Grazie comunque, e' raro avere alleati in patria Wink

Page 3/4
1 | 2 | | 4