176

(25 odpowiedzi, napisanych Miejsca w sieci)

Nie istnieje żaden przykład stosowania nielegalnych rozkazów, który jest dobry. Po prostu takiego nie ma.

Każdy nielegalny rozkaz można łatwo zastąpić grupą legalnych. Dziwę się, że ten truizm trzeba za każdym razem powtarzać. Podobnie jak inny: stosowanie nielegali zamyka otwartą architekturę i eliminuje pewną grupę komputerów z możliwości uruchamiania takich programów.

177

(2 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Biere :-)

Nie myślałeś o założeniu zbiórki?

179

(15 odpowiedzi, napisanych Bałagan)

Atari Area bawi i uczy. Ten wątek to lekcja rosyjskiego, którą zapamiętam w przeciwieństwie do lekcji w szkole. :-)

https://rosyjski.ang.pl/lekcje/rzeczown … _co/kto_co
https://rosyjski.pro/rosyjski-rzeczowni … rosyjskim/

180

(15 odpowiedzi, napisanych Bałagan)

prz napisał/a:

A to nie jest tak, że u ruskich, "kto?" stosuje się do rzeczowników żywotnych, do których należy sabaka?

Języka rosyjskiego próbowano mnie nauczyć przez osiem lat - bezskutecznie. Jedynie znam bukwy i potrafię je przeczytać.

Chętnych nie brakuje, tylko nikt nie chce, abyś rozstawał się z Atarką. :-)

182

(15 odpowiedzi, napisanych Bałagan)

Sam napisałeś, że człowiek, więc jest "who". :-) Czy po rosyjsku nie pytamy jednak "что это", gdy nie chodzi człowieka? Profil podobno jest rosyjski, więc może być to i kalka.

183

(15 odpowiedzi, napisanych Bałagan)

Może to ten sam?
http://www.atari.org.pl/forum/misc.php?action=pun_attachment&item=10649

paptak napisał/a:

Usunąłem go ponieważ jakiemuś człowiekowi nie spodobało się, że jego imię i nazwisko pada podczas podpisywania płyt przez Sławka Łosowskiego.

Nie dało się tego fragmentu wypikać albo wyciszyć z krótkim komentarzem?

185

(10,041 odpowiedzi, napisanych Bałagan)

Niby o wydarzeniach sprzed ponad stu lat, a jakbym słuchał o wydarzeniach bieżących.
https://www.youtube.com/watch?v=Vph_weLs_LY

186

(115 odpowiedzi, napisanych Zloty)

Vasco/Tristesse napisał/a:

co ja później zrobię ze znaczkami, których ktoś nie odbierze?

Wyślesz przyklejone na kopercie z dopiskiem "stamps back". Nie zapomnij tylko posmarować wierzchniej warstwy klejem.

Dlaczego dwa razy ten sam post?

188

(118 odpowiedzi, napisanych Programowanie - 8 bit)

Dzięki za wyjaśnienie. Konieczność stosowania przecinka w przypadku .BYTE, podczas gdy .BY tego nie wymaga, jest dla mnie brakiem konsekwencji, bez której da się jednak żyć. :-)

Natomiast łączenie w jedną liczbę cyfr rozdzielonych spacją uważam za błąd. Dla przykładu:

    .BYTE 1 2 3, 12 3, 1 23"

powinno generować błąd składni, a nie blok bajtów: $7B $7B $7B.

Drugą rzeczą, którą poruszyłem na początku, jest pierwsza liczba ze znakiem za dyrektywą .BY, która modyfikuje pozostałe wartości. W dokumentacji mowa jest, że poprzedzenie tej liczby znakiem dodawania powoduje zwiększenie pozostałych o wskazana wartość. Rzecz w tym, że umieszczenie minusa powoduje adekwatnie zmniejszenie. W ten sposób, aby wprowadzić liczbę ujemną jak pierwszą trzeba uciekać się do akrobacji w rodzaju "256-b". Dla lepszego zobrazowania ".by -2 1" wygeneruje jeden bajt o wartości -1 ($FF), podczas gdy: ".by 256-2 1 - dwa bajty o wartościach: -2 ($FE), 1.

Proponuję zmodyfikować Madsa tak, aby wartości po dyrektywie .BY były modyfikowane tylko wtedy, gdy przed pierwszą liczbą jest znak plusa. Znak minus powinien określać tylko i wyłącznie znak liczby. Jeżeli zaszłaby potrzeba zmniejszania wartości, można to zrealizować tak, jak robi to MAE: ".BY +-n".

189

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Program pobiera kolejne parametry i wypisuje je w kolejnych liniach. Na koniec wyświetla ile parametrów podano. Kod od "noarg" odpowiada za wyświetlenie liczby podanych argumentów. "nosupp" wyświrtla komunikat o niewłaściwym DOS-ie. "print" wyświetla parametr.

Poprawiłem funkcję "getpar". Pierwotna wersja zwracała pod SDX długość argumentu o 3 bajty krótszą niż pod DOS-em II+/D. SpartaDOS przy obliczaniu długości parametru nie uwzględnia początkowej nazwy urządzenia ("Dn:").

        opt ?+

iccmnd  =   $0342
icbufa  =   $0344
icbufl  =   $0348
ciov    =   $e456

fr0     =   $d4
inbufp  =   $f3
lbuff   =   $0580
ifp     =   $d9aa
fasc    =   $d8e6

        org $2000
start   jsr getpar
        bcs nosupp
        beq noarg
        jsr print
        inc argc
        jmp start

noarg   lda #<argc_s
        ldy #>argc_s
        ldx #argc_l
        jsr print
        lda argc
        sta fr0
        lda #$00
        sta fr0+1
        jsr ifp
        jsr fasc
        ldy #$ff
?lp     iny
        lda (inbufp),y
        bpl ?lp
        and #$7f
        sta (inbufp),y
        iny
        lda #$9b
        sta (inbufp),y
        iny
        tya
        tax
        lda inbufp
        ldy inbufp+1
        bne print

nosupp  lda #<bdos_s
        ldy #>bdos_s
        ldx #bdos_l

print   sta icbufa
        sty icbufa+1
        stx icbufl
        ldx #$00
        stx icbufl+1
        lda #$09
        sta iccmnd
        jmp ciov

argc_s  .by "Liczba parametrow:"
argc_l  =   *-argc_s
bdos_s  .by "Nie ten DOS"
bdos_l   =  *-bdos_s
argc    .by 0

; Get Parameter for DOS II+/D
; Results:
;       C=1 - neither DOS II+/D nor SDX
;       Z=1 - no more parameters
;   If Z=0 & C=0:
;       AY - pointer to parameter
;       X  - length of parameter

Getpar  lda $0700
        asl
        cmp #'D'*2
        beq ?d2p
        cmp #'S'*2
        beq ?sdx
        sec
        rts

?d2p    lda #<?d2dp     ; Init for
        ldx #>?d2dp     ; DOS II+/D
        jsr ?stdos

        lda $13c3
        sta ?cur

        ldy $0348
        lda $1b00
        cmp #'M'
        beq ?dec
        lda $1b01
        cmp $13c3
        beq ?skp
?dec    dey
        dey
?skp    lda #$9b
        sta $1b02,y

?dos2d  ldy #$00        ; DOS II+/D
?nxt    lda $1b03,y
        iny
        cmp #$20
        beq ?fnd
        cmp #$9b
        bne ?nxt
        php
        ldx #$03
?ccr    lda ?cur,x
        sta $0580,x
        dex
        bpl ?ccr
        bmi ?aex

?fnd    ldx #<$1b03
        stx $f3
        ldx #>$1b03
        stx $f4
        jsr $dba5
        jsr $14b9
        ldx #$ff
?mv     inx
        lda $1b00,x
        sta $0580,x
        cmp #$20
        beq ?pel
        cmp #$9b
        bne ?mv
?pel    lda #$9b
        sta $0580,x
        php
?aex    lda #<$0580
        ldy #>$0580
        plp
        clc
        rts

?cur    .by "D :" $9b

?sdx    lda #<?spx      ; Init for
        ldx #>?spx      ; SpartaDOS
        jsr ?stdos
        ldy #$04
        lda ($0a),y
        sta ?spdos+1
        iny
        lda ($0a),y
        sta ?spdos+2
        lda $0a
        adc #$20        ; C=0
        sta ?lo+1
        lda $0b
        adc #$00
        sta ?hi+1

?spdos  jsr 0           ; SpartaDOS
        php
?lo     lda #$00
?hi     ldy #$00
        inx
        inx
        inx
        plp
        clc
        rts

?stdos  sta ?ad+1
        stx ?ad+2
        ldy #$02
?ad     lda 0,y
        sta getpar,y
        dey
        bpl ?ad
        rts

?d2dp   jmp ?dos2d
?spx    jmp ?spdos
        .en

190

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Niestety nie jest i trzeba się trochę nakombinować. W zasadzie wszystko, czego potrzebujesz, jest opisane, więc jak raz napiszesz własną procedurę, to będziesz miał święty spokój. :-)

191

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Po uruchomieniu magazynu włóż drugą dyskietkę (Syzygy6b.atr) i wtedy wczytaj artykuł.

192

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Polecam artykuł w Syzygy #6: "Wiersz poleceń w DOSie II+/D". Początkowo traktuje tylko o tytułowym DOS-ie, ale na końcu jest opis uniwersalny. Do artykułu dołączony jest plik z przykładami.
http://ftp.pigwa.net/stuff/collections/ … ny/Syzygy/

193

(118 odpowiedzi, napisanych Programowanie - 8 bit)

Przecinki rozwiązują problem. Sprawdziłem to zanim napisałem. W dokumentacji stoi, że można używać spacji lub przecinków. Akurat przecinków nie lubię - łatwiej w spację trafić. Zmiana dokumentacji nie jest rozwiązanie. ;-)

194

(16 odpowiedzi, napisanych Zloty)

Cyprian napisał/a:

dobry to był sztab,

Draco i As jeszcze z pewnością się z Tobą nie zgodzą co do użytego czasu przeszłego. ;-)

195

(118 odpowiedzi, napisanych Programowanie - 8 bit)

Trudno mi uwierzyć, że nikt nie zetknął się poniższym problemem, ale próba asemblacji:

    opt l+

w    =   31

    org $0600
    .byte -w-1 -w -w+1
    .byte 256-w-1 256-w 256-w+1
    .by   -w-1 -w -w+1
    .by   256-w-1 256-w 256-w+1
    .byte -w-1
    .byte 256-w-1
    .by   -w-1
    .by   256-w-1
    .byte 1 2 3 4
    .by   1 2 3 4
    .en

wypluwa błędy:

$ mads test.asm 
        .byte 256-w-1 256-w 256-w+1
test.asm (7) ERROR: Undeclared label W256 (BANK=0)
test.asm (7) ERROR: Value out of range (-1031 must be between 0 and 255)
        .byte 1 2 3 4
test.asm (14) ERROR: Value out of range (1234 must be between 0 and 255)
Writing listing file...

Listing:

mads 2.1.5
     1                     opt l+
     2
     3 = 001F            w    =   31
     4
     5                     org $0600
     6 FFFF> 0600-060F> A3        .byte -w-1 -w -w+1
     7 0601 F9                .byte 256-w-1 256-w 256-w+1
     8 0602 C1 C2            .by   -w-1 -w -w+1
     9 0604 E0 E1 E2            .by   256-w-1 256-w 256-w+1
    10 0607 E0                .byte -w-1
    11 0608 E0                .byte 256-w-1
    12 0609 E0                .by   -w-1
    13 060A E0                .by   256-w-1
    14 060B D2                .byte 1 2 3 4
    15 060C 01 02 03 04            .by   1 2 3 4
    16                     .en

Jak zapisać w jednym wierszu przy użyciu dyrektywy ".byte" lub ".by" liczby ujemne i dlaczego ".byte 1 2 3 4" łączy rozdzielone cyfry w jedną liczbę?

196

(115 odpowiedzi, napisanych Zloty)

Pin, zdaje się, że miałeś swój udział w tych 26 latach dośwaidczenia. ;-)

Poza tym zlot jest w lipcu, więc styczniowa pogoda na pewno nie będzie przeszkadzać.

Co do loga, to stare było mocno 8-bitowe i bardzo atarowskie. A nowe? Nowe po prostu jest. Widać, że Tiger miał gorszy dzień.

197

(16 odpowiedzi, napisanych Zloty)

Vasco/Tristesse napisał/a:

Ej, ale wyrolowali Was na rachunku i znowu tam idziecie?

Kto wyrolował Draco i Aleksa nie jest takie pewne, np. szisza była, ale ci, którzy z niej korzystali, nie poczuli się do uregulowania za nią rachunku.

198

(34 odpowiedzi, napisanych Sprzęt - 8bit)

AS... napisał/a:

Kup replikę toms-a 720 od Zaxon-a

Kup replikę Roleksa i chwal się, że masz oryginał.

199

(34 odpowiedzi, napisanych Sprzęt - 8bit)

ravek130xe napisał/a:

Czy to normalne że boot error wyświetla się nawet jak nie ma.dyskietki w stacji?

Tak. Komunikat będzie pojawiać się z mniejszą częstotliwością, ale będzie.

ravek130xe napisał/a:

Wyszlo 138. Czyli błąd

Czy Twoja stacja jest ustawiona jako pierwsza?https://www.atari-computermuseum.de/bilder/xl/conn_1050.PNG
Pod Altirrą formatowanie się powiodło. ;-)

200

(34 odpowiedzi, napisanych Sprzęt - 8bit)

perinoid napisał/a:

możesz zabootować z niego komputer do DOS-a a potem sformatować dyskietkę

DOS niepotrzebny. Wystarczy Basic: :-)

10 D=1:REM Numer stacji dyskietek
15 DIM C$(11):C=ADR(C$)
20 POKE 768,4:POKE 769,D
25 FOR A=770 TO 777:READ B:POKE A,B:NEXT A
30 FOR A=C TO C+10:READ B:POKE A,B:NEXT A
35 ? USR(C)
40 END
45 DATA 33,64,0,4,248,0,128,0
50 DATA 104,32,89,228,132,212,169,0,133,213,96

"1" oznacza powodzenie, wszystko równe albo powyżej 128 - błąd.

Maszin kąd pałerd baj KUBEK. ;-)