101

Ja bym też optował za tym, żeby wyłączyć to diabelne kolorowanie na jakiś przełącznik w linii poleceń.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

102

nie chcecie aby Mads pokolorował Wam świat ?

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

103

A w ogóle komuś te kolorowanie w czymkolwiek pomaga?

104

w wyszczególnieniu komunikatów, warning, error etc.

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

105

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? ;-)

Zawsze mam rację, tylko nikt mnie nie słucha.

106

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?

107 Ostatnio edytowany przez Gienek (2023-06-28 14:55:37)

@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

Post's attachments

MADsMacOS.jpg 373.85 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

108 Ostatnio edytowany przez mono (2023-10-15 15:28:33)

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.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

109

@mono fajny pomysł

a może dało by się to jeszcze uprościć?

lo+:hi++:
      sta $FFFF
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

110 Ostatnio edytowany przez mono (2024-03-22 21:14:44)

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)
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

111

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?

112

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.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

113

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:

https://i.ibb.co/0nssLv9/blk.png

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    

114

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.

115

http://www.atari.org.pl/forum/viewtopic … 11#p289611

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

116

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ą.

117

Inny pomysł:

    opt f-
    org $A000
    opt f+
https://www.youtube.com/watch?v=jofNR_WkoCE

118

@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?