Fabrycznie nowe commodore a nie ma dwóch nóżek? Hmm, oszczędna ta firma była, nie powiem... :P
To Ty nie wiesz, że organ nieużywany zanika? Wszystko się zgadza. :-D
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
SprEd 1.3.6 Bocianu wydał kolejną, szybko następującą wersję 1.3.6 swojego edytora duszków. Sprawdź, co nowego!
Gopher2600 0.50.1 Jeden z bardziej zaawansowanych emulatorów Atari 2600.
SprEd 1.3.2 od Bocianu Bocianu wydał nową wersję przeglądarkowego edytora duszków SprEd. Odkryj nowe funkcje w wersji 1.3.2!
RM800XL coraz bliżej RM800XL to nowoczesne wcielenie kultowego Atari 800XL, które łączy tradycję z nowoczesną technologią.
Arkanoid z PC na Atari z VBXE Trwają prace nad portem Arkanoida z PC na 8-bitowe Atari, wykorzystującym możliwości rozszerzenia VBXE.
atari.area forum » Posty przez Lizard
Fabrycznie nowe commodore a nie ma dwóch nóżek? Hmm, oszczędna ta firma była, nie powiem... :P
To Ty nie wiesz, że organ nieużywany zanika? Wszystko się zgadza. :-D
Jest tak, jak napisali Bocianu i Laoo. Pogrubienie zmniejsza czytelność. Zwróćcie uwagę na zdjęcie oryginalnego kubka - tekst pogrubiony wygląda gorzej niż zwykły.
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? ;-)
20 lat temu tak się robiło. Przy obecnych cenach pamięci i możliwościach jej rozszerzenia wielkość swapu pozostawiłbym Windowsowi, a dla systemów uniksowych jednoznacznej odpowiedzi nie ma.
Do takich rzeczy fajny byłby RAM-dysk w stylu amigowym - bez deklarowanej pojemności, dynamiczny, zużywający tyle pamięci ile akurat potrzeba.
$ sudo mkdir /ramdisk && sudo mount -t tmpfs rd /ramdisk && sudo df -h /ramdisk; free -h
System plików rozm. użyte dost. %uż. zamont. na
rd 7,8G 0 7,8G 0% /ramdisk
razem użyte wolne dzielone buf/cache dostępne
Pamięć: 15Gi 2,7Gi 8,1Gi 797Mi 4,7Gi 11Gi
Wymiana: 15Gi 0B 15Gi
Pany, nie róbmy tutaj zamieszania
Sam zacząłeś, to teraz spróbuj ugasić ten pożar. ;-)
Dobry przykład praktycznego zastosowania nielegali.
LAX - zyskaliśmy jeden bajt i dwa cykle. Super, teraz świat stał się lepszy.
SHX
Stores X AND (high-byte of addr. + 1) at addr.
unstable: sometimes 'AND (H+1)' is dropped, page boundary crossings may not work (with the high-byte of the value used as the high-byte of the address)
Słowo klucz: unstable.
Atari było pomyślane jako architektura otwarta, co widać po samej konstrukcji, jak i systemie operacyjnym. A propos systemu, dlaczego nie znajdziesz w nim nielegalny rozkazów? Przecież przyspieszyłoby to jego działanie i - poprzez skrócenie kodu - pozwoliłoby z pewnością na umieszczenie kilku dodatkowych procedur.
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.
Biere :-)
Nie myślałeś o założeniu zbiórki?
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/
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ą. :-)
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.
Może to ten sam?
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?
Niby o wydarzeniach sprzed ponad stu lat, a jakbym słuchał o wydarzeniach bieżących.
https://www.youtube.com/watch?v=Vph_weLs_LY
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?
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".
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
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. :-)
Po uruchomieniu magazynu włóż drugą dyskietkę (Syzygy6b.atr) i wtedy wczytaj artykuł.
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/
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. ;-)
dobry to był sztab,
Draco i As jeszcze z pewnością się z Tobą nie zgodzą co do użytego czasu przeszłego. ;-)
atari.area forum » Posty przez Lizard
Wygenerowano w 0.065 sekund, wykonano 19 zapytań