STS for iS-DOS
ZXNet echo conference «real.speccy»
From Valerij Kozhevnikoff → To All 9 September 2002
I was just thinking...
Why is isdos unpopular among the people? Probably because it is obscure. Hmm.
They sent me a driver for high-density floppy disks. This thing
really allows you to create and use 1600 KB devices on
regular HD floppy disks. VG93 allows this. An iS-DOS floppy disk with a normal DD
density
holds 3200 blocks. After a simple upgrade to HD and using
software that supports it, there are already 6400 blocks. Made in 1999, the author is the well-known Ruiner AKA Oleg Grigoriev, moderator of CODE.ZX.
It’s difficult to get used to the incomprehensible. So we need to bring into this incomprehensibility a piece of
something familiar and understandable. Subject, in general.
Starting address sts51.com - 24000. Flies behind.
Normal there is no way out from there! There is no support for the isdos file system either. I'm lazy. It's just that there's a stupid loader stuck to the original STS 5.1 files. I started to rummage around in search of procedures responsible for exiting to
ASM/Basic/DOS, but gave up. Everything is somehow confused there. It will be necessary -
look for/report these addresses, I will do it the normal way. If something is not clear to you,functions - write, I will always help.
To return to isdos you need to do JP #5DE5, there is a trick there. It waits
for all buttons to be released and exits to the shell with the stack cleared.
* The original is written in ZX.SPECTRUM
* also sent to REAL.SPECCY
* also sent to KHARKOV.SPECTRUM
* also sent to SPB.SPECCY
* also sent to ZXNET.SOFT
Just in case, here is the source loader.
ORG 24000
LD HL, FILE1 ;name
LD D,#FB ;st. address byte
LD A,#16 ;page
CALL LOAD
RET C
LD HL, FILE2
LD D,#DB
LD A,#17
CALL LOAD
RET C
DI
LD HL,END
PUSH HL
LD BC,#7FFD
LD A,#17
OUT (C),A
JP #DB00 ;launch STS
END
LD A,#10 ;and this is an outing to death
LD BC,#7FFD
OUT (C),A
EI
LD C,8
RST 16
XOR A
LD A,#F4
LD C,#84
JP 16
LOAD
LD (PAGE+1),A
LD A,D
LD (ADDR+1),A
LD C, #34
RST 16
RET C
EXX
LD DE, 14
ADDHL, DE
LD A, (HL)
OR A
INC HL
LD B, (HL) ;длина файла в блоках
JR Z, $+3
INC B
LD E, D
LOOP
PUSH BC
LD HL, BUFF
LD BC, #012B
RST 16
POP BC
RET C
PUSH HL
LD A, E
EXX
POP HL
ADDR ADD A, #C0
LD D, A
PAGE LD A, #16
LD BC, #7FFD
DI
OUT (C), A
LD BC, #100
LD E, C
LDIR
LD BC, #7FFD
LD A, #10
OUT (C), A
EI
EXX
INC E
DJNZ LOOP
RET
FILE1 DEFM "sts#16 cod"
FILE2 DEFM "sts#17 cod"
BUFF DEFS #100
WBR, Jason.
/*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/
/np:/ *Death - Symbolic - Symbolic* [paused]