@Don_Adan, post #210
@Don_Adan, post #212
; tryb testowy
#TEST = 0
Function .l ReadSize{adres.l}
MOVE.l D0,A0 ;-----odczyt
SUBA.l #1,A0 ; z
MOVE.b (A0),D0 ; nieparzystego
ROL.l #8,D0 ; bajtu
MOVE.b 1(A0),D0 ; /
ROL.l #8,D0 ; /
MOVE.b 2(A0),D0 ; /
ROL.l #8,D0 ; /
MOVE.b 3(A0),D0 ;/
ROL.w #8,D0 ; zamiana
SWAP.w D0 ;
ROL.w #8,D0 ; endiana
AsmExit
End Function
NEWTYPE .fileOnDisk
_size.l ; rozmiar
_data.l ; wskaznik
_name.s ; nazwa pliku
End NEWTYPE
DEFTYPE .fileOnDisk src,fts
DEFTYPE .l offset
; ZMIENNE:
; src zmienna pliku odczytanego
; fts zmienna pliku do zapisu
; offset pozycja odczytu w pamieci
;--------------------------------------------------------------
; nalezy uruchomic z dwoma parametrami
; BBSplit <PLIK> <KATALOG_WYJSCIOWY>
CNIF #TEST=0
If NumPars<>2 Then End
CEND
;--------------------------------------------------------------
; wczytanie pliku
CNIF #TEST=0
src\_name = Par$(1)
DEST$=Par$(2)
CELSE
src\_name = "DH1:Unpacked/arc.lha"
DEST$="RAM:"
CEND
src\_size = FileSize(src\_name)
src\_data= AllocMem_(src\_size,0)
BLoad src\_name,src\_data
;--------------------------------------------------------------
offset = 8
; PETLA ZAPISU
While offset<src\_size
fts\_size = ReadSize{src\_data+offset}
; NAZWA PLIKU DO ZAPISU
offset+14
a$ = ""
While Peek.b(src\_data+offset)<>0
a$=a$+Chr$(Peek.b(src\_data+offset))
offset+1
Wend
a$ = UnLeft$(a$,3) ; usuwam 3 ostatnie znaki
fts\_name = a$
; KOPIOWANIE DANYCH
fts\_data = AllocMem_(fts\_size,0)
offset+2
CopyMem_ src\_data+offset , fts\_data , fts\_size
offset+fts\_size+8
BSave DEST$+fts\_name , fts\_data , fts\_size
FreeMem_ fts\_data,fts\_size
Wend
FreeMem_ src\_data,src\_size
End@tukinem, post #214
SUBA.l #1,A0
@Don_Adan, post #215
@Don_Adan, post #210

@tukinem, post #221
@Don_Adan, post #223
@Don_Adan, post #226
No i niby skad bierzesz nazwe 1.DAT a nie 1.DATm ? Musisz inaczej do tego podejsc.
@Don_Adan, post #226

@Don_Adan, post #230
@Don_Adan, post #232

@tukinem, post #233
@Don_Adan, post #234
@tukinem, post #235