Bo to dokładnie na tę modłę było i tworząc powyższe wzorowałem sie na przytoczonym przez Ciebie oryginale.
Tytlko tu k... nikt nie chce współpracować. :twisted:
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Gearlynx 1.2.15 Emulator Atari Lynx doczekał się ważnej aktualizacji z wieloma nowymi funkcjami.
STOS BASIC V5.5 Alpha Popularny język programowania dla Atari ST powraca po ponad 30 latach w nowoczesnej wersji.
Command & Conquer na Atari ST Kultowy RTS Command & Conquer zmierza na Atari ST. Zobacz niesamowity port legendarnej strategii.
Altirra 4.50 test 13 Avery Lee udostępnił kolejną wersję testową najdoskonalszego emulatora Atari.
CT60 TOS 1.03e Po blisko 21 latach ukazała się oficjalna aktualizacja CT60 TOS do wersji 1.03e.
atari.area forum » Posty przez Lizard
Bo to dokładnie na tę modłę było i tworząc powyższe wzorowałem sie na przytoczonym przez Ciebie oryginale.
Tytlko tu k... nikt nie chce współpracować. :twisted:
Mówi się, że to co dla jednych zaletą, dla drugich wadą.
Zaletą jest dla ludzi mądrych - potrafią skorzystać, wadą - dla pozostałych. :twisted:
W Linii poleceń HiDOS'a chciałem zrobić obsługę np. historii poleceń, tylko że jeżeli użyję "E:", to bede ograniczony - nic niebede mógł robić jak OS'ROM czeka na naciśnięcie klawisza.
A co chcesz robić w tym czasie?
Pewnie ścigać się z userem. Czy user zdąży wcisnąć następny klawisz, czy ja szybciej zgadnę i wyświetlę na ekranie. :D
[ Dodano: 16.11.2004 15:45:26 ]
Casper: jak już Draco wspomniał, "legalna" jest nie tylko tablica skoków pod $E450, ale też parę innych rzeczy. Np. pamięć od $0000 - $05FF, $E000 - $E44F, $FFFA - $FFFF. ;)
Zientara zrobił błąd podając adresy procedur systemowych. Każdy myśli, że jak WZ napisał, to moż skakać do $Fxyz i zawsze będzie działać. :/
Nie jestem modem i inną nabjką, więc proszę pozotałych czytelników forum o nie pisanie więcej w tym wątku, gdyż postanowiłem go zamknąć, ale z powodu braku upraniwń nie mogę tego zrobić. Dlatego proszę o dostowsowanie się do mojego postulatu o nie pisanie więcej w tym wątku, gdyż wątek ten został zamknięty przeze mnie.
Dziękuje bardzo za współpracę i dostosowanie się do mojej prośby i nie pisanie już więcej w tym zamkniętym przeze mnie wątku. ;)
LDW 2000 ma gorszą mechanikę od CA 2001. I zdaje się, że to jedyna różnica pomiędzy nimi. Pomijając oczywiście wygląd zewnętrzny, cenę i zapewne wersję sterownika. :)
... żebym ja mial takie problemy.
Mogę się z Tobą podzielić. :twisted:
Współczesne procesory mają pewnie zapisane w sobue czym są. :) Takie informacje można zapewne wyciągnąć jakimś rozkazem lub grupą rozkazów. Ustalenie szybkości zegara odbywa się poprzez odpytanie chipseta o szybkość FSB i wielkość mnożnika. Sprawdzenie ilości pamięci tak samo. To są tylko przypuszczenia, bo aż tak się nie zagłębiałem. Nie sądzę, by sprawdzanie procesora polegało na testowaniu jakie rozkazy się wykonują, a jakie są nielegalne. Chociaż i to nie jest wykluczone, bo nie wszystkie modele CPU, na których może ruszyć Windows mają takie ficzery.
Widzę, że charakter forum z Atari 8-bit zmienił się na Windows logo and system properties in About box... :mrgreen:
Na zdjęciach jest 1050. Raczej nie przerobiona (tak tylko strzelam ;) ). Do tej stacji pasuje zasilacz od XF551 (stacja) i Atari 850 (4*RS232+Centronics).
Co tam. Teraz jesteśmy starsi panowie, ale choć nie to zdrowie, choć szron na głowie, to w sercach ciągle maj. :D
r0l0, ciekawe co na to gościu co już dał >200. :mrgreen: - to pewnie jego mina.
proszę bardzo - wstaw sobie to do procki TeBe lub Lizarda - albo mojej
Akurat wszystkie moje przykłady (2 sztuki + poniższy) są z klikiem klawiatury.
I TO NAPISAŁA OSOBA, KTÓRA UŻYWA TYLKO LEGALNYCH I ELEGANCKICH SKOKÓW Z TABLICY SYSTEMU OPERACYJNEGO.
Proszę bardzo. Oto procedura korzystająca w sposób legalny z tablicy wektorów obsługi urządzeń i nawet z tablicy skoków:
getc ldx #'K
jsr $E486 ; JNEWDEVC
lda $031A,x ; HATABS
sta $80
lda $031B,x
sta $81
ldy #$05
lda ($80),y
pha
dey
lda ($80),y
pha
rtsJeśli nie podoba Ci się każdorazowy skoko do JNEWDEVC, to pamiętaj, że HATABS jest w RAM-ie i w każdej chwili może być zmieniona (nawet w czasie działania programu, niezależnie od niego).
Funkcja działa dokładnie tak samo jak pierwsza przedstawiona przeze mnie.
Jeśli chcesz wiedzieć, to CIOLIB opisywane w Syzygy #7 korzysta z powyższej metody dla funkcji FGETC i GETC. Dla analogicznych FPUTC i PUTC są prostsze metody.
I to akurat 40%. Pewnie na zlot przybędzie po spożyciu 95% i stwierdzi, że na 100% jest pijany. :mrgreen:
Nie wiem co zapisane jest w rejestrze, ale procesor i pamięć chyba nie. U mnie przy wyświetlaniu włąściwości systemu pojawia się całe okienko, a dopiero po dłuższej chwili namysłu procezsor, zegar i pamięć. Wygląda to tak, jakby testował za każdym razem ( :?: ).
Wersja systemu na pewno jest zapisana w rejestrze, ale nie wiem czy w postaci takiej jak jest pokazywana na ekranie. Może jest to kod wersji?
Wracając do tematu. Najlepsze motody opierają się na specyfikacji systemu i dlatego proponuję jeszcze jedną metodę odczytu klawiatury:
; Initialize reading
ldx #$50 ; open IOCB for Keyboard
lda #$03 ; IOCB open
sta $0342,x ; ICCMD (char)
lda #<kb.id
sta $0344,x ; ICBUFA (ushort)
lda #>kb.id
sta $0345,x
lda #$04 ; open for reading
sta $034A,x
jsr $E456 ; JCIOMAIN
; ...
; some code here
; ...
kb.id .by "K:" 0
; Keyboard reading
getc ldx #$50
lda #$07 ; IOCB get bytes
sta $0342,x
lda #$00
sta $0348,x
sta $0349,x
jmp $E456
; Called by exit() function
kbcls ldx #$50
lda #$0C ; IOCB close
sta #0342,x
jmp $E456Po wyjściu z GETC kod ATASCII znajduje się w akumulatorze.
Powyższą metodą będziemy mieli pewność, że klawiaturę poprawnie odczytamy zawsze, niezależnie od wersji systemu i jego położenia w pamięci (oczywiście pewne adresy muszą być zachowane, np. tablica skoków).
:!: Więcej :!:
:!: Jeśli ktoś przeniesie system operacyjny z Atari na Commodore, to powyższy kod ruszy bez żadnych zmian. :!:
[ Dodano: 15.11.2004 11:35:21 ]
(choc choroba nie mam clicka po nacisnieciu.... badam sprawe).
My Ci zawsze dobrze doradzimy. :) Przy mojej klik musi być!
Nie, by bym napisał DoS. To nie będzie podsystem obsługi dysków, ale system ładowany z dysku. Wyczuwasz, tę subtelną różnicę?
Yhh, to ja zaczynam czarno widzieć tego DOS-a...
A Ty myślisz, żę poco Casper pisze własne sterowniki do Twojego HDD? To nie będzie Dos, a dOS. :D
Tia. I bardzo uprościło Tobie i wielu innym wychodzenie z programu przez JMP $E474.
Rozumiem, że Twój post, to przyzanie się, że nie potrafisz korzystać z funkcji systemu operacyjnego? :oops:
Jurgi: make me understand, co takiego ma w sobie 2.0f czego nie ma 2.0, że go tak bardzo polecasz?
Coś ściemniasz, hebanowy Pinku. ;)
No tak, tak często z tego korzytam, że aż zapomniałem, że obrazek jest pod monitorem. ;)
lda $d20f - bit 3 skasowany, znaczy ze wciśnięto jakiś klawisz. and #$04 eor #$04 beq *+4 - jeśli nie naciśnięto to powrót z podprocedury
I żeś babola strzelił, bo nie bit trzeci, tylko drugi. I po co to EOR #$04? Po wciśnięciu klawisza:$D20F = $FB; potem AND #$04 i akumulator = 0; EOR #$04 sprawi, że akumulator = 4 i BEQ nie skoczy, a procka wyjdzie jakby klawisz nie był wciśnięty. Nie żebym się czepiał, ale pamiętam, że błędy w przykładach bardzo utrudniały mi kiedyś naukę asma. ;)
hmmm... - użyteczne przy własnych procedurach, jeśli mam kod w pamięci RAM pod ROM'em - a ja z tego nagminnie kożystam Very Happy
Niom, i tylko wtedy, choć jest prosty sposób na przełączanie ROMu na RAM i z powrotem bez ryzyka padu kompa. Opis w Syzygy #7.
Generalnie jestem zwolennikiem korzystania z tego co oferuje system: ˇ po co wyważać otwarte drzwi
ˇ system zrobi to samo co my, i to bez pisania dodatkowego kodu (vide 1)
ˇ system jest sprawdzony i raczej trudno natrafić na błąd (vide 1)
ˇ system, wbrew opini Krógera, nie jest po to by go olewać, bo vide 1
Jurgi ma rację. Logo i dane o licencji można ustawić w rejestrze, każdy WinTweaker to potrafi, ale wersję systemu, zegar i ilość pamięci raczej fotchłop lub inny pain.
Masz jmp a nie jsr, więc powrót nastąpi za miejsce, w którym napiszesz jsr gets. ;)
jsr gets
bmi error ; tutaj wróci jmp $E456 z GETS
...
gets ldx #$00 ; kanał #0
...
; tutaj procedurka podana wcześniej
jmp $E456 ; GO ;) BMI ERROR nie wzięło się przypadkowo, bo gdy nastąpi błąd lub user wciśnie Break, to znacznik N będzie ustawiony, a rejestr Y będzie zawierał numer błędu (w przypadku uzycia klawisza Break - 128, $80). Dodatm tylko, że wszystkie systemowe numery błędów są większe od 127 (mają ustawiony najstarszy bit) i są zwracane w rejestrze Y.
I jeszcze jedno do KBCODES (764 - $02FC). Jak już zrobisz:
lda $02FC ; 764i zapragniesz mieć z tego ATASCII, to zrób jeszcze to:
tay ; kod klawisza nadal w akumulatorze
lda ($79),yPod adresem $79 (KEYDEFP) jest adres tablicy konwersji kodów klawiatury na ASCII.
Metoda podana przez TeBe jest ok, ale nie jest tak elegancka jak moja, no i nie będziesz miał tego ładnego kliku wciśniętego klawisza. :mrgreen:
Mam więcej takich ciekawostek historycznych - np czy wiecie, że przy produkcji 'dość masowej' pierwszych automatów 'na monetę' PONG pracowali hipisi i jarali grass? A Bushnell im na to pozwalał
Tia, ale to były bardzo wadliwe automaty i często się psuły. A dlaczego, niech ktoś inny dopisze, bo tę historię wszyscy znają, podobnie jak to, że różnice kapitału początkowego wahają się od $50 do $500 w zależności od wieku opowiadającego. ;) A założycieli było trzech. :p
Ty się nie pytaj jaki bug, ty się pytaj kiedy service pack. :->
atari.area forum » Posty przez Lizard
Wygenerowano w 0.145 sekund, wykonano 13 zapytań