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.