OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 16.04.2024, 09:19

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 17 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
PříspěvekNapsal: 18.01.2024, 15:33 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Hello everybody,
apologies for posting in English, I'll do my best to make it understandable.

I ported the CP/M version of the Microsoft BASIC to the ZX Spectrum !

https://github.com/z88dk/techdocs/blob/ ... mbasic.asm


I discovered the Dataputer DISKFACE in your forum and I thought to try a blind conversion (I can't test it).
Is there anybody available to try it on the real hardware ?

Příloha:
zxbasic_diskface.zip [20.86 KiB]
32 krát


I'm adding misc pictures taken from other ZX Spectrum models.


This BASIC all the MBASIC 5.22 features but it is bugfixed to avoid the original problems of those versions (notably INPUT a,b,c).

The extra commands in MSX style:
VPOKE, VPEEK, PSET, PRESET, POINT, CSRLIN, LINE, CLS, COLOR, LOCATE, PRINT @#, DRAW, CIRCLE
Tape load/save: LOAD!, LOAD!? (=CLOAD, CLOAD?) and SAVE! (=CSAVE) ...Kansas City Standard, at 1200 bps, MSX style CSAVE protocol.

The extra commands in Philipsg VG-5000 style:
OUT! (=PLAY) and OUT@ (=SOUND), they're single channel melody commands.

On any problem, I can try to fix. Pictures of a real Spectrum running it would be very welcome ;)


Stefano


Přílohy:
zxbasic_quorum.png
zxbasic_quorum.png [ 15.43 KiB | Zobrazeno 1340 krát ]
zxbasic2.png
zxbasic2.png [ 6.6 KiB | Zobrazeno 1340 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 18.01.2024, 17:15 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 21:39
Příspěvky: 1974
Bydliště: Praha
Has thanked: 85 times
Been thanked: 255 times
It is a CP/M version of MBASIC modified for ZXS graphic ? It means it will work in any ZXS CP/M version? Because we have more versions than Dataputer Diskface's one.


Nahoru
 Profil  
 
PříspěvekNapsal: 18.01.2024, 17:28 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Yes, it will do sound (on any Spectrum) and graphics on all the ZX Spectrum CP/M versions I could cover.
Programs can be saved both on disk or on tape, which can help in transferring them :)

At the moment I covered (tested on emulation):

- ZX Spectrum +3 - CP/M Plus (Amstrad)
- Scorpion ZS, Kay-1024, Pentagon (expanded) - FK0CPM by Kirill Frolov
- Scorpion CP/M (MOA '92) - 512x256 monochrome graphics (color commands will are uneffective)
- PINIX CP/M on Profi, Profi+ (untested on Scorpion, Pentagon+16k cache, KAY, Spectrum +3 with BetaDisk)
- KLUG CP/M CP/M on Profi series
- QUORUM-128 (CP/J)
- ELWRO 800 Junior (CP/J)
- HC-2000 (and possibly HC-91)


Nahoru
 Profil  
 
PříspěvekNapsal: 19.01.2024, 19:04 
Offline
Radil

Registrován: 13.03.2016, 18:54
Příspěvky: 303
Has thanked: 130 times
Been thanked: 88 times
Unfortunately it doesn't work on Diskface :-(

Příloha:
zxbasic.jpg
zxbasic.jpg [ 41.61 KiB | Zobrazeno 1181 krát ]


Chip


Nahoru
 Profil  
 
PříspěvekNapsal: 19.01.2024, 20:01 
Offline
Radil

Registrován: 13.03.2016, 18:54
Příspěvky: 303
Has thanked: 130 times
Been thanked: 88 times
So sorry, I didn't understand that BIN is not enough to rename to COM, but it's an IMG floppy. After running on Dataputer Diskface it runs beautifully.
Thank you, good job :thumbup:

Příloha:
01.jpg
01.jpg [ 49.18 KiB | Zobrazeno 1158 krát ]

Příloha:
02.jpg
02.jpg [ 39.56 KiB | Zobrazeno 1158 krát ]


Nahoru
 Profil  
 
PříspěvekNapsal: 20.01.2024, 14:32 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Thank you very much for the report!

I'm so proud I nailed everything including the disk format.
Now I can add this same logic to z88dk. ;)


Nahoru
 Profil  
 
PříspěvekNapsal: 22.01.2024, 10:44 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Last minute correction. I'm rebasing VPEEK and VPOKE to address 0, this will allow portability between all the Spectrum versions.
The disk image I posted still used the standard addresses (16384).

Here's the updated one:
Příloha:
zxbasic.raw.gz [21.54 KiB]
17 krát


If you are not willing to install z88dk and build your version yourself, I can provide the disk images for other targets.
Similarly I'm more than happy to try extending it to other CP/M versions, if someone is offering to test.

The Microsoft BASIC on CP/M has a peculiar editor, refer to the online manuals, it's necessary to do serious programming.

Music example:
Příloha:
song.png
song.png [ 2.53 KiB | Zobrazeno 907 krát ]


Nahoru
 Profil  
 
PříspěvekNapsal: 22.01.2024, 12:09 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 21:39
Příspěvky: 1974
Bydliště: Praha
Has thanked: 85 times
Been thanked: 255 times
It's nice work but unfortunately it's not perfect as it looked like at first sight.

1) It works with Diskface's CP/M, but this CP/M doesn't have good terminal emulation, maybe less standart control characters, I'm not sure, but editor in this version of MBasic is completely broken because of this. For example cursor is stacked at the third row of the screen etc. and it's almost impossible to use it. So it is still possible to use another editor.

2) We have two other (different) CP/M's versions, for ZX Microdrive and for Betadisk and personally, the Diskface's version is not my favorite. Both are very similar because they are from the same author (authors, mainly Jiri Lamac and Daniel Meca) and in my opinion, booth are much better. Unfortunately command "circle" from you zxbasic doesn't work. It doesn't draw anything and almost (not completely) crashes CP/M. It's strange because all three CP/Ms use the same memory scheme and I use all these versions on the same ZXS.

3) Your disk image is fine but it's not necessary to use it. If you like it, use 720KB image (80 tracks drive) instead of this 360KB. Maybe just the binary file (.com) is enough because it's easy to write it to the image file ourselves.


Nahoru
 Profil  
 
PříspěvekNapsal: 22.01.2024, 12:59 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Ok, I feared this kind of problems, it's very difficult to guess everything and make it rigt !
The cursor positioning at 2rd row is.. bad, it could be a memory leak or a wrong ESC sequence on the console.

Any ZXBASIC version requires its own tuning, it depends directly on the CP/M BIOS, which is usually customized.
On the DISKFACE we have a further limit, I'm relying on the BIOS subroutines for the video memory paging, a slightly different BIOS would surely crash.

I think I'm aware of the the other two CP/M versions, is it the LEC memory expansion ?
Honestly I haven't investigated whether the LEC paging is identical to the DISKFACE, but as said it just can't work out of the box.

I chose the 640K disk image because I thought I'd have covered a broader range of disk drives, including the 720K ones. Is it wrong?
By the way, I forgot to post the link to the source code, you can use z88dk to build it yourself.
I'll gladly accept pull requests if they keep the overall code still able to build all the versions.

https://github.com/z88dk/techdocs/blob/ ... mbasic.asm


Nahoru
 Profil  
 
PříspěvekNapsal: 01.02.2024, 10:28 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
New attempt.
I suspect the problem is on the color handling, so I removed it totally.
Could anybody see if the text alignment problem is solved?
This time the BIN file is a COM file, please rename it.

Příloha:
dfbasic.bin [26.96 KiB]
16 krát



In the meantime, I extended the code to include also the ASC CP/M.

I still couldn't find an emulator able to import CP/M programs on the Microdrives, so I can't try to port it on the LEC CP/M.


Přílohy:
dfbasic.bin [26.96 KiB]
14 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 01.02.2024, 19:23 
Offline
Radil

Registrován: 13.03.2016, 18:54
Příspěvky: 303
Has thanked: 130 times
Been thanked: 88 times
Hi, Stefano,
here's an emulator that can do LEC, including the boot MDV image.
Příloha:
JSpeccy.zip [510.38 KiB]
18 krát

To edit the MDV file use oqtactl
https://codeberg.org/xelalexv/oqtadrive/releases

Learn more about the LEC project:
https://forum.tlienhard.com/phpBB3/viewtopic.php?t=4478&start=450

And about the oqtadrive project used by LEC:
https://oqtadrive.org/

Good luck

Chip


Nahoru
 Profil  
 
PříspěvekNapsal: 01.02.2024, 19:50 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Thankyou! I have that emulator, but the CP/M tool to import programs from tape didn't work correctly. I suspect the tape loader puts the data on the ROM page.

I will try the microdrives way


Nahoru
 Profil  
 
PříspěvekNapsal: 05.02.2024, 11:59 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
I was wrong, the tape transfer problems were probably caused by a bad file name.


Nahoru
 Profil  
 
PříspěvekNapsal: 05.02.2024, 17:55 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
I opened another thread for the LEC-CP/M port

viewtopic.php?f=47&t=12523


Nahoru
 Profil  
 
PříspěvekNapsal: 19.02.2024, 18:48 
Offline
Kecka
Uživatelský avatar

Registrován: 18.01.2024, 15:02
Příspěvky: 32
Bydliště: Torino - Italy
Has thanked: 5 times
Been thanked: 7 times
Could anybody check the fixed version on the DiskFace?


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 17 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz