załączony przykład zaincjowany jest xDOS-em, aby przejść na xBootDos-a trzeba uruchomić 'makedisk_xboot.bat' i wtedy uruchomić 'example.atr'
oczywiście musi być aktywne VBXE aby zobaczyć właściwy efekt
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Gearlynx 1.2.23 Nowa wersja emulatora Atari Lynx Gearlynx przynosi wsparcie dla ComLynx i wiele poprawek.
VBXETERM 0.23 Nowa wersja terminala VBXETERM z obsługą VBXE, ATASCII i poprawkami błędów.
Atari System Emulator 1.9 Wydano nową wersję ASE, emulatora Atari ST napisanego w C#, z poprawkami wydajności i błędów.
Replika ReFalcon 030 gotowa Suavek przedstawia nową, ulepszoną replikę płyty głównej Atari Falcon 030.
ATRaction: menedżer obrazów ATR/XFD Menedżer obrazów dyskietek ATR i XFD działający w przeglądarce bez konieczności instalacji.
atari.area forum » Posty przez tebe
załączony przykład zaincjowany jest xDOS-em, aby przejść na xBootDos-a trzeba uruchomić 'makedisk_xboot.bat' i wtedy uruchomić 'example.atr'
oczywiście musi być aktywne VBXE aby zobaczyć właściwy efekt
kolejny przykład, gdzie xBootDos nie zadziała
xDOS działa, pewnie dlatego że pochodzi z czasów kompatybilności ;) w końcu rok powstania 2002 zobowiązuje
S_VBXE.SYS jest handlerem urządzenia S2: (VBXE) dla SDX autorstwa Drac030
program SDXDL (ładowany od adresu $8000) pozwala na załadowanie SYS-a bez udziału SDX, pod każdym innym DOS-em
co robi SDXDL? otwiera do odczytu konkretnie plik D:S_VBXE.SYS i relokuje go w pamięci od MEMLO, na końcu podnosząc MEMLO
w załączonym przykładzie TEST.PAS, na początku wykonuję akrobację pt. ustaw MEMLO na $980, wykonaj skok (JSR) do SDXDL, w efekcie otrzymujemy handler S2: dla VBXE od adresu $0980 .. $0c0c, reszta dla nas
idea jest prosta, skorzystaj z VBXE bez konieczności używania SDX, ale jeśli masz SDX to też korzystaj (wtedy fragment akrobatyczny nie jest potrzebny)
p.s.
przy starcie systemu MEMLO = $0700, ani xDOS, ani xBootDOS nie ustawiają MEMLO, prawdziwe DOSy to robią, bez podniesienia MEMLO grozi im że zostaną nadpisane przez programy relokujące się
gratuluję :) teraz działa
DOS-y charakteryzuje adres $0700, co wykorzystuje wiele programów napisanych w przeszłości
pod adresem $0480 często umieszczane były dekompresory, strona 6, $0600..$06FF uznawana jest za wolną, często wykorzystywana przez użytkowników aby umieścić tam krótki program np. inicjalizacji danych albo wstawkę kodu maszynowego dla BASIC-a
przykład działania xBootDOS-a (ten sam program przykładowy jak dla xDOS-a)
program który działa z xDOS-em i każdym DOS-em, nie działa z xBootDOS-em
https://github.com/pfusik/numen/blob/master/dos.asx
Tyle lat przeleżał (2002) ten loader / handler D: u Fox-a na GitHub-ie, ileż zdrowia i nerwów mógł już uratować :)
- instaluje urządzenie D: jak każdy inny DOS Atari
- przy starcie wczytuje plik uruchamialny o nazwie AUTORUN
- obsługuje standardowy system plików DOS 2
- obsługiwany rozmiar sektora (128 lub 256 bajtów) jest ustalany na etapie kompilacji xDOSa
- xDOS umożliwia odczyt pliku przez D:
- jednocześnie można czytać tylko jeden plik, ale może on być dowolnej długości
- xDOS umożliwia nadpisanie istniejącego pliku mieszczącego się w jednym sektorze
- inne operacje, jak odczyt katalogu, kasowanie, zmiana nazwy itd. nie są obsługiwane
- xDOS mieści się w całości w sektorach odczytu wstępnego (boot sectors)
- xDOS nie ustawia MEMLO, ale zajmuje tylko obszar pamięci $0700..$097F
- xDOS nie wyłącza ROM-u podczas transmisjiBez jakichkolwiek większych modyfikacji zdatny do użycia. Po uruchomieniu naszego AUTORUN-a dalsze operacje IO odbywają się normalnie, przykład z załącznika ładuje dwa kolejne pliki z grafiką MIC, PIC (slideshow.pas).
Sposób na przygotowanie dyskietki (sektor 256B), ściągamy program dir2atr
https://www.horus.com/~hias/atari/#tools-win32
Przygotowujemy nasz katalog roboczy, do którego wrzucamy 'xDos.obx', tworzymy podkatalog 'DISK', tworzymy BAT-a
dir2atr.exe -md -B xdos.obx example.atr disk-m to format dla MyDos-a
-d to gęstość D, czyli 256B na sektor
-B twórz botowalną dyskietkę zaincjowaną plikiem xdos.obx
example.atr to nazwa nowo utworzonego ATR-a
disk to nazwa podkatalogu w którym znajdują się wszystkie pliki jakie chcemy wrzucić do naszego ATR-a
p.s.
jeśli dodać kod wyłączający / włączający ROM tak aby ładować plik bezpośrednio pod ROM wówczas xDOS przestanie być kompatybilny z DOS-ami
całuski dla całej bandy DLT :)
Bocianu udostępnił sporo ciekawych materiałów na swojej stronie http://bocianu.atari.pl/dokumenty
Dalton, wczytujesz do pamięci, czekasz aż się rozpakuje a potem zapisujesz zrzut pamięci, od adresu do adresu, poprawiasz, pakujesz
ale jak zakupiłeś? pod stołem ?
no ale Ty Pin masz szumy w uszach, jak chcesz coś usłyszeć ?
XXL przetestuj czasy ładowania skompresowanych danych dla aPLib ale używającego strony zerowej, jakie będą różnice względem Twojej natywnej wersji nie używającej strony zerowej
albo zabezpieczenie przed modyfikacjami, po patchu Voy-a suma kontrolna nie będzie się zgadzać i nie wczytacie
czytajcie między wierszami ;)
do paczki z mads-em dołączone są różne dekompresory
tutaj w załączniku dwie wersje dekompresji strumieniowej dla exomizera (ACME albo coś podobnego)
p.s.
Subsizer potrafi też pakować lepiej niż aPLib
dodatkowych żyć za punkty nie ma
1. panglight - wyspa PangLight_G2F_Powrooz
2. winter - antarktyda PangWinter_G2F_Powrooz
3. park - brazylia PangPark_Vers2
4. shrine -panama, yucatan PangShrine_G2F_Powrooz_2Final
5. most v3 - hiszpania PangMostVer3Clean
6. lions - afryka PangLions_G2F_Powrooz
7. atlas - grecja PangAtlas_G2F_Powrooz
8. mansion - pn anglia PangMansion_G2F_Powrooz
9. street - rosja PangStreet_G2F_Powrooz
10. caves - indie PangCaves_G2F_Powrooz
11. japan - japonia PangJapanVers2
12. city - australia PangCityVers2AAuuuu, playerek za dobry jest żeby go od razu upubliczniać ;)
tak, dzięki :)
gra pięknie :)
szukałem informacji na temat Puma Tracker-a, samego programu nie namierzyłem, tylko moduły z kilku gier m.in. Toki
z informacji wynika że tracker był wykorzystywany w komercyjnych produkcjach firmy OCEAN, w grach
gdyby był dostęp do tego tracker-a, może byłaby możliwość tworzenia nowych modułów, nowe narzędzie dla scenowych muzyków
swiety, udostępnisz jakiś teaser playerków ? :)
uprasza się o pilne zebranie synodu inkwizycyjnego w celu zbadania świętości tego rozwiązania ;)
robiłem też inne testy, i wyszło że zwykła pętla kopiująca musiałaby minimum po 4 bajty na raz kopiować aby prawie dorównać temu kodowi z cc65, w tym stylu
lda (src),y
sta (dst),y
iny
lda (src),y
sta (dst),y
iny
lda (src),y
sta (dst),y
iny
lda (src),y
sta (dst),y
inykod memcpy CC65 jest mocno optymalizowany, korzystam z niego w MP (MadPascal)
; Ullrich von Bassewitz, 2003-08-20
; Performance increase (about 20%) by
; Christian Krueger, 2009-09-13
.proc @moveu ; assert Y = 0
ptr1 = edx
ptr2 = ecx
ptr3 = eax
stx @sp
ldy #0
ldx ptr3+1 ; Get high byte of n
beq L2 ; Jump if zero
L1: .rept 2 ; Unroll this a bit to make it faster...
lda (ptr1),Y ; copy a byte
sta (ptr2),Y
iny
.endr
bne L1
inc ptr1+1
inc ptr2+1
dex ; Next 256 byte block
bne L1 ; Repeat if any
; the following section could be 10% faster if we were able to copy
; back to front - unfortunately we are forced to copy strict from
; low to high since this function is also used for
; memmove and blocks could be overlapping!
; {
L2: ; assert Y = 0
ldx ptr3 ; Get the low byte of n
beq done ; something to copy
L3: lda (ptr1),Y ; copy a byte
sta (ptr2),Y
iny
dex
bne L3
; }
done ldx #0
@sp equ *-1
rts
.endp
@move .proc (.word ptr1, ptr2, ptr3) .var
ptr1 = edx
ptr2 = ecx
ptr3 = eax
src = ptr1
dst = ptr2
cnt = ptr3
cpw ptr2 ptr1
scs
jmp @moveu
stx @sp
; Copy downwards. Adjust the pointers to the end of the memory regions.
lda ptr1+1
add ptr3+1
sta ptr1+1
lda ptr2+1
add ptr3+1
sta ptr2+1
; handle fractions of a page size first
ldy ptr3 ; count, low byte
bne @entry ; something to copy?
beq PageSizeCopy ; here like bra...
@copyByte:
lda (ptr1),y
sta (ptr2),y
@entry:
dey
bne @copyByte
lda (ptr1),y ; copy remaining byte
sta (ptr2),y
PageSizeCopy: ; assert Y = 0
ldx ptr3+1 ; number of pages
beq done ; none? -> done
@initBase:
dec ptr1+1 ; adjust base...
dec ptr2+1
dey ; in entry case: 0 -> FF
lda (ptr1),y ; need to copy this 'intro byte'
sta (ptr2),y ; to 'land' later on Y=0! (as a result of the '.repeat'-block!)
dey ; FF ->FE
@copyBytes:
.rept 2 ; Unroll this a bit to make it faster...
lda (ptr1),y
sta (ptr2),y
dey
.endr
@copyEntry: ; in entry case: 0 -> FF
bne @copyBytes
lda (ptr1),y ; Y = 0, copy last byte
sta (ptr2),y
dex ; one page to copy less
bne @initBase ; still a page to copy?
done ldx #0
@sp equ *-1
rts
.endpmoże tak
ten rozpakuje ARC-a
atari.area forum » Posty przez tebe
Wygenerowano w 0.092 sekund, wykonano 20 zapytań