1 Ostatnio edytowany przez jury (2012-02-02 20:13:00)

Kompletnie mi wyleciało z głowy w jakim rejestrze jest zwracana wartość adresu ekranu po wywołaniu funkcji 2 Xbios'u ( trap 14 ). W debuggerze ( po wywołaniu tej funkcji ) najlepiej wygląda wartość rejestru A0 ale albo coś schrzaniłem w kodzie albo to nie adres ekranu więc potrzebuję pewności.
W Atari Compendium nie ma informacji jaki to rejestr. W Intern ST też nie znalazłem. Kto wie niech się pochwali :)

Edit:
A co ciekawe ( a może i nie :) ) to po wywołaniu tej funkcji żaden z rejestrów nie miał takiej wartości jak pod $44e. Coś tu chyba nie rozumiem.

2

powinno byc w D0

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

3

1) obstawiałbym d0
2) pod $44e według st internals jest adres logiczny nie fizyczny, funkcja 2 to Physbase() nie Logbase(). Chociaż jeżeli nic nie ustawiałeś to te wskaźniki powinny być takie same. Przykładowa wartość to $78000 w ST z 512k ram.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

4

No to jeszcze mała zagadka.

              wejście w tryb supervisor

              move.w    #2,-(a7)
    trap    #14
    addq.l    #2,a7    -- tu zwraca że adres fizyczny ekranu to 8DD00
    
    move.l    #screen,d0   -- zmienna screen ma adres 9DB8A
    move.w    #-1,-(a7)
    move.l    d0,-(a7)   
    move.l    #-1,-(a7)
    move.w    #5,-(a7)
    trap    #14
    add.l    #12,a7
    
    move.w    #2,-(a7)
    trap    #14
    addq.l    #2,a7     -- tu nadal twierdzi że adres fizyczny ekranu to 8DD00
              ...

    section data

              ...

screen    ds.l    0

Dlatego przy drugim wywołaniu funkcji 2 xbios'u podaje że adres fizyczny to 8DD00 a nie 9DB8A?

5

bo zmiana jest w następnym vblu, zrób vsynca.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

6

Dodałem:
move.w    #$25,-(a7)
trap    #14
addq.l    #2,a7

przed i po uruchomieniu 5 funkcji xbios'u i nadal twierdzi że adres to 8DD00. Co za cholerstwo.

7

ta linijka : screen    ds.l    0
jest lewa, zrobiłeś etykiete screen która wskazuje na słowo którego nie ma, kazałeś mu zarezerwować pamięć na słowo zerowej długości, więc jak coś wrzucasz do screen to piszesz sobie po pamięci gdzieś tam..

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

8

No właśnie taki był zamysł :) Chcę "zbudować" duży ekran więc tak naprawdę to nie zmienna, tylko początek tego ekranu, tuż za końcem kodu :)

9

to weź to zrób po chrześcijańsku i napisz np:
screen: ds.w 2*16000 dla dwóch ekranów lub zaaolokuj pamięć jakimś mallocem i zapisz gdzieś wskaźnik.

bo w ten sposób to piszesz sobie Hanna Gronkiewicz-Waltz gdzie..

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

10 Ostatnio edytowany przez Adam Klobukowski (2012-02-06 15:44:58)

Ale ale, jak już przechodzisz w supervisora, to może lepiej użyć bezpośrednio rejestrów sprzętowych zamiast kochać się z Xbiosem?

Btw. pamięta że na ST, najmłodszy bajt adresu ekranu jest wyzerowany.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

11 Ostatnio edytowany przez Cyprian (2012-02-06 15:49:22)

jury, zrobiłem mały test i mi działa ok, sprawdź kod z A_PROG.ZIP. jest tam plik .S 
Ten program generuje plik C:\screen.bin  piewsze cztery bajty to orginalny adres ekranu, drugie cztery to adres Twojego "screena", trzecie cztery bajty to to co system zwraca po ustawieniu - powinno być równe "screen"

btw, na ST początek ekranu musi być zaokrąglony do 256, na Falconie do 4 a TT do 8 bajtów

Post's attachments

A_PROG.ZIP 777 b, liczba pobrań: 4 (od 2012-02-06) 

Tylko zalogowani mogą pobierać załączniki.
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

Na STE też 4 bajty.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

13 Ostatnio edytowany przez Cyprian (2012-02-06 15:50:01)

2 bajty, bo Shifter STE ma dostęp 16 bitowy do ramu

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

14

Cyprian napisał/a:

btw, na ST początek ekranu musi być zaokrąglony do 256, na Falconie do 4 a TT do 8 bajtów

Tak, pamiętam, ale ja zawsze robię tylko na STE, ST mnie nie interesuje :D

15 Ostatnio edytowany przez jury (2012-02-07 07:54:46)

Cyprian napisał/a:

zrobiłem mały test i mi działa ok, sprawdź kod z A_PROG.ZIP. jest tam plik .S 

Czy ten program wraca Tobie normalnie? Bo jak spróbowałem uruchomić prg to się wykrzacza i nie wraca, tak samo spod Devpac'a ( 3.11 ), ale za to jak pod monst'em wykonałem krok po kroku to wszystko jakby było prawidłowo.
Do tego jak sprawdzam zawartość pliku screen.bin to wygląda raczej prawidłowo, czyli jakiś tam adres + 2 razy inny adres, więc jednak ten mój kod jakby prawidłowo zmieniał adres fizyczny tą funkcją xbios'u. Wychodzi więc na to że źle wnioskowałem :) Ale to nie ja tylko monst tak twierdzi że adres się nie zmienia, próbowałem też adebug ( jakieś 2 wersje ) ale tam Ctrl-z mi nie działa ( jakieś dziwactwo ) więc za dużo nie zdziałam bez tej kombinacji :)

Chyba muszę to dzisiaj na "żywym" sprzęcie sprawdzić.

16

hmm. sprawdzilem na tosie 1.062 i 4.04 pod hatari i steemem i wracal ok. w sumie to nie jest wazne :) plik sie zapisal to jes git

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

17 Ostatnio edytowany przez Adam Klobukowski (2012-02-07 08:36:36)

<czepiam się>1.62</czepiam się> ;)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

18

teraz balagan===programowanie 16/32bit?

przechodze na tumiwisizm

19

Cóż, nie ma kategori programowanie 16/32-bit więc dałem to zgodnie z regulaminem w Bałaganie :)

20 Ostatnio edytowany przez Cyprian (2012-02-07 11:01:17)

jury, tak mi teraz przyszło do głowy że pod monst możesz dostawać adres ekranu monsta.
załóż breakpoint na koniec programu (crtl+b) i uruchom kod od początku. może wtedy zwróci realną wartość


Mały request do Adminó: Co do kategorii na forum, to poprosimy nową - Programowanie - 16/32 bit

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

21

Cyprian napisał/a:

Mały request do Adminó: Co do kategorii na forum, to poprosimy nową - Programowanie - 16/32 bit

Proszę. Dajcie linki do odpowiednich tematów, które chcecie przenieść do nowego podforum.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

22

Cool :)
To z moich poproszę o przeniesienie:
http://www.atari.org.pl/forum/viewtopic.php?id=8879
http://www.atari.org.pl/forum/viewtopic.php?id=8796
http://www.atari.org.pl/forum/viewtopic.php?id=8326
http://www.atari.org.pl/forum/viewtopic.php?id=8208
http://www.atari.org.pl/forum/viewtopic.php?id=6680

23

dely napisał/a:

Proszę. Dajcie linki do odpowiednich tematów, które chcecie przenieść do nowego podforum.

express!!!

dzięki Dely

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org