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

Página 11/11
4 | 5 | 6 | 7 | 8 | 9 | 10 |

Por Fabf

Master (256)

imagem de 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 ?

Por ocitygate

Expert (67)

imagem de ocitygate

14-04-2021, 22:45

Fabf wrote:

Do you plan a New release ?

What would you like to see in a new release?

Por gdx

Enlighted (4377)

imagem de gdx

15-04-2021, 01:52

Is support for flash card images possible?

Por Fabf

Master (256)

imagem de 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.

Por ocitygate

Expert (67)

imagem de 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.

Por gdx

Enlighted (4377)

imagem de gdx

15-04-2021, 12:58

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

Por st1mpy

Paladin (757)

imagem de 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.

Por Fabf

Master (256)

imagem de Fabf

15-04-2021, 16:34

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

Por RvS

Resident (49)

imagem de 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.                                                                                                                                                                            
Página 11/11
4 | 5 | 6 | 7 | 8 | 9 | 10 |