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ć.
15. edycja BASIC 10 Liner Contest Ruszyła kolejna edycja konkursu na gry i programy napisane w zaledwie 10 liniach kodu.
Gearlynx 1.1.1 Nowa wersja emulatora konsoli Atari Lynx przynosi poprawki błędów.
avi2atari narzędzie w Pythonie do konwersji wideo na format AVF dla 8-bitowych komputerów Atari.
Pierwsza beta POKEY VQ Tracker Ilmenit udostępnił innowacyjne narzędzie do tworzenia muzyki opartej na samplach dla Atari 8-bit.
SQL na Atari 8-bit Nowe narzędzia pozwalają na obsługę baz danych SQL na Atari 8-bit przy użyciu urządzenia FujiNet.
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.069 sekund, wykonano 20 zapytań