Page 1 of 1

Re: tap8k. simple, small and fast loader

Posted: Mon Dec 11, 2017 9:22 am
by Ast A. Moore
antoniovillena wrote: Mon Dec 11, 2017 1:32 am
Ast A. Moore wrote: Sun Dec 10, 2017 3:18 pm I’m also quite confused. Is it compressing the data or simply puts machine code inside the BASIC loader? Because you can do both with many assemblers already.
puts machine code inside BASIC loader. What assembler do that?
zasm, for instance.

Re: tap8k. simple, small and fast loader

Posted: Mon Dec 11, 2017 12:00 pm
by antoniovillena
Ast A. Moore wrote: Mon Dec 11, 2017 9:22 am zasm, for instance.
I have Windows and I can't try.

Re: tap8k. simple, small and fast loader

Posted: Fri Mar 02, 2018 5:38 pm
by antoniovillena
I have released a version that includes shrinkler compressor, developped here.

https://github.com/antoniovillena/zx7b/ ... /shr8k.asm

So from a input binary file assembled with org $8000 you will have a compressed TAP file like this:

https://github.com/antoniovillena/zx7b/ ... r/demo.tap

Re: tap8k. simple, small and fast loader

Posted: Sat Mar 03, 2018 11:59 am
by Nomad
Has it been tested on real hardware (48k,128k,+3) Just curious because a lot of these loaders that perform seemingly fine in emulation have issues on the real thing.

I must confess I never really thought about a better loader than what zeus/pasmo gives you but fair play there appears to be scope for improvement over what the assemblers can give us. I am just concerned if it will work on real hardware.

Re: tap8k. simple, small and fast loader

Posted: Sun Mar 04, 2018 10:59 am
by antoniovillena
Nomad wrote: Sat Mar 03, 2018 11:59 am I am just concerned if it will work on real hardware.
Yes. It works on real hardware.

Re: tap8k. simple, small and fast loader

Posted: Fri Mar 16, 2018 11:59 pm
by Rorschak
The program fails if you have an interface that moves the basic. A spectrum 48K with a betadisk interface moves the basic away from 23755. You should probably check PEEK 23635+256*PEEK 23636 in order to locate the start of your code.

If you need to know where your code is executing, i use this little trick:

Code: Select all

LocateProgram:	XOR		A	; SET Z FLAG
		INC		A	; RESET Z FLAG
		CALL  		$1FC6	; THIS CALL TO THE ROM CONTAINS THESE INSTRUCTIONS. POP HL, RET Z, JP (HL). 
Mycode:		...			; AT THIS POINT, HL CONTAINS THE ADDRESS OF THIS INSTRUCTION