Temat: Blad (niedogodnosc) w Qasm-ie ?

Wlasnie odkrylem w Qasm-ie cos, co nazwalbym nie tyle bledem, co przeoczeniem, niedogodnoscia, ktora powoduje rozbieznosc w stosunku do protoplasty, czyli QA.
Otoz w QA tabulacje sa fizycznie brane jako kilka nastepujacych po sobie znakow spacji, natomiast QA traktuje tabulacje jako osobny znak. Niby na pozor nie powinno miec to znaczenia, a jednak...
zalozmy, ze deklarujemy ciag znakow:

  dta d'                '

powiedzmy, ze to jest ciag 40-to znakowy i puste miejsca przeskoczymy Tab-em zamiast spacjami (zawsze szybciej), to niestety QASM owej przestrzeni szerokosci 40 znakow nie odbierze jako 40 bajtow (40 znakow spacji ;]), lecz uwzgledni je tylko tam, gdzie beda tabulacje, czyli w skompilowanym kodzie nie bedzie to ciag 40 bajtow zerowych.
Tyle tytulem niedogodnosci.

Teraz mala propozycja dla Mayoneza odnosnie wzbogacenia Qasm-a - czy moglbys wprowadzic mozliwosc modyfikacji naglowkow plikow binarnych w trakcie kompilacji ? Chodzi mi o cos takiego - zalozmy, ze pisze kod wykonywalny, zaczynajacy sie od adresu $c000. Oczywiscie wiadomo, ze znajduje sie w tym obszarze pamiec ROM i trzeba sobie radzic w ten sposob, ze najpierw wczytujemy ten kod pod adres $4000 i dopiero potem wlasna procedura przerzucamy to z $4000 pod $c000 i dopiero potem mozemy go wykonac.
Do tej pory radzilem sobie w ten sposob, ze kompilowalem blok pod $c000, a po kompilacji odpalalem np. superpackera (!!) i zmienialem adresy naglowkow na $4000. Jednak w wypadku Qasm-a wykonanie takiej operacji jest bardzo czasochlonne: wrzucic XEX-a do .atr-a, odpalic Super Packer-a, zmienic adres, zapisac itp. A gdyby tak wprowadzic cos na przyklad takiego: org $c000 ($4000) ? pierwszy adres oznaczalby logicznie adres pod ktorym ma znajdowac sie kod, namiast opcjonalny adres w nawiasach podawalby jakie adres poczatkowy ma byc w naglowku - wedlug mnie byloby to bardzo przydante, a wydaje mi sie, ze nie byloby to zbyt skomplikowane jezeli chodzi o przerobki w kodzie.

2

Odp: Blad (niedogodnosc) w Qasm-ie ?

macgyver ty bluźnierco, jak mozesz proponowac taka profanacje QA
niebiosa!... zlitujcie sie nad innowierca !!!

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

3

Odp: Blad (niedogodnosc) w Qasm-ie ?

nie byłoby trudne, dorobi się

Mayonez/COBRA
Atari 1040 STE (4MB RAM, TOS 2.06/1.06, Ultrasatan, Netusbee)
Atari 65XE, 512KB ext. RAM, SIO2SD

4

Odp: Blad (niedogodnosc) w Qasm-ie ?

tebe: profanacja ? ja bym to okreslil mianem czegos, co ulatwia i przyspiesza prace, a tym samym wspomaga powstawanie nowego softu na Atari - a chyba zgodzisz sie z faktem, ze na nadmiar swiezego softu atarowcy nie moga narzekac :P

mayonez: a jak w sprawie tych tabulacji ? bedziesz cos zmienial, czy raczej duzo z tym zachodu ? I kiedy orientacyjnie moznaby bylo spodziewac sie przerobki ?

5

Odp: Blad (niedogodnosc) w Qasm-ie ?

mac - zaloz liste mailowa. qasm-devel :)
mysle ze pare osob by sie udzielalo na takiej liscie.

6

Odp: Blad (niedogodnosc) w Qasm-ie ?

Mac: dlatego wole pisac na Atari (pamietasz rozmowe w pizzerii?). Oczywiscie nie pietnuje. Kazdy pisze jak woli. ;)

7

Odp: Blad (niedogodnosc) w Qasm-ie ?

Lewis: tez bym wolal, gdyby nie ograniczenia w wielkosci bufora QA :/

8

Odp: Blad (niedogodnosc) w Qasm-ie ?

Zawsze mozesz sie przerzucic na MAE. :) Ten korzysta z rozszerzonej pamieci wiec masz jakies 40KB bufora na tekst zrodlowy. Dodatkowo bardzo duzo miejsca na dlugie etykiety (jeden bank XMS jest przydzielony tylko na to) i mozesz bez bólu asemblowac od $2000 do $b7ff nie niszczac MAE. Po stestowaniu proga robisz run $b800 i jestes z powrotem w MAE. Jednak w tym wypadku niszczysz sobie zrodlo (umieszczone od $2000) wiec wystarczy zasemblowac gdzies wyzej...

9

Odp: Blad (niedogodnosc) w Qasm-ie ?

Lewis: MAE okreslilbym mianem zmniejszeniem ograniczen QA a nie ich eliminacja. Alternatywa w postaci ograniczenia do 131072 lini kodu w Qasm-ie zacheca. Poza tym pytanko - na ile MAE ma skladnie zblizona do QA ?

10

Odp: Blad (niedogodnosc) w Qasm-ie ?

Ma raczej skladnie bardziej zblizona do MAC65. Jednak wszelkie pseudorozkazy sa o wiele wygodniejsze od MACa i tym bardziej od QA.

11

Odp: Blad (niedogodnosc) w Qasm-ie ?

mac - zaloz liste mailowa. qasm-devel :)
mysle ze pare osob by sie udzielalo na takiej liscie.

hm, to moze zaloze xasm-users ? :)

https://www.youtube.com/watch?v=jofNR_WkoCE

12

Odp: Blad (niedogodnosc) w Qasm-ie ?

Ty lepiej przepisz xasma na C to sie zrobi port na u*xy. To by bylo cos

13

Odp: Blad (niedogodnosc) w Qasm-ie ?

"przepisz se"

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.

14

Odp: Blad (niedogodnosc) w Qasm-ie ?

:D gdyby foxiu napisal w czyms wysokopoziomowym - no problem.
Ciezko sie portuje asembler na C :)

15

Odp: Blad (niedogodnosc) w Qasm-ie ?

no generalnie porażka. Może jednak przeportować na nasma/gasa i podmienić te kilka int 21h.

https://www.youtube.com/watch?v=jofNR_WkoCE

16

Odp: Blad (niedogodnosc) w Qasm-ie ?

no generalnie porażka. Może jednak przeportować na nasma/gasa i podmienić te kilka int 21h.

O! Na nasma, i zmienic te DOSowe nalecialosci i bedzie pieknie ;)

17

Odp: Blad (niedogodnosc) w Qasm-ie ?

Fox: to samo dotyczy rowniez Xasma - jeśli w texcie dta d'  ' są tabulatory - to robi dokładnie to samo co qasm - może switch - normale tabulatory lub wstawianie kilku spacji (ile jako argument)
A po za tym to asemblacja w inne miejsce niż ma być kod też by się przydała.

18

Odp: Blad (niedogodnosc) w Qasm-ie ?

A tak apropos TAB kontra spacje - nie możecie sobie po prostu w edytorze ustawić by zamieniał TAB-y na spacje? Zawszeć to jakieś rozwiązanie.. Chociaż z kolei nie każdy lub mieć full spacji tam gdzie TAB jest wygodniejszy.

19

Odp: Blad (niedogodnosc) w Qasm-ie ?

Znak TAB to nie jest po prostu kilka spacji (nawet gdyby byl, to nie wiadomo ile, bo zasadniczo przystanki sa co 8 znakow, ale piszac program nie w asemblerze lepiej miec co 4). To cos zupelnie innego. Edytor QA wstawia spacje zamiast znaków tabulacji, robi tak też wiele edytorów na PC i jest to beznadziejne. Znaku TAB nie nalezy uzywac wewnatrz stalych znakowych - moge zrobic warning albo blad. :)Jesli ktos ma duzo spacji w stalych znakowych (raczej rzadka sprawa) i nie chce uzywac copy/paste, niech sie posluzy edytorem, zeby mu wstawial spacje zamiast znakow TAB. Switch zmieniajacy obsluge znakow TAB to paskudna sprawa, bo powoduje, ze ten sam program po cichu asembluje sie roznie w zaleznosci od tego switcha.

Generacja roznych adresow dla naglowkow i kodu w xasm bedzie, ale wydaje mi sie, ze jest mocno przeceniana. Ma zastosowanie niezwykle rzadko, np. w przypadku kodu, ktory ma byc uruchamiany na stronie zerowej (NEO). Aby umiescic kod w obszarze C000-FFFF sa znacznie prostsze sposoby, niz wczytywanie go pod inny adres i pisanie procedury przepisujacej. Do celow testowych: emulator wczyta execa w ten obszar, wystarczy przelaczyc D301; z PC na Atari mamy xload i xboot+APE. A gotowy program tak czy tak pakujemy - dla szanujacego sie kompresora mozliwosc rozpakowania pod ROM to nie problem.[/list]

https://www.youtube.com/watch?v=jofNR_WkoCE