USB-Treiber für "Streaming" mit Problem

ZX-Team Forum
Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 03.03.2018, 18:32

Hallolle
für den RS232-Midiplayer habe ich den USB-Treiber (der für VDRIVE, hier für das VDRIVE-Interface im NU angepasst) geringfügig erweitert, damit er auch "kleckerlesweise" eine Datei lesen kann. Dazu habe ich

- in der Sprungtabelle am Anfang einen weiteren Einsprung dazu getan, der zur Byte-Read Routine einer offenen Datei führt
- der LOAD-Routine habe ich bei Ermittlung der Länge der zu ladenden Datei 2 weitere Bytes ausgelesen, die in SEED abgelegt werden (High word). In Coords ist das LOW-Word der Länge, die bisher auf 64KB begrenzt war, wie bisher auch abgelegt.
- in der LOAD-Routine habe ich einen Ausstieg vorgesehen, wenn die LOAD-Adresse = 0 ist

Dann kann man zum Treiber ein LOAD-Kommando schicken "L datei.xxx 0", wodurch bei Zieladresse 0 die Datei nur geöffnet, aber nicht weiter gelesen wird.

Um sie zu lesen kann der neue Einsprung benutzt werden (nur für M/C), der ein Zeichen liest und in A zurückliefert (Zero-Flag gesetzt bei Erfolg und gelöscht bei Fehler). Ein Fehler wird erkannt, wenn 256 mal kein gültiges Byte empfangen wird.

Funzt bei mir auch erstmal alles; nach LOAD-Kommando mit Länge 0 kehrt Treiber sofort zurück und VDRIVE blinkt weiter. Dann können Bytes einzeln abgeholt werden.
Aber: bei mir klappt das nur eine Zeit lang so. Bei einem USB-Stick kommt nach ca 130 Zeichen nix mehr an (das Blinken des VDRIVE hört dann auf, grünes Dauerlicht) und der VDRIVE nimmt dann keine Kommandos mehr an, bis der Stick gezogen/gesteckt wird. Das ist exakt reproduzierbar und tritt auch auf einem anderen NU so auf. Bei einem größeren USB-Stick tritt das Problem erst nach ca. 4000 Zeichen auf :(

Die neue Read-Routine macht im Prinzip nichts anderes wie beim LOAD einer Datei (der nach wie vor funktioniert) auch passiert: die Bytes werden nach und nach abgeholt. Um das Timing ähnlich wie beim normalen LOAD zu haben, ist die Routine etwas umständlich geschrieben (so wie auch beim "normalen" LOAD passiert).

Hier ist der Code des Treibers. Sieht einer einen Fehler? Vielleicht kann ja jemand mit anderer Hardware (nicht NU, vielleicht PIO-Interface) die Änderungen nachziehen und mit seiner Hardware testen? Im P-File des Treibers (mit ASDIS-Source in A$) ist ab 16514 ein kleines MC drin, über das man mit BASIC die Datei byteweise lesen kann (Zeilen 100 bzw. 200). Bei Fehlern kommt Wert > 255 zurück.

Die neue Leseroutine heißt "READM" und ist am Ende des Listings. Die Adressprüfung auf 0 findet bei Label LOAD6 bei Adresse $27CC statt

Code: Alles auswählen

         2000;===========================
          2000;USB-ZX81                   
          2000;VON THOMAS LIENHARD        
          2000;PORTIERT ZU ASDIS          
          2000;VON J.MERKL                
          2000;;                          
          2000;---------------------------
          2000;V1.0.0                     
          2000;GRUNDVERSION T.LIENHARD    
          2000;;                          
          2000;V1.1.0                     
          2000;FEHLERMELDUNGEN EINGEBAUT  
          2000;2.EINSPRUNGADR. FUER BASIC 
          2000;MIT FEHLERCODERUECKMELDUNG 
          2000;;                          
          2000;V1.2.0                     
          2000;VARIABLE VERLAGERT         
          2000;;                          
          2000;V1.2.1                     
          2000;KORREKTUREN: SIGGI         
          2000;V1.2.2                     
          2000;DATEILAENGE IN SYSVAR      
          2000;COORD(16438/39)            
          2000;V1.2.3                     
          2000;D,XXXX KOMMANDO HINZU      
          2000;V1.2.4 ZAHLEN NUN DEZIMAL  
          2000;V1.2.5 SPEED OPTIMIERT     
          2000;       EINSPRUNG M/C       
          2000;V1.2.6 BREAK CHECK         
          2000;V1.3.0 MEFISDOS SYNTAX, REN
          2000;V1.3.1 CD ZEIGT NEUE DIR AN
          2000;V1.3.1 BREAK AUCH MIT 6    
          2000;V1.3.3                     
          2000;V1.3.4-NU FUER ZXNU, TIMING
          2000;V2.0.0 STREAMING,LAENGE IN 
          2000;SEED(16434/35)             
          2000;===========================
          2000     JP UFM         C3B82B  
          2003     JP USB2        C30721  
          2006     JP USB3        C31821  
          2009     JP USB1        C30E21  
          200C     JP READM       C3342A  
          200F;---------------------------
          200F;VARIABLE                   
          200F     009=$09                
          2018FILNA215=$D7                
          20EFSSTAT001=$01                
          20F0RBYTE001=$01                
          20F1RSTAT001=$01                
          20F2     002=$02                
          20F4STAL 001=$01                
          20F5STAH 001=$01                
          20F6SIZEL001=$01                
          20F7SIZEH001=$01                
          20F8     012=$0C                
          2104MBACK001=$01                
          2105ERRNR002=$02                
          2107;---------------------------
          2107;;                          
          2107USB2 XOR A          AF      
          2108     LD (ERRNO),A   323240  
          210B     INC A          3C      
          210C     JR NUSB        1801    
          210E;;                          
          210EUSB1 XOR A          AF      
          210FNUSB LD (MBACK),A   320421  
          2112;SET RETURN ADDRESS TO BASIC
          2112     LD HL,R2BAS    217221  
          2115     PUSH HL        E5      
          2116     JR USB         1814    
          2118;;                          
          2118USB3 XOR A          AF      
          2119     LD (ERRNO),A   323240  
          211C     INC A          3C      
          211D     LD (MBACK),A   320421  
          2120     CALL $02E7     CDE702  
          2123;SET RETURN ADDRESS TO MC   
          2123     LD HL,R2MC     217821  
          2126     PUSH HL        E5      
          2127;READ COMMAND FROM PRINTER  
          2127;BUFFER                     
          2127     LD HL,PRBUF    213C40  
          212A     JR USBMC       1803    
          212C;;                          
          212CUSB  CALL NAME      CDA622  
          212FUSBMCLD A,(HL)      7E      
          2130     CP $2D         FE2D    
          2132     JP Z,HLP       CA8321  
          2135     CP $0F         FE0F    
          2137     JP Z,HLP       CA8321  
          213A; AB NUN ZUGRIFF AUF STICK  
          213A     CALL INIT      CD4B29  
          213D     LD A,(HL)      7E      
          213E     INC HL         23      
          213F     CP $2E         FE2E    
          2141     JP Z,INFO1     CAC823  
          2144     CP $38         FE38    
          2146     JP Z,SAVE1     CAEE25  
          2149     CP $31         FE31    
          214B     JP Z,LOAD1     CAF326  
          214E     CP $29         FE29    
          2150     JP Z,DIR1      CA6524  
          2153     CP $30         FE30    
          2155     JP Z,DIR1      CA6524  
          2158     CP $3B         FE3B    
          215A     JP Z,DIR1      CA6524  
          215D     CP $2A         FE2A    
          215F     JP Z,ERAS1     CA1528  
          2162     CP $37         FE37    
          2164     JP Z,REN1      CADC25  
          2167;;                          
          2167     LD DE,TXA      11BD22  
          216A     LD (ERRNR),DE  ED530521
          216E     JP ERROR       C38623  
          2171;;                          
          2171;JUMP TO M/C OR R2BAS       
          2171BASICRET            C9      
          2172;;                          
          2172;JUMP TO BASIC              
          2172R2BASCALL SHOW      CD0702  
          2175     XOR A          AF      
          2176     RST 08         CF      
          2177     FF                     
          2178;;                          
          2178;JUMP TO M/C                
          2178R2MC LD A,(ERRNO)   3A3240  
          217B     OR A           B7      
          217C     CALL NZ,CLBUF  C49F23  
          217F     CALL SHOW      CD0702  
          2182     RET            C9      
          2183;;                          
          2183HLP  LD HL,HLPTX    219121  
          2186HLP1 LD A,(HL)      7E      
          2187     CP $FF         FEFF    
          2189     JR Z,BASIC     28E6    
          218B     PUSH HL        E5      
          218c     RST 10         D7      
          218D     POP HL         E1      
          218E     INC HL         23      
          218F     JR HLP1        18F5    
          2191;;                          
          2191HLPTXINFO   "I"             
          219B     HALT           76      
          219C     DIR    "D"             
          21A6     HALT           76      
          21A7     CHDIR  "D VERZ"        
          21B6     HALT           76      
          21B7     DIR X  "D,<NUM>"       
          21C7     HALT           76      
          21C8     MKDIR  "V VERZ"        
          21D7     HALT           76      
          21D8     RMDIR  "K VERZ"        
          21e7     HALT           76      
          21E8     LOAD   "L DATEI.P"     
          21FA     HALT           76      
          21FB     BLOAD  "L DATEI.B,<ADR>
          2213     HALT           76      
          2214     SAVE   "S DATEI.P"     
          2226     HALT           76      
          2227     BSAVE  "S DATEI.B,<ADR>
          223F     <LEN>"                 
          2245     HALT           76      
          2246     ERASE  "E DATEI.P"     
          2258     HALT           76      
          2259     RENAME "R NAME NAME"   
          226D     HALT           76      
          226E     HELP   "H"             
          2278     HALT           76      
          2279     HALT           76      
          227A     ABBRUCH MIT "A" ODER "6
          2292     HALT           76      
          2293     HALT           76      
          2294     V2.0.0 FUER ZXNU       
          22A4     HALT           76      
          22A5     FF                     
          22A6;;                          
          22A6NAME RST 20         E7      
          22A7     CALL $0F55     CD550F  
          22AA     LD A,($4001)   3A0140  
          22AD     ADD A,A        87      
          22AE     JP M,$0D9A     FA9A0D  
          22B1     POP HL         E1      
          22B2     RET NC         D0      
          22B3     PUSH HL        E5      
          22b4     CALL $02E7     CDE702  
          22B7     CALL $13F8     CDF813  
          22BA     LD H,D         62      
          22BB     LD L,E         6B      
          22BC     RET            C9      
          22BD;;                          
          22BDTXA  0112                   
          22BF     ungueltiger befehl     
          22D1TXB  0216                   
          22D3     ungueltiger dir-befehl 
          22E9TXC  0317                   
          22EB     file/dir nicht gefunden
          2302TXD  040B                   
          2304     device voll            
          230FTXE  0513                   
          2311     file/dir noch offen    
          2324TXF  060A                   
          2326     ladefehler             
          2330TXG  0716                   
          2332     device nicht vorhanden 
          2348TXH  0805                   
          234A     break                  
          234FTXI  090E                   
          2351     dir nicht leer         
          235FTXX  00000000000000000000   
          2369     00000000000000000000   
          2373     00000000000000000000   
          237D     0000                   
          237F;;                          
          237FBRKERLD DE,TXH      114823  
          2382     LD (ERRNR),DE  ED530521
          2386;;                          
          2386ERRORLD A,(MBACK)   3A0421  
          2389     CP $01         FE01    
          238B     JR NZ,NERR     2009    
          238D     LD HL,(ERRNR)  2A0521  
          2390     LD A,(HL)      7E      
          2391     LD (ERRNO),A   323240  
          2394     JR ERROB       1803    
          2396NERR CALL TXOUT     CDAD23  
          2399;;                          
          2399ERROBCALL CLBUF     CD9F23  
          239C     JP BASIC       C37121  
          239F;;                          
          239FCLBUFCALL READB     CD9E29  
          23A2     JR Z,CLBUF     28FB    
          23A4     CALL WAIT      CDE125  
          23A7     CALL READB     CD9E29  
          23aa     RET NZ         C0      
          23AB     JR CLBUF       18F2    
          23AD;;                          
          23ADTXOUTLD DE,(DFILE)  ED5B0C40
          23B1     INC DE         13      
          23B2     PUSH DE        D5      
          23B3     LD BC,$0020    012000  
          23B6     LD HL,TXX      215F23  
          23B9     LDIR           EDB0    
          23BB     POP DE         D1      
          23BC     LD HL,(ERRNR)  2A0521  
          23BF     INC HL         23      
          23C0     LD A,(HL)      7E      
          23C1     LD B,$00       0600    
          23C3     LD C,A         4F      
          23C4     INC HL         23      
          23c5     LDIR           EDB0    
          23C7     RET            C9      
          23C8;;                          
          23C8INFO1LD A,$12       3E12    
          23CA     CALL SENDB     CDF329  
          23CD     LD A,CR        3E0D    
          23CF     CALL SENDB     CDF329  
          23D2INFO2CALL READB     CD9E29  
          23D5     LD A,(RSTAT)   3AF120  
          23D8     CP $01         FE01    
          23DA     JP Z,INFO2     CAD223  
          23DD     CALL WAIT      CDE125  
          23E0INFO3CALL READB     CD9E29  
          23E3     CALL READB     CD9E29  
          23E6     CALL READB     CD9E29  
          23E9     CALL READB     CD9E29  
          23ec     CALL READB     CD9E29  
          23EF     LD A,$94       3E94    
          23F1     CALL SENDB     CDF329  
          23F4     LD A,CR        3E0D    
          23F6     CALL SENDB     CDF329  
          23F9INFORCALL WAIT      CDE125  
          23FC     CALL READB     CD9E29  
          23FF     CP $55         FE55    
          2401     JR NZ,INFOR    20F6    
          2403INFOSLD E,A         5F      
          2404     CALL TEX1      CD8C28  
          2407     CALL READB     CD9E29  
          240A     CP $3E         FE3E    
          240C     JR Z,INFOE     2802    
          240E     JR INFOS       18F3    
          2410INFOECALL READB     CD9E29  
          2413     CALL WAIT      CDE125  
          2416     CALL WAIT      CDE125  
          2419     LD A,$13       3E13    
          241B     CALL SENDB     CDF329  
          241E     LD A,CR        3E0D    
          2420     CALL SENDB     CDF329  
          2423INFOVCALL WAIT      CDE125  
          2426     CALL READB     CD9E29  
          2429     CP CR          FE0D    
          242B     JR Z,INFOV     28F6    
          242DINFOWLD E,A         5F      
          242E     CALL TEX1      CD8C28  
          2431     CALL READB     CD9E29  
          2434     CP $3E         FE3E    
          2436     JR Z,INFOX     2802    
          2438     JR INFOW       18F3    
          243aINFOXCALL READB     CD9E29  
          243D     JP BASIC       C37121  
          2440;;                          
          2440ADR1 INC HL         23      
          2441     CALL GETBC     CD4924  
          2444     LD (STAL),BC   ED43F420
          2448     RET            C9      
          2449;;                          
          2449;;                          
          2449GETBCLD BC,$0000    010000  
          244CGNUM LD A,(HL)      7E      
          244D     SUB $1C        D61C    
          244F     RET C          D8      
          2450     CP $0A         FE0A    
          2452     RET NC         D0      
          2453     PUSH HL        E5      
          2454     LD H,B         60      
          2455     LD L,C         69      
          2456     ADD HL,HL      29      
          2457     ADD HL,HL      29      
          2458     ADD HL,HL      29      
          2459     ADD HL,BC      09      
          245A     ADD HL,BC      09      
          245B     LD B,$00       0600    
          245D     LD C,A         4F      
          245E     ADD HL,BC      09      
          245F     LD B,H         44      
          2460     LD C,L         4D      
          2461     POP HL         E1      
          2462     INC HL         23      
          2463     JR GNUM        18E7    
          2465;;                          
          2465DIR1 CP $3B         FE3B    
          2467     JR Z,DIMAK     282A    
          2469     CP $30         FE30    
          246B     JR Z,DIERA     282B    
          246D     LD A,(HL)      7E      
          246E     CP $0B         FE0B    
          2470     JR Z,DIRS      282B    
          2472     CP $1A         FE1A    
          2474     JP Z,DIRM      CA1125  
          2477     CP $00         FE00    
          2479     JR Z,DICHG     2809    
          247B     LD HL,TXB      21D122  
          247E     LD (ERRNR),HL  220521  
          2481     JP ERROR       C38623  
          2484;;                          
          2484DICHGLD A,(MBACK)   3A0421  
          2487     OR A           B7      
          2488     JR NZ,DICH1    2004    
          248A;PUSH SHOWDIR ADD ON STACK  
          248A;TO SHOW NEW DIR AFTERWARDS 
          248A     LD DE,DIRS     119D24  
          248D     PUSH DE        D5      
          248EDICH1LD C,$02       0E02    
          2490     JP DIGO        C36625  
          2493DIMAKLD C,$06       0E06    
          2495     JP DIGO        C36625  
          2498DIERALD C,$05       0E05    
          249A     JP DIGO        C36625  
          249D;;                          
          249DDIRS LD B,$13       0613    
          249F     LD A,$01       3E01    
          24A1     CALL SENDB     CDF329  
          24a4     LD A,CR        3E0D    
          24A6     CALL SENDB     CDF329  
          24A9DIRR CALL READW     CD482A  
          24AC     CALL BRKCK     CD262A  
          24AF     JP Z,BRKER     CA7F23  
          24B2     LD A,(RSTAT)   3AF120  
          24B5     CP $01         FE01    
          24B7     JR Z,DIRR      28F0    
          24B9     LD A,(RBYTE)   3AF020  
          24BC     CP $3E         FE3E    
          24BE     JR Z,DIRE      280B    
          24C0     CP CR          FE0D    
          24C2     JR Z,DIRC      280D    
          24C4DIRP LD E,A         5F      
          24C5     CALL TEX1      CD8C28  
          24C8     JP DIRR        C3A924  
          24cbDIRE CALL CLBUF     CD9F23  
          24CE     JP BASIC       C37121  
          24D1DIRC DEC B          05      
          24D2     JR NZ,DIRP     20F0    
          24D4     LD E,CR        1E0D    
          24D6     CALL TEX1      CD8C28  
          24D9     LD E,CR        1E0D    
          24DB     CALL TEX1      CD8C28  
          24DE     LD E,$3C       1E3C    
          24E0     CALL TEX1      CD8C28  
          24E3     LD E,$43       1E43    
          24E5     CALL TEX1      CD8C28  
          24E8     LD E,$52       1E52    
          24EA     CALL TEX1      CD8C28  
          24ED     LD E,$3E       1E3E    
          24EF     CALL TEX1      CD8C28  
          24f2     CALL SHOW      CD0702  
          24F5DIRW CALL BRKCK     CD262A  
          24F8     JP Z,BRKER     CA7F23  
          24FB     CALL GTKEY     CDBB02  
          24FE     EX DE,HL       EB      
          24FF     LD HL,$FDBF    21BFFD  
          2502     AND A          A7      
          2503     SBC HL,DE      ED52    
          2505     JR NZ,DIRW     20EE    
          2507     CALL RCLS      CD2A0A  
          250A     LD B,$13       0613    
          250C     LD A,(RBYTE)   3AF020  
          250F     JR DIRP        18B3    
          2511;;                          
          2511DIRM CALL ADR1      CD4024  
          2514     LD A,(TXC)     3AE922  
          2517     LD (ERRNO),A   323240  
          251A     LD BC,$0000    010000  
          251D     LD A,$01       3E01    
          251F     CALL SENDB     CDF329  
          2522     LD A,CR        3E0D    
          2524     CALL SENDB     CDF329  
          2527CIRR CALL READW     CD482A  
          252A     CALL BRKCK     CD262A  
          252D     JP Z,BRKER     CA7F23  
          2530     LD A,(RSTAT)   3AF120  
          2533     CP $01         FE01    
          2535     JR Z,CIRR      28F0    
          2537     LD A,(RBYTE)   3AF020  
          253A     CP $3E         FE3E    
          253C     JR Z,CIRE      281F    
          253E     CP CR          FE0D    
          2540     JR Z,CIRC      2821    
          2542CIRP LD E,A         5F      
          2543     LD A,(STAL)    3AF420  
          2546     CP C           B9      
          2547     JR NZ,CIRR     20DE    
          2549     LD A,(STAH)    3AF520  
          254C     CP B           B8      
          254D     JR NZ,CIRR     20D8    
          254F     LD A,E         7B      
          2550     CP CR          FE0D    
          2552     JR Z,CIRR      28D3    
          2554     CALL TEX1      CD8C28  
          2557     XOR A          AF      
          2558     LD (ERRNO),A   323240  
          255B     JR CIRR        18CA    
          255DCIRE CALL CLBUF     CD9F23  
          2560     JP BASIC       C37121  
          2563CIRC INC BC         03      
          2564     JR CIRP        18DC    
          2566;;                          
          2566DIGO PUSH BC        C5      
          2567     INC HL         23      
          2568     LD DE,FILNA    111820  
          256BDIGO2LD A,(HL)      7E      
          256C     CP $0B         FE0B    
          256E     JR Z,DIGO3     2808    
          2570     CALL ZXASC     CD3C29  
          2573     LD (DE),A      12      
          2574     INC HL         23      
          2575     INC DE         13      
          2576     JR DIGO2       18F3    
          2578DIGO3LD A,CR        3E0D    
          257a     LD (DE),A      12      
          257B     POP BC         C1      
          257C     LD A,C         79      
          257D     CALL SENDB     CDF329  
          2580     LD A,$20       3E20    
          2582     CALL SENDB     CDF329  
          2585     LD HL,FILNA    211820  
          2588DIGO4LD A,(HL)      7E      
          2589     PUSH AF        F5      
          258A     CALL SENDB     CDF329  
          258D     INC HL         23      
          258E     POP AF         F1      
          258F     CP CR          FE0D    
          2591     JR NZ,DIGO4    20F5    
          2593DIGO5CALL READW     CD482A  
          2596     CALL BRKCK     CD262A  
          2599     JP Z,BRKER     CA7F23  
          259C     LD A,(RSTAT)   3AF120  
          259F     CP $01         FE01    
          25A1     JR Z,DIGO5     28F0    
          25A3     LD A,(RBYTE)   3AF020  
          25A6     CP $3E         FE3E    
          25A8     JR Z,DIGOK     282C    
          25AA     CP $43         FE43    
          25AC     JR NZ,NDIG1    2005    
          25AE     LD DE,TXC      11E922  
          25B1     JR NDIG        1819    
          25B3NDIG1CP $44         FE44    
          25B5     JR NZ,NDIG2    2005    
          25B7     LD DE,TXD      110223  
          25BA     JR NDIG        1810    
          25BCNDIG2CP $46         FE46    
          25be     JR NZ,NDIG3    2005    
          25C0     LD DE,TXE      110F23  
          25C3     JR NDIG        1807    
          25C5NDIG3CP $4E         FE4E    
          25C7     JR NZ,DIGO5    20CA    
          25C9     LD DE,TXI      114F23  
          25CCNDIG LD (ERRNR),DE  ED530521
          25D0     CALL CLBUF     CD9F23  
          25D3     JP ERROR       C38623  
          25D6DIGOKCALL READB     CD9E29  
          25D9     JP BASIC       C37121  
          25DC;;                          
          25DCREN1 LD C,$0C       0E0C    
          25DE     JP REERA       C31728  
          25E1;;                          
          25E1WAIT PUSH BC        C5      
          25e2     PUSH AF        F5      
          25E3     LD B,$FF       06FF    
          25E5     XOR A          AF      
          25E6WAIT1DEC B          05      
          25E7     CP B           B8      
          25E8     JP NZ,WAIT1    C2E625  
          25EB     POP AF         F1      
          25EC     POP BC         C1      
          25ED     RET            C9      
          25EE;;                          
          25EESAVE1PUSH HL        E5      
          25EF     LD HL,(ELINE)  2A1440  
          25F2     LD BC,$4009    010940  
          25F5     LD (STAL),BC   ED43F420
          25F9     AND A          A7      
          25FA     SBC HL,BC      ED42    
          25fc     LD (SIZEL),HL  22F620  
          25FF     POP HL         E1      
          2600     LD DE,FILNA    111820  
          2603     INC HL         23      
          2604SAVE3LD A,(HL)      7E      
          2605     CP $0B         FE0B    
          2607     JR Z,SAVE2     281B    
          2609     CP $1A         FE1A    
          260B     JR Z,SAVEM     280C    
          260D     CP $00         FE00    
          260F     JR Z,SAVEM     2808    
          2611     CALL ZXASC     CD3C29  
          2614     LD (DE),A      12      
          2615     INC HL         23      
          2616     INC DE         13      
          2617     JR SAVE3       18EB    
          2619SAVEMCALL ADR1      CD4024  
          261C     INC HL         23      
          261D     CALL GETBC     CD4924  
          2620     LD (SIZEL),BC  ED43F620
          2624SAVE2LD A,CR        3E0D    
          2626     LD (DE),A      12      
          2627     CALL WAIT      CDE125  
          262A     LD A,$09       3E09    
          262C     CALL SENDB     CDF329  
          262F     LD A,$20       3E20    
          2631     CALL SENDB     CDF329  
          2634     LD HL,FILNA    211820  
          2637SAVE4LD A,(HL)      7E      
          2638     PUSH AF        F5      
          2639     CALL SENDB     CDF329  
          263C     INC HL         23      
          263d     POP AF         F1      
          263E     CP CR          FE0D    
          2640     JR NZ,SAVE4    20F5    
          2642SAVEWCALL BRKCK     CD262A  
          2645     JP Z,BRKER     CA7F23  
          2648     CALL READW     CD482A  
          264B     CP $3E         FE3E    
          264D     JR NZ,SAVEW    20F3    
          264F     CALL READB     CD9E29  
          2652;;                          
          2652     LD A,$28       3E28    
          2654     CALL SENDB     CDF329  
          2657     LD A,$20       3E20    
          2659     CALL SENDB     CDF329  
          265C     XOR A          AF      
          265D     CALL SENDB     CDF329  
          2660     XOR A          AF      
          2661     CALL SENDB     CDF329  
          2664     XOR A          AF      
          2665     CALL SENDB     CDF329  
          2668     XOR A          AF      
          2669     CALL SENDB     CDF329  
          266C     LD A,CR        3E0D    
          266E     CALL SENDB     CDF329  
          2671     CALL READW     CD482A  
          2674     CALL READB     CD9E29  
          2677;;                          
          2677     LD A,$08       3E08    
          2679     CALL SENDB     CDF329  
          267C     LD A,$20       3E20    
          267E     CALL SENDB     CDF329  
          2681     XOR A          AF      
          2682     CALL SENDB     CDF329  
          2685     XOR A          AF      
          2686     CALL SENDB     CDF329  
          2689     LD A,(SIZEH)   3AF720  
          268C     CALL SENDB     CDF329  
          268F     LD A,(SIZEL)   3AF620  
          2692     CALL SENDB     CDF329  
          2695     LD A,CR        3E0D    
          2697     CALL SENDB     CDF329  
          269A     LD HL,(STAL)   2AF420  
          269D     LD BC,(SIZEL)  ED4BF620
          26A1SAVE5CALL BRKCK     CD262A  
          26A4     JP Z,BRKER     CA7F23  
          26A7     LD A,(HL)      7E      
          26A8     CALL SENDB     CDF329  
          26AB     CP $08         FE08    
          26ad     JR Z,SAVE5     28F2    
          26AF     INC HL         23      
          26B0     DEC BC         0B      
          26B1     XOR A          AF      
          26B2     CP B           B8      
          26B3     JR NZ,SAVE5    20EC    
          26B5     CP C           B9      
          26B6     JR NZ,SAVE5    20E9    
          26B8SAVE6CALL BRKCK     CD262A  
          26BB     JP Z,BRKER     CA7F23  
          26BE     CALL READB     CD9E29  
          26C1     CP $3E         FE3E    
          26C3     JR NZ,SAVE6    20F3    
          26C5     CALL READB     CD9E29  
          26C8     LD A,$0A       3E0A    
          26CA     CALL SENDB     CDF329  
          26cd     LD A,$20       3E20    
          26CF     CALL SENDB     CDF329  
          26D2     LD HL,FILNA    211820  
          26D5SAVE7LD A,(HL)      7E      
          26D6     PUSH AF        F5      
          26D7     CALL SENDB     CDF329  
          26DA     INC HL         23      
          26DB     POP AF         F1      
          26DC     CP CR          FE0D    
          26DE     JR NZ,SAVE7    20F5    
          26E0SAVE8CALL BRKCK     CD262A  
          26E3     JP Z,BRKER     CA7F23  
          26E6     CALL READW     CD482A  
          26E9     CP $3E         FE3E    
          26EB     JR NZ,SAVE8    20F3    
          26ED     CALL READB     CD9E29  
          26f0     JP BASIC       C37121  
          26F3;;                          
          26F3LOAD1LD A,$40       3E40    
          26F5     LD (STAH),A    32F520  
          26F8     LD A,$09       3E09    
          26FA     LD (STAL),A    32F420  
          26FD     LD DE,FILNA    111820  
          2700     INC HL         23      
          2701LOAD3LD A,(HL)      7E      
          2702     CP $0B         FE0B    
          2704     JR Z,LOAD2     2813    
          2706     CP $1A         FE1A    
          2708     JR Z,LOADM     280C    
          270A     CP $00         FE00    
          270C     JR Z,LOADM     2808    
          270E     CALL ZXASC     CD3C29  
          2711     LD (DE),A      12      
          2712     INC HL         23      
          2713     INC DE         13      
          2714     JR LOAD3       18EB    
          2716LOADMCALL ADR1      CD4024  
          2719LOAD2LD A,CR        3E0D    
          271B     LD (DE),A      12      
          271C     CALL WAIT      CDE125  
          271F     CALL READB     CD9E29  
          2722     CALL READB     CD9E29  
          2725     CALL READB     CD9E29  
          2728     LD A,$01       3E01    
          272A     CALL SENDB     CDF329  
          272D     LD A,$20       3E20    
          272F     CALL SENDB     CDF329  
          2732     LD HL,FILNA    211820  
          2735LOAD4LD A,(HL)      7E      
          2736     PUSH AF        F5      
          2737     CALL SENDB     CDF329  
          273A     INC HL         23      
          273B     POP AF         F1      
          273C     CP CR          FE0D    
          273E     JR NZ,LOAD4    20F5    
          2740LOADNCALL READB     CD9E29  
          2743     CALL BRKCK     CD262A  
          2746     JP Z,BRKER     CA7F23  
          2749     LD A,(RSTAT)   3AF120  
          274C     CP $01         FE01    
          274E     JR Z,LOADN     28F0    
          2750LODN1CALL READB     CD9E29  
          2753     CALL BRKCK     CD262A  
          2756     JP Z,BRKER     CA7F23  
          2759     LD A,(RSTAT)   3AF120  
          275C     CP $01         FE01    
          275E     JR Z,LODN1     28F0    
          2760LOAD5CALL READB     CD9E29  
          2763     CALL BRKCK     CD262A  
          2766     JP Z,BRKER     CA7F23  
          2769     LD A,(RSTAT)   3AF120  
          276C     CP $01         FE01    
          276E     JR Z,LOAD5     28F0    
          2770     LD A,(RBYTE)   3AF020  
          2773     CP CR          FE0D    
          2775     JR NZ,NLOAD    200A    
          2777     LD DE,TXF      112423  
          277A     LD (ERRNR),DE  ED530521
          277E     JP ERROR       C38623  
          2781NLOADCP $20         FE20    
          2783     JR NZ,LOAD5    20DB    
          2785     CALL READB     CD9E29  
          2788     LD (SIZEL),A   32F620  
          278B     LD (COORL),A   323640  
          278E     CALL READB     CD9E29  
          2791     LD (SIZEH),A   32F720  
          2794     LD (COORH),A   323740  
          2797     CALL READB     CD9E29  
          279A     LD (SEEDL),A   323240  
          279D     CALL READB     CD9E29  
          27A0     LD (SEEDH),A   323340  
          27A3     CALL READB     CD9E29  
          27A6     CALL READB     CD9E29  
          27A9LOADXCALL BRKCK     CD262A  
          27AC     JP Z,BRKER     CA7F23  
          27AF     CALL READB     CD9E29  
          27b2     JR NZ,LOADX    20F5    
          27B4     LD A,$04       3E04    
          27B6     CALL SENDB     CDF329  
          27B9     LD A,$20       3E20    
          27BB     CALL SENDB     CDF329  
          27BE     LD HL,FILNA    211820  
          27C1LOAD6LD A,(HL)      7E      
          27C2     PUSH AF        F5      
          27C3     CALL SENDB     CDF329  
          27C6     INC HL         23      
          27C7     POP AF         F1      
          27C8     CP CR          FE0D    
          27CA     JR NZ,LOAD6    20F5    
          27CC;STREAMING IF ADDR=0        
          27CC     LD BC,(STAL)   ED4BF420
          27D0     LD A,B         78      
          27d1     OR C           B1      
          27D2     JP Z,BASIC     CA7121  
          27D5; NORMAL LOAD               
          27D5LOADYCALL READW     CD482A  
          27D8     CALL BRKCK     CD262A  
          27DB     JP Z,BRKER     CA7F23  
          27DE     LD A,(RSTAT)   3AF120  
          27E1     CP $01         FE01    
          27E3     JR Z,LOADY     28F0    
          27E5     LD A,(RBYTE)   3AF020  
          27E8     LD HL,(STAL)   2AF420  
          27EB     LD BC,(SIZEL)  ED4BF620
          27EFLOAD7LD (HL),A      77      
          27F0     INC HL         23      
          27F1     DEC BC         0B      
          27F2     XOR A          AF      
          27f3     CP B           B8      
          27F4     JR NZ,LOAD8    200A    
          27F6     CP C           B9      
          27F7     JR NZ,LOAD8    2007    
          27F9;REWRITE ERROR CODE         
          27F9     XOR A          AF      
          27FA     LD (ERRNO),A   323240  
          27FD     JP BASIC       C37121  
          2800LOAD8CALL READB     CD9E29  
          2803     CALL BRKCK     CD262A  
          2806     JP Z,BRKER     CA7F23  
          2809     LD A,(RSTAT)   3AF120  
          280C     CP $01         FE01    
          280E     JR Z,LOAD8     28F0    
          2810     LD A,(RBYTE)   3AF020  
          2813     JR LOAD7       18DA    
          2815;;                          
          2815ERAS1LD C,$07       0E07    
          2817REERALD DE,FILNA    111820  
          281A     INC HL         23      
          281BERAS2LD A,(HL)      7E      
          281C     CP $0B         FE0B    
          281E     JR Z,ERAS3     2808    
          2820     CALL ZXASC     CD3C29  
          2823     LD (DE),A      12      
          2824     INC HL         23      
          2825     INC DE         13      
          2826     JR ERAS2       18F3    
          2828ERAS3LD A,CR        3E0D    
          282A     LD (DE),A      12      
          282B     PUSH BC        C5      
          282C     CALL WAIT      CDE125  
          282f     POP BC         C1      
          2830     LD A,C         79      
          2831     CALL SENDB     CDF329  
          2834     LD A,$20       3E20    
          2836     CALL SENDB     CDF329  
          2839     LD HL,FILNA    211820  
          283CERAS4LD A,(HL)      7E      
          283D     PUSH AF        F5      
          283E     CALL SENDB     CDF329  
          2841     INC HL         23      
          2842     POP AF         F1      
          2843     CP CR          FE0D    
          2845     JR NZ,ERAS4    20F5    
          2847ERAS5CALL READW     CD482A  
          284A     CALL BRKCK     CD262A  
          284D     JP Z,BRKER     CA7F23  
          2850     LD A,(RSTAT)   3AF120  
          2853     CP $01         FE01    
          2855     JR Z,ERAS5     28F0    
          2857     LD A,(RBYTE)   3AF020  
          285A     CP $3E         FE3E    
          285C     JR Z,EROK      2823    
          285E     CP $43         FE43    
          2860     JR NZ,NER1     2005    
          2862     LD DE,TXC      11E922  
          2865     JR ERERR       1810    
          2867NER1 CP $44         FE44    
          2869     JR NZ,NER2     2005    
          286B     LD DE,TXD      110223  
          286E     JR ERERR       1807    
          2870NER2 CP $46         FE46    
          2872     JR NZ,ERAS5    20D3    
          2874     LD DE,TXE      110F23  
          2877ERERRLD (ERRNR),DE  ED530521
          287B     CALL CLBUF     CD9F23  
          287E     JP ERROR       C38623  
          2881;;                          
          2881EROK CALL READB     CD9E29  
          2884     JP BASIC       C37121  
          2887;;                          
          2887TEX  BIT 7,(IY+$08) FDCB087E
          288B     RET Z          C8      
          288C;;                          
          288CTEX1 LD A,($403A)   3A3A40  
          288F     CP $03         FE03    
          2891     RET C          D8      
          2892;;                          
          2892     LD A,E         7B      
          2893     PUSH BC        C5      
          2894     PUSH HL        E5      
          2895     RES 7,A        CBBF    
          2897     LD C,A         4F      
          2898     AND $60        E660    
          289AASCZXJR Z,CTCHR     2811    
          289C     BIT 6,C        CB71    
          289E     JR Z,CDCON     2802    
          28A0     RES 5,C        CBA9    
          28A2CDCONXOR A          AF      
          28A3     LD B,A         47      
          28A4     LD HL,ASCZX    219A28  
          28A7     ADD HL,BC      09      
          28A8     LD A,(HL)      7E      
          28A9     RST 10         D7      
          28AA     POP HL         E1      
          28ab     POP BC         C1      
          28AC     RET            C9      
          28ADCTCHRLD A,C         79      
          28AE     CP CR          FE0D    
          28B0     JR NZ,NOCR     2003    
          28B2     LD A,$76       3E76    
          28B4     RST 10         D7      
          28B5NOCR POP HL         E1      
          28B6     POP BC         C1      
          28B7     RET            C9      
          28B8     NOP            00      
          28B9     NOP            00      
          28BA     001B0B0C0D18150B       
          28C2     101117151A161B18       
          28CA     1C1D1E1F20212223       
          28D2     24250E191314120F       
          28da     A6262728292A2B2C       
          28E2     2D2E2F3031323334       
          28EA     35363738393A3B3C       
          28F2     3D3E3F1018110E16       
          28FA     NOP            00      
          28FB     NOP            00      
          28FC;;                          
          28FCASCII2020202020202020202020 
          2907     2223247E3F28293E3C3D   
          2911     2B2D2A5C3B2C2E         
          2918     30313233343536373839   
          2922     4142434445464748494A4B 
          292D     4C4D4E4F50515253545556 
          2938     5758595A               
          293C;;                          
          293CZXASCPUSH BC        C5      
          293d     PUSH HL        E5      
          293E     LD HL,ASCII    21FC28  
          2941     LD B,$00       0600    
          2943     AND $3F        E63F    
          2945     LD C,A         4F      
          2946     ADD HL,BC      09      
          2947     LD A,(HL)      7E      
          2948     POP HL         E1      
          2949     POP BC         C1      
          294A     RET            C9      
          294B;;                          
          294BINIT CALL FAST      CDE702  
          294E     CALL CLBUF     CD9F23  
          2951     LD A,CR        3E0D    
          2953     CALL SENDB     CDF329  
          2956     LD A,$53       3E53    
          2958     CALL SENDB     CDF329  
          295B     LD A,$43       3E43    
          295D     CALL SENDB     CDF329  
          2960     LD A,$53       3E53    
          2962     CALL SENDB     CDF329  
          2965     LD A,CR        3E0D    
          2967     CALL SENDB     CDF329  
          296A     CALL WAIT      CDE125  
          296DINITWCALL WAIT      CDE125  
          2970     CALL BRKCK     CD262A  
          2973     JR Z,INIBR     2825    
          2975     CALL READB     CD9E29  
          2978     CP $3E         FE3E    
          297A     JR NZ,INITW    20F1    
          297C     CALL CLBUF     CD9F23  
          297F     LD A,CR        3E0D    
          2981     CALL SENDB     CDF329  
          2984     CALL READW     CD482A  
          2987     CP $3E         FE3E    
          2989     JR NZ,INIER    2004    
          298B     CALL CLBUF     CD9F23  
          298E     RET            C9      
          298F;;                          
          298FINIERLD DE,TXG      113023  
          2992     LD (ERRNR),DE  ED530521
          2996;    DROP RETURN ADDRESS    
          2996     POP AF         F1      
          2997     JP ERROR       C38623  
          299A;;                          
          299A;;BREAK: DROP RETUR ADDRESS 
          299AINIBRPOP AF         F1      
          299B     JP BRKER       C37F23  
          299e;;                          
          299E;;                          
          299EREADBEXX            D9      
          299F     LD C,PORT      0E5F    
          29A1     LD B,IPOFF     064C    
          29A3     IN D,(C)       ED50    
          29A5     LD B,IPS1      064F    
          29A7     IN D,(C)       ED50    
          29A9;    LD B,IPS1      064F    
          29A9     IN D,(C)       ED50    
          29AB     LD B,IPS0      064E    
          29AD     IN D,(C)       ED50    
          29AF;    LD E,$04       1E04    
          29AF;    LD B,IPS0      064E    
          29AF;BIT 0                      
          29AFRDBLPIN D,(C)       ED50    
          29b1     RL D           CB12    
          29B3     RLA            17      
          29B4;BIT 1                      
          29B4     IN D,(C)       ED50    
          29B6     RL D           CB12    
          29B8     RLA            17      
          29B9;BIT 2                      
          29B9     IN D,(C)       ED50    
          29BB     RL D           CB12    
          29BD     RLA            17      
          29BE;BIT 3                      
          29BE     IN D,(C)       ED50    
          29C0     RL D           CB12    
          29C2     RLA            17      
          29C3;BIT 4                      
          29C3     IN D,(C)       ED50    
          29c5     RL D           CB12    
          29C7     RLA            17      
          29C8;BIT 5                      
          29C8     IN D,(C)       ED50    
          29CA     RL D           CB12    
          29CC     RLA            17      
          29CD;BIT 6                      
          29CD     IN D,(C)       ED50    
          29CF     RL D           CB12    
          29D1     RLA            17      
          29D2;BIT 7                      
          29D2     IN D,(C)       ED50    
          29D4     RL D           CB12    
          29D6     RLA            17      
          29D7;    DEC E          1D      
          29D7;    JR NZ,RDBLP    20F3    
          29d7     LD E,A         5F      
          29D8     XOR A          AF      
          29D9     LD B,IPS0      064E    
          29DB     IN D,(C)       ED50    
          29DD     RL D           CB12    
          29DF     RLA            17      
          29E0     LD B,IPOFF     064C    
          29E2     IN B,(C)       ED40    
          29E4     OR A           B7      
          29E5     LD A,$00       3E00    
          29E7     JR Z,REB2      2801    
          29E9     INC A          3C      
          29EAREB2 LD (RSTAT),A   32F120  
          29ED     LD A,E         7B      
          29EE     LD (RBYTE),A   32F020  
          29F1     EXX            D9      
          29f2     RET            C9      
          29F3;;                          
          29F3;;                          
          29F3SENDBEXX            D9      
          29F4     LD C,PORT      0E5F    
          29F6     LD B,IPOFF     064C    
          29F8     IN B,(C)       ED40    
          29FA     LD B,IPS1      064F    
          29FC     IN B,(C)       ED40    
          29FE     LD B,IPS0      064E    
          2A00     IN B,(C)       ED40    
          2A02     LD B,IPS0      064E    
          2A04     IN B,(C)       ED40    
          2A06     LD E,$08       1E08    
          2A08     LD D,IPS0      164E    
          2A0AWRBLPLD B,D         42      
          2a0b     ADD A,A        87      
          2A0C     JR NC,WRBEN    3001    
          2A0E     INC B          04      
          2A0FWRBENIN B,(C)       ED40    
          2A11     DEC E          1D      
          2A12     JR NZ,WRBLP    20F6    
          2A14     XOR A          AF      
          2A15     LD B,IPS0      064E    
          2A17     IN B,(C)       ED40    
          2A19     JP P,WROK      F21E2A  
          2A1C     LD A,$08       3E08    
          2A1EWROK LD B,IPOFF     064C    
          2A20     IN B,(C)       ED40    
          2A22     BIT 3,A        CB5F    
          2A24     EXX            D9      
          2A25     RET            C9      
          2a26;;                          
          2A26BRKCKLD A,$FD       3EFD    
          2A28     IN A,$FE       DBFE    
          2A2A     BIT 0,A        CB47    
          2A2C     RET Z          C8      
          2A2D     LD A,$EF       3EEF    
          2A2F     IN A,$FE       DBFE    
          2A31     BIT 4,A        CB67    
          2A33     RET            C9      
          2A34;;                          
          2A34READMPUSH BC        C5      
          2A35     LD B,$00       0600    
          2A37REAMLCALL READB     CD0000  
          2A3A;JUST FOR TIMING            
          2A3A     CALL BRKCK     CD0000  
          2A3D     LD A,(RSTAT)   3AF120  
          2a40     CP $00         FE00    
          2A42     JR Z,REMDN     2802    
          2A44     DJNZ REAML     10F4    
          2A46;ZERO FLAG RESET: ERROR     
          2A46     INC A          3C      
          2A47REMDNLD A,(RBYTE)   3AF020  
          2A4A     POP BC         C1      
          2A4B     RET            C9      
          2A4C;;                          
          2A4CREADWCALL READB     CD9E29  
          2A4F     RET Z          C8      
          2A50     CALL BRKCK     CD262A  
          2A53     JR NZ,READW    20F7    
          2A55     LD A,$29       3E29    
          2A57;RESET Z FLAG TO INDICATE   
          2A57;BREAK                      
          2a57     INC A          3C      
          2A58     RET            C9      
          2A59;---------------------------
                                          
 
Und hier der Treiber mit Testprogramm:
USB2TEST.P
(10.41 KiB) 21-mal heruntergeladen
Gruß und bis zum Treffen
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Joachim
User
Beiträge: 982
Registriert: 06.11.2004, 20:21

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von Joachim » 04.03.2018, 09:01

Hallo Siggi,
ich habe mein VDRIVE an der PIO und teste heute Abend.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
ZX-Heinz
User
Beiträge: 1436
Registriert: 05.12.2011, 14:45

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von ZX-Heinz » 04.03.2018, 10:31

Ich kann unter H4TH problemlos bytewise vom Vdrive laden. Seltsam.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 04.03.2018, 11:21

Der Zeddy-USB-Treiber kann ja auch byteweise vom Stick lesen! Das macht ja die normale LOAD-Routine auch: öffent die Datei zum Lesen und holt dann die Bytes einzeln ab und schreibt sie ins RAM. Deshalb wundert es mich umso mehr, wieso das nicht mehr klappt, wenn das nun geringfügig anders passiert (vom Timing her) ...

Gruß
Siggi

PS: Der streamende Midiplayer wäre fertig, es hängt nur noch am Treiberproblem ...
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Joachim
User
Beiträge: 982
Registriert: 06.11.2004, 20:21

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von Joachim » 04.03.2018, 17:37

Hallo Siggi,
ich habe die Version USB1.3.3 mit deinen neuen Routinen bzw. Änderungen erweitert auf USB2.0.0. Die bisherigen Funktionen laufen fehlerfrei. Ich verwende meinen GIANT (ZX96) und betreibe das VDRIVE über die PIO. Auch ich lese die Zeichen mit der BASIC-Routine

100 PRINT USR 16514;"/";
110 GOTO 100

ein. Zuvor habe ich

50 PRINT USR 32771,"L NAME.PLT 0"
60 RAND einzulesende Bytes
70 STOP

gestartet. Wo erfolgt bei dir die Vorgabe der einzulesenden Bytes?

Ergebnis:
1. Das erste bzw. manchmal auch das erste und zweite Zeichen werden nicht eingelesen
2. Diese Zeilen in FAST ausgeführt führen zum Absturz
3. Im SLOW wird bei mir auch nur immer die gleiche Anzahl an Bytes eingelesen. Dann steht das MC und die grüne Kontrollleuchte blinkt nicht mehr.
An den eingelesenen Zeichen kann es nicht liegen, dass das nur die ASCII-Werte für Zahlen, "PA","PD" und "PU" sind.
4. Vor dem Stehenbleiben werden immer noch die Zeichen "CF", die nicht im File stehen, ausgegeben
5. Das Programm scheint sich nicht so richtig für die Anzahl der einzulesenden Zeichen zu interessieren. Gebe ich z.B. 20 Zeichen vor, werden etwa 100 eingelesen, dann kommt der Abbruch. Gebe ich 200 oder 1000 Zeichen vor, dann wird bis in die letzte Bildschirmzeile geschrieben. Dann folgt eine kurze Pause und dann wird 4/100 gemeldet.
6. Eigentlich müsste doch das eingelesene Zeichen, dann das "/" und dann das nächste Zeichen angezeigt werden. Das "/" fehlt aber.

Kann ich nochwas testen?
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 04.03.2018, 17:45

Hallo Joachim
ich habe den Usb-Treiber bei 8k liegen. Dort hin springt auch usr 16514! Hatte den ASDIS bei 40k liegen, als ich getestet hatte.
Wenn Dein Treiber ab 32k liegt, klappt natürlich nix.
Wenn Du so testen willst, dann muß das kleine MC ab 16514 die Aufrufadresse der neuen Funktion (in Jumptabelle) in Deinem Treiber ab 32K erhalten ...
Zuletzt geändert von siggi am 04.03.2018, 18:16, insgesamt 1-mal geändert.
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
ZX-Heinz
User
Beiträge: 1436
Registriert: 05.12.2011, 14:45

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von ZX-Heinz » 04.03.2018, 17:45

Joachim hat geschrieben:
04.03.2018, 17:37
4. Vor dem Stehenbleiben werden immer noch die Zeichen "CF", die nicht im File stehen, ausgegeben
"CF"= "Command Failed" ist ein Reply des VDRIVE und bedeutet: Filename or directory name not found.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 04.03.2018, 17:57

Joachim hat geschrieben:
04.03.2018, 17:37
5. Das Programm scheint sich nicht so richtig für die Anzahl der einzulesenden Zeichen zu interessieren. Gebe ich z.B. 20 Zeichen vor, werden etwa 100 eingelesen, dann kommt der Abbruch. Gebe ich 200 oder 1000 Zeichen vor, dann wird bis in die letzte Bildschirmzeile geschrieben. Dann folgt eine kurze Pause und dann wird 4/100 gemeldet.
Hallo Joachim
ein Aufruf holt genau 1 Zeichen vom Vdrive ab (ist dann in A). Wo/wie hast Du denn die "vorgegeben"?

Das kleine MC ab 16514 ruft den Treiber auf und kriegt in A das Ergebnis (Zeichen) und ZERO-BIT gesetzt (nicht bei Fehler) zurück, das das MC dann in B (Fehler) und C (A) holt, damit sie im BASIC richtig ankommen.

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Joachim
User
Beiträge: 982
Registriert: 06.11.2004, 20:21

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von Joachim » 04.03.2018, 18:18

Hallo Siggi,
ich habe den Treiber zur Adr. 32768 assembliert. ASDIS habe ich auf 8192. Auch ich habe in einer REM-Zeile (Adr. 16514)
Call $800C
ld c,a
ld b,0
ret z
inc b
ret
Dann bringe mit mit PRINT USR 16514 die Zeichen auf den Schirm. Das klappt ja zunächst auch. Nur halt nicht alle. Die Anzahl der Zeichen, die eingelesen werden sollen, definierte ich über RAND Anzahl. Das habe ich falsch verstanden und hätte ich mir sparen können. Es ändert aber nichts an der Tatsache, dass bei mir auch nicht alle Bytes übertragen werden. Am NU liegt es offensichtlich nicht.

Im Anhang mein Programm mit ASDIS-Source.
USB2PIO.P
(11.1 KiB) 21-mal heruntergeladen
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 04.03.2018, 19:44

Hallo Joachim
habe mir Deinen Treiber angeguggt und sieht erst mal korrekt übernommen aus.

Noch ein paar Hinweise und Gedanken:
Bei mir läuft ja erst mal alles normal: nach Kommando "L dingens 0" (mache ich im UFM, ist aber äquivalent) kann ich die Datei ab Anfang Byte für Byte fehlerlos lesen (es fehlt keinen, keines ist zu viel. Aber bitte nur als Zahl ausgeben, denn es sind auch nicht-druckbare ASCII-Zeichen meist dabei!). Aber bei ca. 131 Zeichen kommt kein Zeichen mehr und VDRIVE blinkt nicht mehr (im BASIC-Programm kommt ein konstanter Wert >255 zurück).
Jedes DIR-Kommando an VDRIVE liefert anschießend dann seine Antwort "CF" (Command Failed), weil aus seiner Sicht die Datei wohl noch offen ist.
Korrekt ist das auch, weil man noch nicht die gesamte Länge der Datei ausgelesen hat (wird ja in COORDS/SEED an den Aufrufer zurück übergeben, wobei das letztere von mir blöd gewählt wurde, weil da ja schon der Error-Code zurückgeliefert wird. Das muss noch anders werden).
Da hilft dann nur noch Ziehen/Stecken des Sticks, damit VDRIVE wieder normal reagiert (bei DIR kommt aber noch viel Mist, sieht man gut beim UFM).

Normalerweise laufen die USB-Routinen im FAST-Modus. Ob das einen Unterschied macht, weil im SLOW-Modus (den ich beim Midiplaer brauche) mitten im Bitschieben zum Stick ein NMI oder gar ein Bild das Timing voll zerhaut????
Andererseits läuft bei mir im FAST-Modus alles genauso wie bei Slow (nur schneller :mrgreen: ).

Abstürze oder so habe ich nicht. Aber die BRKCK-Routine in READM habe ich nur aus Timing-Gründen drin (bitte nicht benutzen). Ob die bei Tastendruck richtig funktioniert (Sprung raus über viele Stack-Levels!!!!), kann ich nicht sagen.

Abstürze hatte ich weder bei SLOW noch FAST.

Gruß
Siggi

Nachtrag: Ach ja, SLOW und Video: im SENDB und READB wird ja der andere Registersatz benutzt (EXX!). Aber m. W. nicht EX AF,AF`,was im SLOW tödlich wäre ...
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 05.03.2018, 12:35

Hallo Joachim
das ich ja die Daten ab Dateianfang richtig lesen kann und dann danach nix mehr kommt (auch im FAST), vermute ich, daß im Prinzip alles funzt.
Vielleicht hat die Firmware ein Timeout drin? Denn beim normalen LOAD werden die Daten direkt nach Öffnen der Datei gelesen (funzt), bei LOAD auf 0 wird Datei geöffnet, aber erst später gelesen (funzt nicht).
Also versuche ich mal die Zeitspanne zwischen Öffnen und Lesen zu minimieren ...

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Joachim
User
Beiträge: 982
Registriert: 06.11.2004, 20:21

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von Joachim » 05.03.2018, 15:37

Hallo Siggi,
das wäre durchaus möglich. Wäre schon toll, wenn es klappen würde. Habe heute mein NanoSynth bekommen. Dass wäre schon was, wenn ich damit auch MIDIeren könnte.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4706
Registriert: 31.08.2011, 23:41

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von PokeMon » 06.03.2018, 22:05

Liegt es
a) an 130 Aufrufen => kann man 260 Zeichen lesen, wenn man immer zwei Zeichen liest ?
b) am Timeout => macht die Zeitspanne Unterschiede ?

Vielleicht auch ein Stack Problem, wenn der nicht ganz bereinigt ist nach einem Aufruf.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 06.03.2018, 23:53

N'abend
bin etwas weiter, bzw. doch nicht:
PokeMon hat geschrieben:
06.03.2018, 22:05
Liegt es
a) an 130 Aufrufen => kann man 260 Zeichen lesen, wenn man immer zwei Zeichen liest ?
Die 131 Byte, die ich mit diesem Stick einlesen kann, setzen sich anscheinend so zusammen:
128 Byte aus internen Sektor-Puffer des VDRIVE
3 Byte Fehlermeldung vom VDRIVE "CF"+"<CR>" als Meldung "Command failed" :roll:
b) am Timeout => macht die Zeitspanne Unterschiede ?
Das kommt morgen, aber das Timing wird durch MIDI vorgegeben und die sehr endliche Speichergröße im Zeddy, nicht durch die VDRIVE Firmware (zumindest im aktuellen Fall) ...
Vielleicht auch ein Stack Problem, wenn der nicht ganz bereinigt ist nach einem Aufruf.
Habe ich überprüft, sieht nicht so aus.

Heute habe alles in M/C mit minimalem Delay zwischen Open und erstem Read gemacht:
Datei mit "L dingens 0" geöffnet (auch in MC)
minimales Errorhandling danach,
dann in SLOW geschaltet (USB-Treiber läuft im FAST) und gleich NOVA gestartet (geht alles fix)
und dann die ersten Bytes gelesen.
Schluß war wieder nach eingen Sekunden Musik mittendrin. Hat also nix gebracht.

Morgen probiere ich alles ohne irgenwelche Delays. Damit kann ich zwar im Midiplayer nix anfangen, denn der macht Pausen im VDRIVE-Datentrom durch
- warten auf bestimmten Frame (also n x 20 msec bzw. Videoframes)
- warten, bis aktuelles Byte ans MIDI-Device raus ist, bevor das nächste nachgeschoben wird (alle 320 us innerhalb eines Frames)

Da Lesen vom Stick grob 100 us dauert, entstehen also systematisch Lücken beim Lesen vom Stick (1 Byte lesen und gleich wieder weitersenden)
Wenn ich also vom Stick schneller lesen muss, als ich es auf Midi rausjagen kann, platzt mir irgendwann der Zeddy (besonders wenn ich Moggys Midifiles mit diversen 100 kB Größe rausjagen will, die ich nicht in 32KB freies Ram zwischenpuffern könnte).

N8
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Paul
User
Beiträge: 2736
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von Paul » 07.03.2018, 07:50

Hallo Siggi,
falls ich den Quelltext richtig interpretiere versuchst du die Datei mit
$0420file0D zu öffnen und dann komplett zu lesen. Das da ein timeout kommt ist verständlich.

Richtig wäre die Datei mit $0E20file0D zu öffnen und dann in Blöcken (1-x bytes) zu lesen mit $0B20dword0D wobei dword die Anzahl bytes sind.
Also Byteweise oder wie es beliebt.


Mit so einer Routine könnte man dann auch "L Datei.B <startpos> <len> <zieladdr>" realisieren.

HTH
Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 07.03.2018, 08:32

Hi Paul
ja, das ist richtig. Aber aus Performance-Gründen ist das hier notwendig! Wenn man die Datei "byteweise" lesen will, muß man die Bytes ja explizit anfordern. Da erfordert mehrere Bytes an Kommandos (Lesekommando und Anzahl Bytes und <CR>), was dann viel zu lange dauern würde und somit Lücken in den Midi-Datenstrom reißen würde (in 1 "RS232-Byte" passen zeitlich max. 3 "VDRIVE"-Bytes" rein).
Für andere Anwendung mit weniger "Echtzeitanforderungen" (vlt. Lesen von Joachims Plotterdatei) wäre das sicher der bessere Weg. Liest man die Datei "komplett" (wie hier), hat man keinen Overhead.

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
Paul
User
Beiträge: 2736
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von Paul » 07.03.2018, 08:59

Falls das ganze tatsächlich am Timeout scheitert (das Usermanual von FTDI beinhaltet des wort timeout nicht) wäre es ggf. einen Versuch Wert ob im wahlfreien Zugriff auf die Datei (lesen mit ganzer Länge in einem Stück) die gleichen Timeouts passieren. Es könnte sein das die Programmierer da mehr Toleranz erlauben da die Routine ja eh mit stückchenweise Lesen auskommen soll. Im worst case funktioniert das halt nicht.

Mehr Laufzeit bekommst du natürlich auch wenn du auf die Bildschirmausgabe verzichtest und ganz im FAST bleibst. Dann solltest du ausreichend Zeit haben byteweise (oder in 1K Blöcken) zu lesen. Als Anzeige kannst du dann ja das Display des NU verwenden :wink:
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 07.03.2018, 09:15

Paul hat geschrieben:
07.03.2018, 08:59
Falls das ganze tatsächlich am Timeout scheitert (das Usermanual von FTDI beinhaltet des wort timeout nicht) wäre es ggf. einen Versuch Wert ob im wahlfreien Zugriff auf die Datei (lesen mit ganzer Länge in einem Stück) die gleichen Timeouts passieren. Es könnte sein das die Programmierer da mehr Toleranz erlauben da die Routine ja eh mit stückchenweise Lesen auskommen soll. Im worst case funktioniert das halt nicht.
Das wäre 'nen Versuch wert ..
Mehr Laufzeit bekommst du natürlich auch wenn du auf die Bildschirmausgabe verzichtest und ganz im FAST bleibst. Dann solltest du ausreichend Zeit haben byteweise (oder in 1K Blöcken) zu lesen. Als Anzeige kannst du dann ja das Display des NU verwenden :wink:
Ich brauche die Bildausgabe als Taktgeber für das auf 20msec- ausgelegte Block-Schreiben Richtung MIDI. Deshalbe benutze ich ja NOVA, das mir ein Bild (und damit den Takt) mit nur 1 Zeile (und damit mehr Rechenzeit) liefert.
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 07.03.2018, 14:26

So, ich habe man eine Anfrage zu undokumentierten Timeouts in der VDAP-Firmware an support1@ftdichip.com geschickt. Mal sehen, ob die was raus lassen :roll:

Wie auch immer: auch wenn ich jedes Byte einzeln vom VDRIVE2 anfordere und schnell abholen will, kann mir immer die Video-Routine reinhauen, die alle 20 msec mal ein Bild im SLOW-Modus erzeugt. Das kann dann passieren, wenn nach dem letzten Bild mehr als ca. 60 Zeichen Richtung Midi geschoben werden müssen. Und dann ist wieder eine große Pause drin ...
Ob das in der Firmware weggesteckt werden kann?????

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 07.03.2018, 18:48

ZX-Heinz hat geschrieben:
04.03.2018, 10:31
Ich kann unter H4TH problemlos bytewise vom Vdrive laden. Seltsam.
Hallo Heinz
mit welchen Befehlen öffnest Du denn die Datei?
Und wie liest Du einzelne Bytes? Forderst Du die einzeln oder im Block an oder kommen die in einem Datenstrom, der vorher per passendem Kommando (welches) ausgelöst wurde?
Und kommt es da auch vor, daß große (1-2 msec) Pausen zwischen dem Lesen aufeinanderfolgender Bytes auftreten? Das sind nämlich meine Randbedingungen ...

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
ZX-Heinz
User
Beiträge: 1436
Registriert: 05.12.2011, 14:45

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von ZX-Heinz » 07.03.2018, 20:20

siggi hat geschrieben:
07.03.2018, 18:48
ZX-Heinz hat geschrieben:
04.03.2018, 10:31
Ich kann unter H4TH problemlos bytewise vom Vdrive laden. Seltsam.
Hallo Heinz
mit welchen Befehlen öffnest Du denn die Datei?
Und wie liest Du einzelne Bytes? Forderst Du die einzeln oder im Block an oder kommen die in einem Datenstrom, der vorher per passendem Kommando (welches) ausgelöst wurde?
Und kommt es da auch vor, daß große (1-2 msec) Pausen zwischen dem Lesen aufeinanderfolgender Bytes auftreten? Das sind nämlich meine Randbedingungen ...

Gruß
Siggi
Hallo siggi,
ich habe schon alles für M. eingepackt, und dort können wir gern experimentieren. Im Prinzip lese ich die Bytes einzeln ein. Das Treiberprogramm ist:
H4V2003.TXT
(16.81 KiB) 24-mal heruntergeladen
Und zwar ab label RDCHR: Damit wird ein einzelnes Byte eine rvorher mit "OPW NAME" geöffneten Datei gelesen, der Status geprüft und im Fall der Gültigkeit das im Register L sitzende Byte auf dem Stack abgelegt (RST #08).
Ich betreibe dass VDRIVE im ECS-Modus, Thomas hatte das wohl im SCS-Modus gemacht.
Bis bald in M., Heinz

Benutzeravatar
PokeMon
User
Beiträge: 4706
Registriert: 31.08.2011, 23:41

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von PokeMon » 08.03.2018, 19:39

siggi hat geschrieben:
06.03.2018, 23:53
Die 131 Byte, die ich mit diesem Stick einlesen kann, setzen sich anscheinend so zusammen:
128 Byte aus internen Sektor-Puffer des VDRIVE
3 Byte Fehlermeldung vom VDRIVE "CF"+"<CR>" als Meldung "Command failed" :roll:
Ich kann ja mal in den Source Code reinschauen.

Ist es das V2DAP was Du nutzt ?
http://www.ftdichip.com/Firmware/Precompiled.htm

Die Firmware ist hier nicht gelistet, habe ich aber auf meinem Rechner unter FTDI Examples und die Entwicklungsumgebung auch.
http://www.ftdichip.com/Products/ICs/VNC2.htm

Die 128 sieht nach einer Standard Buffer Size aus. 8)

Code: Alles auswählen

// available buffer sizes for interface peripherals
#define VOS_BUFFER_SIZE_64_BYTES  0x00
#define VOS_BUFFER_SIZE_128_BYTES 0x40
#define VOS_BUFFER_SIZE_256_BYTES 0x80
#define VOS_BUFFER_SIZE_512_BYTES 0xC0
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 08.03.2018, 20:22

Hi Karl
wäre klasse, wenn Du da was findent würdest.
Es geht um den VDRIVE2 mit der VDAP Firmware (m. W. habe ich 3.62) mit "VNC1L Module": "Latest Vinculum (VNC1L) Firmware Releases":
http://www.ftdichip.com/Firmware/Precompiled.htm
(weiter unten, nach "VDAP" in der Seite suchen ..)

siehe auch:
http://www.ftdichip.com/Support/Documen ... DRIVE2.pdf

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
PokeMon
User
Beiträge: 4706
Registriert: 31.08.2011, 23:41

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von PokeMon » 08.03.2018, 21:58

Kannst Du mal kurz schildern, welche Kommandos Du in welcher Reihenfolge benutzt ?
Würde das Nachvollziehen im Code einfacher machen.

Code: Alles auswählen

	// Disk Operations
	{MON_COMMANDCODE(0,	  'D',	'I', 'R'),	MON_CMDDISKREQ(0x01), cmd_dir },
	{MON_COMMANDCODE(0,	  0,	'C', 'D'),	MON_CMDDISKREQ(0x02), cmd_cd  },
	{MON_COMMANDCODE(0,	  0,	'R', 'D'),	MON_CMDDISKREQ(0x04), cmd_rd  },
	{MON_COMMANDCODE(0,	  'D',	'L', 'D'),	MON_CMDDISKREQ(0x05), cmd_dld },
	{MON_COMMANDCODE(0,	  'M',	'K', 'D'),	MON_CMDDISKREQ(0x06), cmd_mkd },
	{MON_COMMANDCODE(0,	  'D',	'L', 'F'),	MON_CMDDISKREQ(0x07), cmd_dlf },
	{MON_COMMANDCODE(0,	  'W',	'R', 'F'),	MON_CMDDISKREQ(0x08), cmd_wrf },
	{MON_COMMANDCODE(0,	  'O',	'P', 'W'),	MON_CMDDISKREQ(0x09), cmd_opw },
	{MON_COMMANDCODE(0,	  'C',	'L', 'F'),	MON_CMDDISKREQ(0x0A), cmd_clf },
	{MON_COMMANDCODE(0,	  'R',	'D', 'F'),	MON_CMDDISKREQ(0x0B), cmd_rdf },
	{MON_COMMANDCODE(0,	  'R',	'E', 'N'),	MON_CMDDISKREQ(0x0C), cmd_ren },
	{MON_COMMANDCODE(0,	  'O',	'P', 'R'),	MON_CMDDISKREQ(0x0E), cmd_opr },
	{MON_COMMANDCODE(0,	  'S',	'E', 'K'),	MON_CMDDISKREQ(0x28), cmd_sek },
	{MON_COMMANDCODE(0,	  0,	'F', 'S'),	MON_CMDDISKREQ(0x12), cmd_fs  },
	{MON_COMMANDCODE(0,	  'F',	'S', 'E'),	MON_CMDDISKREQ(0x93), cmd_fse },
	{MON_COMMANDCODE(0,	  'I',	'D', 'D'),	MON_CMDDISKREQ(0x0F), cmd_idd },
	{MON_COMMANDCODE('I', 'D',	'D', 'E'),	MON_CMDDISKREQ(0x94), cmd_idde},
	{MON_COMMANDCODE(0,	  'D',	'S', 'N'),	MON_CMDDISKREQ(0x2D), cmd_dsn },
	{MON_COMMANDCODE(0,	  'D',	'V', 'L'),	MON_CMDDISKREQ(0x2E), cmd_dvl },
	{MON_COMMANDCODE('D', 'I',	'R', 'T'),	MON_CMDDISKREQ(0x2F), cmd_dirt},
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 2345
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: USB-Treiber für "Streaming" mit Problem

Beitrag von siggi » 08.03.2018, 22:25

Im VDAP-Manual heißt das Kommando "RD filename"
"6.2.3
Read File (RD)
Parameters:
Filename
– Up to 11 characters ASCII.
This command sends the entire contents of
a file to the Monitor. If the number of
bytes expected to be received from the
Monitor is required then a DIR command should be
done to find out the size
of the file beforehand.
Error Codes:
Command Failed
– The filename specified does not exist.
File Open
– A file is currently open for writing. Close
the open file first before retrying this command."

Damit wird das ganze File gelesen, deren Bytes ich mir einfach einsammeln und rausjagen will (ohne sie nochmal per weiterem Kommando explizit anzufordern). Vorher wird noch mit einem "DIR filename" die Größe der Datei in Bytes ermittelt.
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Antworten