Guten Morgen ,
hier nun der zweite Teil.
P_033: ;--------------------------------------------------------------------------;
mov byte [0xB8000+25*154-12+62*2], "C"
mov byte [0xB8000+25*154-12+62*2+1],0xAF
;--------------------------------------------------------------------------
;Hier Programm !!
;---------------------------------------Queue Head C----------Vorbereitung Lesen (28h)-----------------------
mov dword [0x00600400] , 0x00600402 ;00-03 Bit 02-01 Typ->hier QH Link Pointer
mov dword [0x00600404] , 0x801F2201 ;07-04 Bit:13-12 1b-0b High-Speed+Bit-15(H) Bit-14 hig->DTC/Dev_addr/Cruzer+Kingston?
; mov dword [0x00600404] , 0x801F6101 ;07-04 Bit:13-12 1b-0b High-Speed+Bit-15(H) Bit-14 hig->DTC/Dev_addr/General4Giga-F8-OK
mov dword [0x00600408] , 0x40000000 ;0B-08 Mult Bit 31-30
mov dword [0x0060040C] , 0x0 ;0F-0C Current qTD Pointer Bit 31-05
mov dword [0x00600410] , 0x00600460 ;13-10 Next qTD Pointer Bit 31-05
mov dword [0x00600414] , 0x00000000 ;17-14 Alternate Next qTD Pointer Bit 31-05
;---------------------------------------------------------------------------------------
;----------------------TD-0-qTD Nr000----OUT----------------------------------------------------------------
mov dword [0x00600460] , 0x006004A1 ;Next qTD Pointer Bit 31-05 /Bit 04-01-> Null /Bit 0 T (A1)?
mov dword [0x00600464] , 0x00000001 ;Alternat Next qTD Pointer /Bit 04-01-> Null /Bit 0 T
; mov dword [0x00600468] , 0x00200080 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> OUT Token/Status (32d=20h)->Fehler
mov dword [0x00600468] , 0x001F0C80 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> OUT Token/Status (31d=1Fh)->ok
mov dword [0x0060046C] , 0x00600520 ;Buffer Pointer (Page 0) Bit 31-12
mov dword [0x00600470] , 0x00601000 ;Buffer Pointer (Page 1) Bit 31-12
mov dword [0x00600474] , 0x00602000 ;Buffer Pointer (Page 2) Bit 31-12
mov dword [0x00600478] , 0x00603000 ;Buffer Pointer (Page 3) Bit 31-12
mov dword [0x0060047C] , 0x00604000 ;Buffer Pointer (Page 4) Bit 31-12
;--------------------------qTD Nr001-----OUT--------------------------------------------
mov dword [0x006004A0] , 0x006004E1 ;Next qTD Pointer Bit 31-05 /Bit 04-01-> Null /Bit 0 T
mov dword [0x006004A4] , 0x006004E1 ;Alternat Next qTD Pointer /Bit 04-01-> Null /Bit 0 T
mov dword [0x006004A8] , 0x80000C80 ;dt=1/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> OUT Token/Status->ok
mov dword [0x006004AC] , 0x00700000 ;Buffer Pointer (Page 0) Bit 31-12
mov dword [0x006004B0] , 0x00701000 ;Buffer Pointer (Page 1) Bit 31-12
mov dword [0x006004B4] , 0x00702000 ;Buffer Pointer (Page 2) Bit 31-12
mov dword [0x006004B8] , 0x00703000 ;Buffer Pointer (Page 3) Bit 31-12
mov dword [0x006004BC] , 0x00704000 ;Buffer Pointer (Page 4) Bit 31-12
;---------------------------------------------------------------------------------------
;---------------------------------------Queue Head D----------LESEN--------------------------
mov dword [0x00600600] , 0x00600602 ;00-03 Bit 02-01 Typ->hier QH Link Pointer
; mov dword [0x00600604] , 0x820DA201 ;07-04 Bit:13-12 1b-0b High-Speed+Bit-15(H) Bit-14 hig->DTC/Device_address->General4Giga->ok
mov dword [0x00600604] , 0x820DA101 ;07-04 Bit:13-12 1b-0b High-Speed+Bit-15(H) Bit-14 hig->DTC/Dev_addr->Acer-OK-Cruzer+Kingston?
mov dword [0x00600608] , 0x40000000 ;0B-08 Mult Bit 31-30
mov dword [0x0060060C] , 0x0 ;0F-0C Current qTD Pointer Bit 31-05
mov dword [0x00600610] , 0x00600660 ;13-10 Next qTD Pointer Bit 31-05
mov dword [0x00600614] , 0x00000000 ;17-14 Alternate Next qTD Pointer Bit 31-05
;---------------------------------------------------------------------------------------
;----------------------TD-0-qTD Nr000----IN----------------------------------------------------------------
mov dword [0x00600660] , 0x006006A0 ;Next qTD Pointer Bit 31-05 /Bit 04-01-> Null /Bit 0 T
mov dword [0x00600664] , 0x00000001 ;Alternat Next qTD Pointer /Bit 04-01-> Null /Bit 0 T
; mov dword [0x00600668] , 0x02000180 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status
; mov dword [0x00600668] , 0x02000D80 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status-ok
mov dword [0x00600668] , 0x02000D80 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status-test
mov dword [0x0060066C] , 0x00705000 ;Buffer Pointer (Page 0) Bit 31-12
mov dword [0x00600670] , 0x00706000 ;Buffer Pointer (Page 1) Bit 31-12
mov dword [0x00600674] , 0x00707000 ;Buffer Pointer (Page 2) Bit 31-12
mov dword [0x00600678] , 0x00708000 ;Buffer Pointer (Page 3) Bit 31-12
mov dword [0x0060067C] , 0x00709000 ;Buffer Pointer (Page 4) Bit 31-12
;--------------------------qTD Nr001-----IN----------------------------------------------
mov dword [0x006006A0] , 0x006006E1 ;Next qTD Pointer Bit 31-05 /Bit 04-01-> Null /Bit 0 T
mov dword [0x006006A4] , 0x006006E1 ;Alternat Next qTD Pointer /Bit 04-01-> Null /Bit 0 T
; mov dword [0x006006A8] , 0x82000180 ;dt=1/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status Dh->13d
mov dword [0x006006A8] , 0x800D0D80 ;dt=1/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status-test
mov dword [0x006006AC] , 0x0070A000 ;Buffer Pointer (Page 0) Bit 31-12
mov dword [0x006006B0] , 0x0070B000 ;Buffer Pointer (Page 1) Bit 31-12
mov dword [0x006006B4] , 0x0070C000 ;Buffer Pointer (Page 2) Bit 31-12
mov dword [0x006006B8] , 0x0070D000 ;Buffer Pointer (Page 3) Bit 31-12
mov dword [0x006006BC] , 0x0070E000 ;Buffer Pointer (Page 4) Bit 31-12
;--------------------------qTD Nr002-----IN----------------------------------------------
mov dword [0x006006E0] , 0x00000001 ;Next qTD Pointer Bit 31-05 /Bit 04-01-> Null /Bit 0 T
mov dword [0x006006E4] , 0x00000001 ;Alternat Next qTD Pointer /Bit 04-01-> Null /Bit 0 T
; mov dword [0x006006E8] , 0x02000180 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status
mov dword [0x006006E8] , 0x02000D80 ;dt=0/Total-Bytes to Transfer/IOC/C_Page/Cerr/PID-> IN Token/Status
mov dword [0x006006EC] , 0x0070F000 ;Buffer Pointer (Page 0) Bit 31-12
mov dword [0x006006F0] , 0x00710000 ;Buffer Pointer (Page 1) Bit 31-12
mov dword [0x006006F4] , 0x00711000 ;Buffer Pointer (Page 2) Bit 31-12
mov dword [0x006006F8] , 0x00712000 ;Buffer Pointer (Page 3) Bit 31-12
mov dword [0x006006FC] , 0x00713000 ;Buffer Pointer (Page 4) Bit 31-12
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
;---------------------TD-0----Buffer für qTD Nr.000--------------------------------------------------------------
;---------Speicher-Einstellung-Buffer-Bereich erst mal Null------------------
mov dword [0x00600520] , 0x43425355 ; ;01-04 Byte
mov dword [0x00600524] , 0x78563412 ; ;05-08 Byte
mov dword [0x00600528] , 0x00000200 ;TransferLength ->512 ;09-12 Byte
mov byte [0x0060052C] , 0x80 ;IN Gerät->Host ;13 Byte
mov byte [0x0060052D] , 0x0 ;LUN ;14 Byte
mov byte [0x0060052E] , 0x0A ;0A ?? ;15 Byte
mov dword [0x0060052F] , 0x00000028 ;OP-Code 0x28 ;0x52 ;16-19 Byte
mov dword [0x00600533] , 0x00000100 ;hier lesen Sector-2 ;20-23 Byte
mov bl , [lesen_sector_nr]
mov byte [0x00600534] , bl ;
mov dword [0x00600537] , 0x00000001 ;1 Lexar ;24-27 Byte
mov dword [0x0060053B] , 0x0 ;28-31 Byte (1Fh)
; mov byte [0x0060053F] , 0x0 ;32 Byte (20h) Fehler !
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
mov dword [Programm_auswahl] , 0x04*0 ;zurück setzen
ret
;;;;;;;;;;;;;;;;;;;;-----------------------------------------;;;;;;;;;;;;;;
;--------------------------------------------------------------------------
;--------------------------------------------------------------------------
P_034:
;--------------------------------------------------------------------------
mov byte [0xB8000+25*154-12+63*2], "D"
mov byte [0xB8000+25*154-12+63*2+1],0xAF
;--------------------------------------------------------------------------
;Hier Programm !!
call P_031
;----------------------enable-Pointer---------------------------------------------
mov dword [0x00600210] , 0x00600260 ;13-10 Next qTD Pointer Bit 31-05 (P_025)
;-------------------------------------------------------------------------
mov word [pause_aktiviert] , 2 ;10-8 ;
mov dword [weiter_mit_p] , 0x04*35
;-------------------------------------------------------------------------
mov dword [Programm_auswahl] , 0x04*0 ;zurück setzen
ret
;--------------------------------------------------------------------------------
P_035:
;--------------------------------------------------------------------------
mov byte [0xB8000+25*154-12+64*2], "E"
mov byte [0xB8000+25*154-12+64*2+1],0xAF
;--------------------------------------------------------------------------
;Hier Programm !!
;--------------------------------------------------------------------------
call P_033
mov dword [0x00600200] , 0x00600402 ;00-03 Bit 02-01 Typ->hier QH Link Pointer (aktivieren)
;---------------------Parameter Pause-------------------------------------------
mov word [pause_aktiviert] , 1 ;10-9 ;
mov dword [weiter_mit_p] , 0x04*36
;-------------------------------------------------------------------------
mov dword [Programm_auswahl] , 0x04*0 ;zurück setzen
ret
;-----------------------------------------------------------------------------
P_036:
;--------------------------------------------------------------------------
mov byte [0xB8000+25*154-12+65*2], "F"
mov byte [0xB8000+25*154-12+65*2+1],0xAF
;--------------------------------------------------------------------------
;Hier Programm !!
mov dword [0x00600400] , 0x00600602 ;00-03 Bit 02-01 Typ->hier QH Link Pointer
;---------------------Parameter Pause-------------------------------------------
mov word [pause_aktiviert] , 1 ;10-9 ;
mov dword [weiter_mit_p] , 0x04*37
;-------------------------------------------------------------------------
mov dword [Programm_auswahl] , 0x04*0 ;0x04*07 ;zurück setzen
ret
;--------------------------------------------------------------------------------
P_037:
;--------------------------------------------------------------------------
mov byte [0xB8000+25*154-12+66*2], "G"
mov byte [0xB8000+25*154-12+66*2+1],0xAF
;--------------------------------------------------------------------------
;Hier Programm !!
call P_031
;-------------------------------------
mov dword [0x00600600] , 0x00600202 ;00-03 Bit 02-01 Typ->hier QH Link Pointer
;-------------------------------------------------------------------------
mov dword [Programm_auswahl] , 0x04*0 ;zurück setzen
ret
Gruß
Relbmessa