1

Temat: Funkcja Xbios

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.

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

2

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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.

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

4

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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

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

6

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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..

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

8

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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..

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

Odp: Funkcja Xbios

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.

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

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

Odp: Funkcja Xbios

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

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

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

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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

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

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

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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ć.

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

16

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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

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

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

Odp: Funkcja Xbios

teraz balagan===programowanie 16/32bit?

przechodze na tumiwisizm

19

Odp: Funkcja Xbios

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

20

Odp: Funkcja Xbios

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

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

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

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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

Odp: Funkcja Xbios

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