RE: LZ: PSOII Libraries


[Prev][Next][Index][Thread]

RE: LZ: PSOII Libraries



>Micah/Richard Brodsky wrote:
>>
>> *** You mean not much bigger than OS-85? CShell is smaller than ZShell.
>
>No, I meant CShell. It [Usgard] is a little more than 1k bigger then CShe=
>ll, which isn't
>much at all.
>
>> *** I don't have a shell. I have a shell independant overlay system, no=
>t
>> needing a backup or an installer PRGM. And because of the way RST 10h w=
>orks, a
>> program can detect whether a library is missing with 2 bytes.
>
>Two bytes? You would have to store the name of the library string somewhe=
>re
>in the program also.
>
>> Also, one simply
>> doesn't have to have the ZShell signature in them, thereby making them =
>visible
>> in TI-OS but not ZShell/CShell/OS-85. As for knowing what you can delet=
>e when
>> deleting a program, well, I have never heard of a method for making tha=
>t easy
>> that will work with PSOII. All I can think of is listing it in programs=
>'
>> startup screens and/or in the docs.
>
>If in the startup screen - memory wasting. And docs? HAHAHAHA - 95% of al=
>l
>ti gamers are allergic to docs. If they don't delete it immediatelly, the=
>y
>at least never read them.
>
>> *** That's the key! Their is no "plain ZShell" to PSOII. The libraries =
>are all
>> independant strings that you can place in an .85g with your program. If=
> the
>> library's already there, you just don't overwrite it. Simple as that. N=
>o
>> change to the shell's string at all!
>
>How do you make a call to a library? If you don't intend to have a shell
>whatsoever, the whole library name needs to be in the program. Also, each
>call will take several bytes. It will take even more bytes if you want mo=
>re
>than one function in each library (which of course is a requirement).

The MAJOR disadvantage to PSOII is that programs DO have to have overhead. 
About 50 bytes of it per program. If, however, remapping of ~30 CALLs or JPs 
in the program is accomplished (not too hard. I got ~70 in ZD-Bug), that space 
is made up for. This will not apply to USGARD, since it remaps automatically. 
The only use for PSOII with USGARD is that its libraries will be compatible 
with other shells. 

>> >2 bytes per relocation? You save one byte for each CALL_ and JUMP_ (wh=
>ich=3D
>>=20
>> *** DAMN! A major miscount here: for some reason, you don't save space =
>(also,
>> the loader is 45 bytes, not 63)?! At any rate, I have plan to up it to =
>2 bytes
>> for sure, I just have to write the code. I have a plan that also won't =
>save
>> space, but will increase speed.
>
>Save two bytes when making a CALL_? Good luck :)

No extra good luck necessary. If I haven't miscalculated, I should have that 
up and running by tonight.

>> *** So what if it's old? This allows relocation without changing your s=
>hell!
>> And you save space over having the code built in to programs if even 2
>> programs use it. It's an independant string of 115 bytes. I may make it=
> MUCH
>> more efficient by bringing it up to about 170 bytes. (How's temporarily
>> classified;)
>
>As most ppl who dislike libraries have pointed out - libraries will not b=
>e
>reused that much.

So why were people yelling about them so much? At any rate, at a loss of ~50 
bytes per program using a PSOII library, if a library's used once, what's soo 
bad? And if it's used twice, all the better.

>> *** As I said before, no shell here, and this isn't exculsive with inte=
>rrupts.
>> I could build a non-PSOII library to add interrupt functionality, shell
>> independant, to work with PSOII. Also, this is designed to be a near-pa=
>inless
>> and very compact implementation of some features that USGARD happens to=
> have,
>> but intended for people who don't want USGARD or don't have room for it=
>. (And
>> you could have as many libraries as you want, no limit of 256)
>
>Hmm, where do you intend to store the 257 byte interrupt vector if you wa=
>nt
>to make it shell independent? Btw, 256 libraries is more than enough :)

The reason why an intlib would not be PSOII is because it wouldn't be shell 
independant:(.

The 256 limit is avoided by storing the name of the library for RST 10h in the 
program. This is a curse and a blessing. It could be avoided, but to save 8 
bytes?!? not worth it.



>--=20
>Jimmy M=E5rdell                   "Searching for shelter
>mailto:mja@algonet.se            My brain is on ice
>http://www.algonet.se/~mja       I'm scared of my own thoughts
>IRC: Yarin                       I can hear them cry" /Leather Strip
>

NOTE: I will be away, starting on the 29th of June, for 3 weeks. During that 
time, I will not be able to develop more for PSOII.
--MZB (micahbro@msn.com)


Follow-Ups: