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ć.
Lost Party 2025 startuje już jutro W Licheniu Starym rusza zlot fanów 8-bitowych komputerów
zeST 20250627 - Atari ST w FPGA z turbo! Nowa wersja zeST z trybem turbo 50 MHz i poprawkami Shiftera i MFP
UltraSatan - firmware 1.30 Nowa wersja firmware dla UltraSatana wspiera nowoczesne karty SDHC i SDXC
53 lata marki Atari 53 lata od założenia Atari - firmy, która odmieniła świat gier i komputerów.
Odtwarzanie układów z Atari Falcon Trwa zbiórka na odtworzenie chipów Videl, Combel i SDMA z Atari Falcon
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 transmisji
Bez 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 PangCityVers2AA
uuuu, 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
iny
kod 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
.endp
może tak
ten rozpakuje ARC-a
atari.area forum » Posty przez tebe
Wygenerowano w 0.089 sekund, wykonano 15 zapytań