Hello,
it is very easy to write for BSDOS. It uses services.
Basically, BSDOS 308 (it is the latest version of BSDOS) uses 2 16kB SRAM pages (each one is paged in from 0-16384).
One contains BSROM118, normal ROM with special features, and this ROM is paged in most of the time, for normal work. The second contains BSDOS itself and you page it in, only when you need to work with disks. Paging is done through OUT instruction on port 23, so there is no auto paging like in TRDOS (eg. CALL 3d13h).
The BSDOS services are divided into two layers. The lower layer is FDC BIOS layer, like for example, reading and writing physical sectors- it has 17 services. The upper layer contains "upper routines" like loading a file, disk catalogue, disk search, 32bit arithemtics, etc...it has 50 services.
typically, code for calling a service looks like this:
Load:
.
.
page in BSDOS SRAM page
ld hl,file number
ld ix, adress
ld bc, sector number
ld e,number of sectors
ld a,LOAD service
rst #20
page in BSROM page
.
.
And that's it.
I would love to send you manual with services description, but it is still in Czech, so maybe I will translate it into English and then post it here.
As for tape operation emulation, you are correct, it is one of many BSDOS features. It works with every standart loader. But it, of course, does not work if there is a special loader. However, for re-work of ZX ASM 3.0 for MB02+ I will not use tape emulation, but standart service, as I am writing above.
BSDOS originated in 1996 and it is so genially written, that when we started to connect IDE disks to MB02+, only very small modification had to be done and we coul use hdd very comfortably.
I am already in contact with author RubtsOFF, and he promised to help, which is great. I already tested to load in ZASM 3.0 in MB02+ and it works perfectly. The hardest will be probably MAKE function, and CATALOGUE.
Tell me, please, can I assemble block in version 3.0 or assembly function works only for the whole text???
Also, would you be so kind, and tell me the main differences between version 3.0 and 3.10?? I know there is a manual but I am not very skilled in Russian language.
Thanks
Hood





Ответить с цитированием