Odp: bugi w mads
Ja bym też optował za tym, żeby wyłączyć to diabelne kolorowanie na jakiś przełącznik w linii poleceń.
niewiedza buduje, wiedza rujnuje
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Silly Venture 2024 SE - stuff Dostępny jest już stuff z zeszłomiesięcznego party Silly Venture 2024
FujiCup FujiCup ma na celu wspieranie sceny gier retro, dając uczestnikom szansę na pokazanie swojego talentu
Echa Silly Venture 2024 SE Są już dostępne wyniki Silly Venture 2024 SE
Uaktualnienie firmware do The400 Poprawki do "fizycznego" emulatora ośmiobitowych komputerów i konsol Atari.
Akcja - Wsparcie w reverse-engineering Wspierajmy tych, którzy do tej pory zrobili wiele!
Strony Poprzednia 1 2 3 4 5
Zaloguj się lub zarejestruj by napisać odpowiedź
Ja bym też optował za tym, żeby wyłączyć to diabelne kolorowanie na jakiś przełącznik w linii poleceń.
nie chcecie aby Mads pokolorował Wam świat ?
A w ogóle komuś te kolorowanie w czymkolwiek pomaga?
w wyszczególnieniu komunikatów, warning, error etc.
Całe życie spędziliśmy przy niebieskim tle i niebieskawych literach udających białe. Jedynym komunikatem jaki widzieliśmy był "ERROR n" i na jego podstawie analizowaliśmy przyczynę błędu. Na co komu kolory, czy opisy błędów? ;-)
Trochę boomersko to brzmi, ale dla wystarczy gdzieś blisko początku słowo ERROR, WARNING albo NOTICE i wiem z czym mam do czynienia. Dodatkowo jak zgrywa się takie kolorowe logi do pliku to nie pojawiają się przypadkiem tam znaki specjalnie zmieniające te kolory, które w pliku tekstowym sprawiają że log wygląda jak śmietnik?
@tebe
Pierwsza linijka jest OK.
Ale ciekawe bo w kodzie masz WHITE a u mnie przejęło główny kolor terminala (czyli zielony). W sumie powinno na DARKGRAY też jakoś mądrze zareagować.
Tło jest czarne, ale minimalnie przeźroczyste, więc coś się tam przebija jak na pulpicie jest jasna tapeta.
Ja bym kolorowanie włączył na opcję. Bez opcji niech idzie jak "w matrixie".
Edit: dodałem JPG
Ostatnio edytowany przez Gienek (2023-06-28 14:55:37)
Jest ta chora notacja:
sta lab2:$ffff,y
która niby ma zastępować:
lab2 = *+1
sta $ffff,y
a jest kompletnie nieintuicyjna i zaciemniająca tylko kod - a już kompletnie nie wiem jak przy jej pomocy zrealizować np.:
lab2 = *+2
sta $ffff,y
@tebe: Może lepiej byłoby mieć inną deklarację etykiety:
etyk
etyk+
etyk++
analogicznie do skoków @+ i @-. Oznaczałyby one odpowiednio *+0, *+1 i *+2.
W kodzie odwołujesz się oczywiście do lab (plus mówi tylko o modyfikacji bieżącego licznika adresu):
opcod sta msb
adr+ lda $FFFF,x
msb++ lda $F000,y
lo+
hi++
sta $FFFF
Hę?
P.S. Analogicznie mogłoby działać lab-, lab--, itd., choć osobiście nie widzę eleganckiego zastosowania, ale może się komuś przyda.
Ostatnio edytowany przez mono (2023-10-15 15:28:33)
@mono fajny pomysł
a może dało by się to jeszcze uprościć?
lo+:hi++:
sta $FFFF
Taki kod:
opt o+ h+ ?+ c-
.macro check (x)
lda myproc+40*:1,x
beq @+
lda #1
@
.endm
org $2000
myproc:
ldy #0
seq
?copy check $10
dey
bpl ?copy
rts
end
Rzecz polega na tym, że przy OPT ?+ (etykiety lokalne) i użyciu @ w makrze kod się nie kompiluje.
jerzyk@ox:~/atari/$ mads -l test.asx
bpl ?copy
test.asx (20) ERROR: Undeclared label ?COPY (BANK=0)
test.asx (20) ERROR: Branch out of range by $1F0F bytes
Writing listing file...
Jak nie ma etykiet lokalnych lubo też nie używamy odwołań @ to się kompiluje...
mads 2.1.7 (2024/03/01)
Ostatnio edytowany przez mono (2024-03-22 21:14:44)
Nie znam się, a i nie podejrzewam że mono miałby czegoś nie wiedzieć:-) Ale nie powinno być @:
W sensie czy nie zapomniałeś dwukropka?
To samo. Etykiety mogą być bez dwukropka.
Ale dodatkowo
opt o+ h+ ?+ c-
WIDTH=10
.macro test (y,x)
lda $2000+[WIDTH*%%x],x
sta $3000+[8*%%y],y
.endm
org $2000
test 1,2
end
też generuje:
jerzyk@ox:~/atari$ mads -l test4.asx
test 1,2
lda $2000+[WIDTH*%%x],x
test4.asx (9) ERROR: Undeclared label X (BANK=0)
sta $3000+[8*%%y],y
test4.asx (10) ERROR: Undeclared label Y (BANK=0)
Writing listing file...
Za to jak jest OPT ?- to się pięknie kompiluje.
I asked @tebe about the ability to generate multiple RELOC blocks in the same source file more than ten years ago, so I figured it might not be too soon to bring it up again. :)
Instructions claim it's possible:
In practice, however, this results in a compiler error ('ORG in reloc block', etc). To be clear, what I was hoping to accomplish is exactly what's already supported by the SDX relocatable format (multiple reloc blocks of different types with inter-block references included in the fix-up table) but without the annoying limitations of said SDX relocatable format (eight character label names, no lo/hi fixups, etc).
For clarity, perhaps an example will help:
blk absolute $3000 ; loads at arbitary address, and is jettisoned after use
Init
jsr something
rts
blk reloc main ; loader relocates this block down to MEMLO in base memory
DriverStart
; do stuff
blk reloc ext ; loader relocates this block into extended memory (if available)
ExtCode
; do more stuff
blk update address ; produce fixup table
Jak wybrnąć z sytuacji, gdy potrzebuję skompilować kilka banków carta.
;-------------------
opt h-f+
;-------------------
org $A000
BEGIN. lda 20
sta 712
jmp BEGIN
;-------------------
org $BFF0
INIT rts
;-------------------
org $BFFA
dta <BEGIN, >BEGIN, $00, $04, <INIT, >INIT
;-------------------
org $A000
LOOP1. jmp LOOP1
org $BFFF
dta $FF
;-------------------
org $A000
LOOP2. jmp LOOP2
org $BFFF
dta $FF
;-------------------
MADS wali mi błędem
ERROR: Can't fill from higher ($C000) to lower memory location ($A000)
A chciałbym wyprodukować 3 x 8192 bajty binarne.
http://www.atari.org.pl/forum/viewtopic … 11#p289611
Dzięki! Myślałem, że do local nie da się patrzeć z zewnątrz, ale się da :)
;-------------------
.local ,$A000
org $A000
BANK1 rts
org $BFFF
dta $FF
.endl
;-------------------
.local ,$A000
org $A000
BANK2 rts
org $BFFF
dta $FF
.endl
;-------------------
i ładnie się banki 8kB robią.
Inny pomysł:
opt f-
org $A000
opt f+
@Fox, a to nie jest jakiś bug?
Jak mam serię:
nmb
.pages $20
.local,$A000
(...)
.endl
.endpg
nmb
.pages $20
.local,$A000
(...)
.endl
.endpg
To w pewnym momencie dostaje:
WARNING: Memory range has been exceeded
Ale wszystko działa z tym warningiem.
Ja dodam te f- f+ to jest ok.
nmb
.pages $20
opt f-
org $A000
opt f+
.local,$A000
(...)
.endl
.endpg
f- f+ coś tam resetuje?
Strony Poprzednia 1 2 3 4 5
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.136 sekund, wykonano 10 zapytań ]