1

Temat: Pytanie laika z assemblera?

1. Oki, najkrótszy możliwy powrót z programu do DOSa (dowolnego) w assemblerze? (samo RTS ani jmp $e474 nie działa - przynajmniej pod emulcem - siedzę w pracy)?
2. Czy Init muszę ustawić na $2E0 (ewentualnie wyżej)?
Sorry za badziewne pytania, ale nie znam assemblera, a zależy mi na czasie...

Sikor umarł...

2

Odp: Pytanie laika z assemblera?

1. jmp ($0a)

2. E?

KMK
? HEX$(6670358)

3

Odp: Pytanie laika z assemblera?

RTS powinien zadzialac jesli nie grzebiesz w zmiennych systemowych a DOSa w szczegolnosci, a jesli Ci nie dziala skok pod wektor reset, to musiales cos popsuc w samym DOSie lub w wektorach wlasnie.

Oczywiscie przedpiszca podal najkulturalniejsza metode :)

Co do drugiego pytania to nie rozumiem??? Na co chcesz ustawiac INIT i po co?
$2e0 to jest RUN a nie INIT, podajesz tam adres startu programu, a INIT nie dotykasz poprostu.

Ostatnio edytowany przez Pecus (2006-04-24 13:42:57)

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

4

Odp: Pytanie laika z assemblera?

do init tez mozna wpisac conieco. podczas ladowania po wpisaniu czegokolwik do init program wystartuje. rtsem konczysz init a zaczynasz dalsza czesc ladowania. initow podczas wczytywania moze byc wiecej. run tylko jeden. init jest ok.

http://atari.pl/hsc/ad.php?i=1.

5

Odp: Pytanie laika z assemblera?

Zalezy, co się chce uzyskać. Init ($02e2) słuzy do uruchamiania części programu przed załadowaniem całości, po RTS loader próbuje ładować dalsze części pliku. Dlatego do uruchamiania normalnego programu lepiej jest używac wektora RUN $02E0, a init tylko wtedy kiedy chcesz mieć np. czołówkę widoczną podczas wczytywania albo co tam innego uruchomionego zanim cały program się wczyta. Taki ficzer.

KMK
? HEX$(6670358)

6

Odp: Pytanie laika z assemblera?

Oki. Dzięki za info.
Z tego wniosek - że jest coś zwalone w emulatorze albo w assemblerze, którego testowo używam pod emulatorem (QA). Próba wyjścia do DOS-u przez RTS i przez wektor $0a kończy sie u mnie zwisem emulatora (DOS 2.5 z CP i bez CP, DOS II+/D  wersja 6.4. Może coś zwaliłem, ale pętle testujące działają bezproblemowo z poziomu QA, a po wygenerowaniu .obj program (he, he...) działa, a po próbie wyjścia do dosu wiesza się emulator.
Zrobię zaraz próbę pod jakimś cross-assemblerem, choć i tak zamierzam coś napisać w domu - tu nie ma warunków, chciałem tylko coś sprawdzić...

Sikor umarł...

7

Odp: Pytanie laika z assemblera?

Nie chciałbym cię zniechęcać, ale przyczyną takich numerów jest w 99,999% błąd w programie, a nie w procesorze, systemie ani emulatorze. RTS wróci do DOS-u tylko wtedy, jeśli nie skaszanisz zawartości stosu i nie wywołasz tego rozkazu z podprogramu ...

Ostatnio edytowany przez drac030 (2006-04-24 13:57:36)

KMK
? HEX$(6670358)

8

Odp: Pytanie laika z assemblera?

Dokladnie tak.
Dobrze napisany program pod DOSa musi wrocic do niego po ostatnim RTS, jesli nie wraca to wina programu.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

9

Odp: Pytanie laika z assemblera?

drac030 napisał/a:

jeśli nie skaszanisz zawartości stosu i nie wywołasz tego rozkazu z podprogramu ...

Z podprogramu tez moze, musi tylko zadbac o stos (PLA PLA RTS?)

10

Odp: Pytanie laika z assemblera?

Albo na starcie programu dac

TSX
STX stos

a na koncu:

LDX stos
TXS
RTS

i podprogramy nie straszne :)

Ostatnio edytowany przez Pecus (2006-04-24 14:19:37)

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

11

Odp: Pytanie laika z assemblera?

Chyba jednak jmp ($0a) zajmuje mniej miejsca i powoduje mniej zachodu.

KMK
? HEX$(6670358)

12

Odp: Pytanie laika z assemblera?

o.k. - poszło tym razem Konradowe jmp. Dzięki wielkie ;)

Sikor umarł...

13

Odp: Pytanie laika z assemblera?

Ale tak, czy inaczej sprawdz dokladnie ten program, bo cos miesza, skoro wychodzi tylko przez bezposredni skok do DOSa.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

14

Odp: Pytanie laika z assemblera?

Pecuś: na pewno miesza, ale to praktycznie rzecz biorąc raczkowanie w asmie jest. Praktycznie to nawet nie jest program, ale ważne że póki co coś mi działa...

Sikor umarł...

15

Odp: Pytanie laika z assemblera?

Sikor: nie przejmuj się... każdy tak zaczynał... jak już coś działa to jest największa satysfakcja ;) krok po kroku... coraz bardziej rozbudowane procedurki... i tak za jakiś czas jaki miker wyskoczy ze swoim "Napisz demo!" tylko ziewniesz i odpowiesz od niechcenia: "no skoro nalegasz..." ;)

16

Odp: Pytanie laika z assemblera?

ph34r! Ratowanie kompo nabierze nowych, niespotykanych do tej pory wymiarów :P

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.

17

Odp: Pytanie laika z assemblera?

Oki, problem jest taki: procedurka wraca RTS-em, wszystko jest niby o.k. pod Q.A. - pierwsze kroki poczynione. Tylko, jak staram się uruchomić spod DOSa lub Qmega - to się wiesza... ORG startowe ustawione w QA na $8000, MemHi na $9000 i $A000 próbowałem - efekt ten sam. Jakiś głupi błąd muszę robić... Może mnie ktoś nakierować na przyczynę...?
Jak piszę: spod QA wszystko działa jak ta lala...

Jakby co: opt %0110110
Start programu spod $8000

Ostatnio edytowany przez Sikor (2006-04-24 19:09:56)

Sikor umarł...

18

Odp: Pytanie laika z assemblera?

Moze poka zrodlo to cos wymyslimy.

19

Odp: Pytanie laika z assemblera?

A masz w SETup ustawiony adres startu taki jak w ORG

20

Odp: Pytanie laika z assemblera?

Zenon: mam
Dobra, połowicznie poszło - idzie i wraca do DOS-u. Jeszcze muszę zadbać (jak napisali przedmówcy) o stos ;)
Lewis: nie ma się czym chwalić... To praktycznie moje pierwsze wypociny, więc...
------------------------------------
O.K. -> Mam buga ;) Dzięx za pomoc - pewnie się jeszcze nie raz będę zgłaszał ;)
Działa ;)

Ostatnio edytowany przez Sikor (2006-04-24 20:45:01)

Sikor umarł...

21

Odp: Pytanie laika z assemblera?

bo kto nie zagłosuje prawidłowo na najbliższym kompo - na prace napisane w assemblerze rzecz jasna - zostanie spalony na STOSIE :P

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

22

Odp: Pytanie laika z assemblera?

a co? na turbo beja mam glosowac? :P

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

23

Odp: Pytanie laika z assemblera?

sikor jak nie pokazesz kodu to nikt ci nie pomoze bo i niby jak?
Kod moze byc slaby :) przeciez wiemy ze deopiero zaczynasz. nie ma sie co wstydzic :)

24

Odp: Pytanie laika z assemblera?

Mikey: wiem, ale udało mi się go poprawić samodzielnie. Powiedzmy, że tego na razie nawet nie mogę nazwać kodem ;( W każdym razie - Wasze uwagi bardzo wiele pomogły w rozwiązaniu problemu, więc na razie wielkie dzięki ;) Na pewno jeszcze będę zadawał wiele "trudnych" pytań, ale jak znajdę chwilkę, aby usiąść i zagłębić się mocniej w assemblera. Po prostu nie chcę kompilować pod TB rzeczy, która może zajmować jakieś 2-3 kilo (linker zrobi z tego 17-18), a rzecz jest zbyt banalna, aby ją omawiać.

Sikor umarł...

25

Odp: Pytanie laika z assemblera?

w 3-4 kilach to mozna zmiescic ze hoho

http://atari.pl/hsc/ad.php?i=1.