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

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

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

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

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

6

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

7

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

8

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

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

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

11

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

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

13

"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

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

15

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

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

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

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

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