MSXDISK 0.9 BETA: Virtual Floppy Disk Driver over JOYSTICK2 of MSX

صفحة 11/11
4 | 5 | 6 | 7 | 8 | 9 | 10 |

بواسطة Fabf

Champion (260)

صورة Fabf

14-04-2021, 17:45

Hi
I've tested a lot of file transfert and ROM loading from disk.
All work fine.
Perhaps all demo tested crash.
For information I use diskrom in cartridge.
Do you plan a New release ?

بواسطة ocitygate

Expert (69)

صورة ocitygate

14-04-2021, 22:45

Fabf wrote:

Do you plan a New release ?

What would you like to see in a new release?

بواسطة gdx

Enlighted (4807)

صورة gdx

15-04-2021, 01:52

Is support for flash card images possible?

بواسطة Fabf

Champion (260)

صورة Fabf

15-04-2021, 09:24

ocitygate wrote:
Fabf wrote:

Do you plan a New release ?

What would you like to see in a new release?

Demo issue fix will make this tool perfect

@gdx : I don't Know for flashcard I only tried SRAM carts (MegaSRAM SCC and Jipe MSX Ram)
Also tried Megaflashrom SCC+ but not your program.

بواسطة ocitygate

Expert (69)

صورة ocitygate

15-04-2021, 12:56

Fabf wrote:

Demo issue fix will make this tool perfect

Demo loads DiskROM into RAM and this does not work well.
I was planning to produce and sell the DiskROM cartridges.

بواسطة gdx

Enlighted (4807)

صورة gdx

15-04-2021, 12:58

I asked the question to Ocitygate to add the support of the main flash card images.

بواسطة st1mpy

Paladin (838)

صورة st1mpy

15-04-2021, 13:16

I think Fabf was asking about demo disks, as in mega demo type of thing? Actually, anyone tested dsk images of commercial games? (most are japanese msx2 games.). This thing definitely works well with writing and reading your own stuff, and with conventional software.

Does support request for flash card mean things like megaflash rom? I tried that, it works, but I found that disk rom on eprom card with correct size worked best (16kb. Not using bigger ones by copying multiple times), as somehow the amount of free ram showing in Basic startup screen was different.

بواسطة Fabf

Champion (260)

صورة Fabf

15-04-2021, 16:34

st1mpy is right, I speak about demo disk.
I already use diskrom in cartridge.

بواسطة RvS

Expert (72)

صورة RvS

21-04-2021, 09:45

I have an update for the serial routines.
I tried 115200 bps, but this is not stable enough. At 86400 bps, it works well and it is still a 50% speed upgrade.
Ideally it should be 41.43 cycles per bit. I managed 42 cycles for TX.

TX:
    ;... setup ...
    LD C,$A1    ;WRITE REGISTER                                                                                                                                                                            
    PUSH BC                                                                                                                                                                            
    EXX                                                                                                                                                                            
    POP BC      ;MOVE BC -> BC'                                                                                                                                                                            
    EXX                                                                                                                                                                            
.BYTELOOP:                                                                                                                                                                            
    LD B,(HL)                               ;|        
.STARTBIT:                                  ;|(42)     
    OUT (C),E   ;STARTBIT=LOW    |                                    
    RRC B                       ;|                  
    LD A,D                      ;|(42)                 
    JR C,.SETBIT0               ;|                        
    LD A,E                      ;|                  
.SETBIT0:                       ;|                  
    OUT (C),A                      ;|                 
    RRC B                          ;|               
    LD A,D                         ;|(42)              
    JR C,.SETBIT1                  ;|                    
    LD A,E                         ;|               
;...repeat for bit1..bit6 .SETBITN:
.SETBIT7:                                           
    OUT (C),A                         ;|                     
    EXX             ;COUNTER IN BC'    |                                   
    DEC BC                            ;|(41)          
    LD A,B                            ;|            
    OR C            ;Z-FLAG            |                           
    EXX                               ;|            
.STOPBIT:                                           
    OUT (C),D                               ;|                               
    INC HL                                  ;|        
    JR NZ,.BYTELOOP                         ;|              
.EXIT:                                              

For RX, I alternate between 41 and 42 cycles:

RX:                                                                                                                                                                            
    DI             ; NO INTERRUPTS, TIME CRITICAL ROUTINE                                                                                                                                                                            
    INC BC      ; COMPENSATE LOOP (CHECK IS BEFORE ISO AFTER WRITING BYTE)                                                                                                                                                                            
    LD D,B      ; USE DE AS COUNTER, WE NEED C FOR IN A,(C)                                                                                                                                                                            
    LD E,C                                                                                                                                                                            
    LD A,$0F	; PSG REGISTER 15, SELECT JOYSTICK PORT 2                                                                                                                                                                            
    OUT ($A0),A                                                                                                                                                                            
    IN A,($A2)                                                                                                                                                                            
    SET 6,A	; SELECT JOY2                                                                                                                                                                            
    OUT ($A1),A                                                                                                                                                                            
    LD A,$0E    ; SET PSG #14 WE READ BIT 0 (JOY-UP) AS INPUT (RX) 0V='0',5V='1'                                                                                                                                                                            
    OUT ($A0),A                                                                                                                                                                            
    LD C,$A2    ; PSG READ REGISTER                                                                                                                                                                            
.FIRSTSTARTBIT:                                                                                                                                                                            
    IN A,(C)    ; WAIT FOR STARTBIT                                                                                                                                                                            
    JP PE,.FIRSTSTARTBIT                                                                                                                                                                            
.DELAY:         ; 27 CYCLES DELAY TO NEXT READ                                                                                                                                                                            
    DEC DE                                                                                                                                                                            
    LD A,D                                                                                                                                                                            
    OR E                                                                                                                                                                            
    JR Z,.EXIT                                                                                                                                                                            
.READBYTE:                                                                                                                                                                            
    IN A,(C)    ; BIT0                                                                                                                                                                               
    RRCA                                                                                                                                                                            
    RR B                                                                                                                                                                            
    IN A,(C)  ; 14 DUMMY CYCLES                                                                                                                                                                            
    IN A,($A2)  ; BIT1                                                                                                                                                                            
    RRCA                                                                                                                                                                            
    RR B                                                                                                                                                                            
    NOP         ; 15 DUMMY CYCLES                                                                                                                                                                            
    NOP                                                                                                                                                                            
    NOP                                                                                                                                                                            
;... repeat for bit2-bit6
    IN A,($A2)  ; BIT7                                                                                                                                                                            
    RRCA                                                                                                                                                                            
    RR B                                                                                                                                                                            
    LD (HL),B   ; STORE RESULT, IGNORE STOPBIT                                                                                                                                                                            
    INC HL                                                                                                                                                                            
.WAITFORSTARTBIT:                                                                                                                                                                            
    IN A,(C)        ;TIME OUT IF STARTBIT IS TOO LATE                                                                                                                                                                             
    JP PO,.DELAY                                                                                                                                                                            
    IN A,(C)                                                                                                                                                                            
    JP PO,.DELAY                                                                                                                                                                            
    IN A,(C)                                                                                                                                                                            
    JP PO,.DELAY                                                                                                                                                                            
.EXIT:                                                                                                                                                                            
    EI              ; TIME-OUT, RETURN (END OR TIME-OUT, CHECK HL VALUE TO BE SURE)                                                                                                                                                                            
    RET             ; IF ZERO FLAG IS SET: OK, OTHERWISE TIME-OUT ERROR.                                                                                                                                                                            

بواسطة ocitygate

Expert (69)

صورة ocitygate

19-11-2021, 02:46

Hey, its been a while. Anyone finds this a thrill.
I remember it was pure joy when I saw MSXDOS on the screen.
I have an upcoming release of MSXDISK with a very special feature.
Send PC audio to PSG at 4800Hz 6bit over JOYSTICK2.

Thanks to this article from Grauw
http://map.grauw.nl/articles/psg_sample.php

صفحة 11/11
4 | 5 | 6 | 7 | 8 | 9 | 10 |