Oprava bugu v schéme Atari XF551.

By Administrator at novembra 21, 2018 12:18
Filed Under: Atari

 

Schéma Atari XF551 ma (občas ...) aj po tých rokoch neprestáva prekvapovať množstvom chýb - tak si prosím stiahnite opravenú verziu schém zapojenia.

____________________

ATARI XF551 schéma - ver.1 - rok 1987:

xf551ver1_102.GIF (52,48 kb)

Schéma 21.11.2018 - opravené označenie a pozície jumperov pre nastavenie typu použitého procesoru

____________________

ATARI XF551 schéma - ver.2 - rok 1988:

xf551ver2_101.GIF (49,53 kb)

Schéma 21.11.2018 - opravené označenie a pozície jumperov pre nastavenie typu použitého procesoru

___________________

Chcem upozorniť na jednu vec, zjednodušil som  v  obidvoch zapojeniach zapojenia niektorých odporov, združil som ich do odporových sietí, teda zapojenie sa bude líšiť od reálnej konkrétnej dosky.  Pretože schéma nie je nadmerne zložitá zapojenie jednotlivých odporov sa dá bezproblémovo vysledovať.

___________________

Vďaka tomu môžem definovať nový Murphyho zákon s definíciou od Igiho:


Ak v schéme neprepískaš multimetrom jedno jediné prepojenie - tak zaručene bude v schéme blbo zakreslené.

 

Po tomto všetko si hovorím že tam už snáď nič ďalšie nebude schované a teda konečne to bude kompletné, ale ako vždy platí : "Nikdy nehovor nikdy ..."

Skúsim popísať terajší stav:

Pomaly sa blížim k želanému konečnému stavu.

____________________________________________________________

Vaše hodnotenie, Rate post:

Atari - čriepky. Atari tidbits. 4.

By Administrator at novembra 15, 2018 18:25
Filed Under: Atari

Nepravidelný občasník, alebo občasný nepravidelník  ? Sú to čriepky (a aj črepiny) z oblasti Atari. Tak vitajte aj v tejto oblasti, nech vidíte čo sa vyrobilo, čo sa používalo a čo sa - sem-tam aj posralo, alebo čo sa podarilo a z čoho máme radosť.  Wink

____________________________________________________________

 

Nová základná doska pre disketovú jednotku Atari XF551.

Riešenie ála Lenore Underwood 2018.

 

Pekná nová základná doska pre disketovú jednotku Atari XF551, ktorá pochádza z USA, autorkou je Lenore Underwood (známa ako Dropcheck). Oproti pôvodnej doske je o poznanie menšia, menšie čipy sa presťahovali pod pätičky väčších čipov. Síce ja uprednostňujem všetky čipy v pätičkách ale tu uznávam že inak by to tu nešlo. Kvalitná prekovená doska, jasné označenie súčiastok, celé je to určené priamo na prerábku pôvodnej jednotky, teda ráta sa s tým že skanibalizujete pôvodnú dosku plošného spoja osadíte súčiastky do tejto novej dosky a nakoniec to celé založíte na pôvodné miesto. Tak isto sa počíta s tým že použijete pôvodný originálny chladič (kto chce použije DC/DC meniče, potom chladič odpadá, akurát potom bude treba použiť malý chladič na Graetzov usmerňovač). Ja už len dodám že je pekne vidieť ako Lenore postupne svoje dosky postupom času vyvíja a je to čoraz menšie - a stále kvalitné. Táto doska sa ani nedá zrovnávať s pôvodnou doskou pretože je skutočne omnoho kvalitnejšia a teda aj spoľahlivejšia. Cenove je doska prístupná, horšie je to s poštovným z USA ktoré presahuje cenu dosky. Ak niekto má záujem si danú dosku objednať tak ako na to nájdete na tomto odkaze:


Objednávka LU motherboard Atari XF551

Tu už len dodám tu buďte hodne trpezliví, pretože mne z neznámych dôvodov tento web býva často mimo prevádzky ... aj niekoľko dní.

A ako na to si pozrite podrobnejšie v doplnkovom materiáli od LU:

XF551 PCB BOM.pdf (1,05 mb)

Nakoniec dodatok  k tomu kde sa ešte dá doska (v Európe) objednať je v komentári pod týmto článkom priamo od Lenore Underwood.

_____________________________________________________

 

 

Disketová mechanika Atari 810 - oprava, cca 11 minútové video:

The ReStory of the destroyed Atari 810 floppy drive

Je tu pekne vidieť ako sa "zatiahne opona", t.j. predná časť dvierok sa po založení diskety spúšťa kolmo nadol. Pamätám si takto riešené dvierka disketových mechaník,  no už je takéto riešenie preč. Našťastie.

_____________________________________________________

"Nejaká" tá technická dokumentácia k Atari (a aj iné veci):
http://www.digitpress.com/library/techdocs/

Naozaj sa oplatí si to tam podrobne pozrieť.

_____________________________________________________

Už v názve je jasné o čo ide:

http://curvetube.com/ZX_Spectrum_emulation_on_ATARI_8bit_XE/O3oZvWXkkIk.video

Akurát sa tu používa v Atari jedna "maličká úprava" - Rapidus accelerator:
WDC 65C816 microprocessor operating at 20 MHz !

_____________________________________________________

Pekne popísané vývody Eprom pamätí:

https://www.sbprojects.net/knowledge/footprints/eprom/index.php

_____________________________________________________

Z rôznych zdrojov sa môžete dočítať, že za stranu hardvéru pri vývoji v Atari boli zodpovední:

- Steven T. Mayer (hlavný vynálezca)
- Ronald E. Milner (?)
- George McLeod (logický dizajn CTIA a GTIA)
- Jay G. Miner (systémový architekt)
- Douglas G. Neubauer (logický dizajn POKEY)
- Joseph C. Decuir (dizajn ANTIC)
- Francois Michel (návrhár logiky ANTIC)
- Mark Shieu (návrh čipu POKEY)
- Steve Stone (POKEY layout design)
- Delwin Pearson (technik pre POKEY)
- Steve Smith (technik pre ANTIC a GTIA)
_____________________________________________________

 

 

 

Jedna pekná hra a jej špeciálna jednoúčelová základná doska:

Atari Lunar Lander Repair

Na zobrazenie sa používa osciloskop.

____________________________________________________________

 

 

Rozličné prerábky Atari (a aj iných vecí), mimo iného zabudovanie zariadenia SIO2SD v pôvodnom púzdre rozširujúcej pamäte Atari 1064:

http://blog.wolfsoft.de/

____________________________________________________________

Vaše hodnotenie, Rate post:

SBC6502 - 19 - software. Benchmarks. Part2.

By Administrator at novembra 11, 2018 08:00
Filed Under: SBC6502

 

Benchmarks SBC6502.

 

Part2.

 

Dnes je to voľné pokračovanie predchádzajúceho článku. Niekedy veci začnú do seba zapadať postupne ako ozubené kolieska v hodinách a to aj bez nejakej zjavnej príčiny, pekne postupne - čo je aj tento prípad a celkom sa mi to hodí, pretože zase je o čom písať. Pred pár dňami som uverejnil benchmarkový test a na atariage.com sa objavil benchmarkový test pre malé Atari - presne o deň neskôr po mojom článku - tak som ho na SBC6502 skúsil tiež a zase je to celkom zaujímavé.

 

Je tzv. jednoriadkový test, teda nemusíte ho písať s číslom riadku, ja to mám aj s ním, pretože ak to chcete nanovo spustiť tak by ste to museli nadlapať na klávesnici do počítača nanovo, čiže takto to vo výsledku šetrí čas.


ver.1:

10  FOR I=0 TO 255: FOR J=0 TO 255: NEXT J: NEXT I

A zase mi začalo vŕtať v hlave, nedá sa to urýchliť ? Dá !

SBC6502 umožňuje aj jednoduchší zápis ako je uvedený, tak si to jemne zmeníme:

 

ver.2:

10  FOR I=0 TO 255: FOR J=0 TO 255: NEXT: NEXT


Tabuľka do článku doplnená 30.09.2019

 

Urýchlenie vykonania programu je lepšie niekedy o celých cca 20%, čo je už naozaj celkom dosť. Takže ak budete vyvíjať nejaký ten programček - dajte si pozor na niektoré veci, pretože ak premyslíte správne kroky tak sa výsledný program môže celkom slušne zrýchliť a ušetríte čas ktorý by nám za istých okolností mohol chýbať.

*********************************

 

Nasledujúci test je tiež z uvedeného odkazu a zase sa jedná o malý program:


10 PRINT "START":K=0
20 K=K+1:A=K^2:B=LOG(K):C=SIN(K)
30 IF K<1000 THEN GOTO 20
40 PRINT "STOP"

 

SBC6502 1.8432MHz, doba testu: 39 secs.

SBC6502 6.00MHz, doba testu: 14.50 secs.

(doplnené 30.09.2019, pomalšie verzie som v tomto prípade netestoval)

 

Celkom slušné číslo.

 

No a poďme teraz na atariage odkaz:

Benchmark test Atari

 

Prvý test (ten jednoriadkový) tam beží pri vypnutom zobrazovaní a aj tak to trvá dosť dlho - 82.50 secs. (Basic revC). Treba zobrať do úvahy že pri vypnutom zobrazovaní sa zvýši rýchlosť vykonania o cca 30%, pri zobrazovaní by to teda trvalo úmerne dlhšie. Nebudem to tu ďalej nejako pitvať ale ten pôvodný Basic nie je žiadna výhra (ani s prižmúrením očí). Pozrite si časy ak sa použije Microsoft Basic alebo TURBOBASIC.

Fakt je škoda že sa Atari rozhodlo použiť iný Basic ako od Microsoftu (ten ale vyžadoval priestor nie 8kB ale 9kB), mašina by bola naozaj o poznanie rýchlejšia. Ale tak to už býva, iné veci ako rýchlosť a neviem ešte aké parametre zvyčajne nerozhodujú o tom čo sa nakoniec použije. Pozrite si dnešnú dobu tiež sa vyberá vo výberových konaniach nie to čo je najlepšie - ale to čo je najdrahšie /i keď sa samozrejme tvrdí pravý opak/. Takže ako vždy logika ide (a išla) bokom a my len žasneme.

Nakoniec pozrite si to v uvedenom odkaze sami, tu už na téma Atari nejaké pokecy stačia.

Zase ten krpáň SBC6502 dopadol nad očakávanie. Aspoň niečo čo mi dnes urobilo radosť.

___________________________________________________________

Návrat do všetkých pokračovaní o SBC6502:

http://blog.3b2.sk/igi/post/SBC6502-0-UvodIntroduction.aspx

____________________________________________________

Vaše hodnotenie, Rate post:

SBC6502 - 18 - software. Benchmarks.

By Administrator at novembra 07, 2018 09:45
Filed Under: SBC6502

 

Benchmarks SBC6502.

 

 

 

Časopis Practical Electronics vydanie 07/1984 (začiatok je na strane 34, primárne je článok určený popisu počítača Sinclair QL) mal v sebe popis benchmarkových testov niektorých počítačov, tak isto tam boli aj uverejnené 4 jednoduché programy určené na toto testovanie. Objavil som to pri prechádzaní ročníkami uvedeného časospisu - a tak som si povedal prečo by si si neotestoval svoje domáce SBC6502 a neporovnal si výsledky s počítačmi uvedenými v uverejnenom teste ? A výsledky porovnania sú dosť zaujímavé.


A tak teda idem na to, tu sú spomínané 4 benchmarkové testy, sú tak krátke, že si ich bez problému "naďatlujete" do svojho počítača aj Vy:

 

10 REM Benchmark ONE
20 FOR I=1 TO 500
30 PRINT "HELLO"
40 NEXT I

10 REM Benchmark TWO
20 FOR I=1 TO 3000
30 X=45
40 NEXT I

10 REM Benchmark THREE
20 FOR I=1 TO 3000
30 X=X+1
40 NEXT I

10 REM Benchmark FOUR
11 X=.5
20 FOR I=1 TO 3000
30 X=COS(X)^3
40 NEXT I
 

Jediná zmena oproti článku je v benchmarku č.4 kde bol riadok č.11 uvedený ako riadok č.5, ale myslím si že táto zmena skutočne nemá nejaký zásadný vplyv na rýchlosť prevádzania daného programu, zmena je mimo potom prevádzanej testovacej slučky.


A na záver sa patrí dať tabuľku ktoré počítače boli navzájom porovnané (údaje o výsledkoch ostatných počítačov mimo SBC6502 sú prevzaté priamo z pôvodného článku - nie sú tam uvedené údaje v desatinách sekundy):


Prevzatá tabuľka z článku Practical Electronics.

 

Tie isté testy prevedené na SBC6502 pri rôznej rýchlosti.

 

Tabuľka doplnená do tohtoto článku dňa 02.10.2019 o kompletné rýchlosti ktoré som na SBC6502 otestoval.


Výsledky sú naozaj zaujímavé, je vidieť kde ktorý počítač brzdí zvolený spôsob zobrazovania, ten môj krpáň ktorý toto obmedzenie samozrejme nemá (akurát sa všetko posiela na výstup cez klasický Hyperterminal sériovou linkou 115.200Bd, počítač je s Win7) medzi nimi vôbec neskončil zle, Atari som ani radšej s tým jeho pôvodným Basicom netestoval, nech mi to nekazí náladu, s Turbo Basicom by to bola asi aj pre Atari iná káva, ale to zase nie je origo Basic čo je dodávaný v počítači. Pretože výsledky ma fakt zaskočili tak som to testoval tak že som slučku predĺžil v každom teste radšej 10-násobne (riadok 20 prvý test I=1 to 5000, v ostatných troch testoch I=1 TO 30000) a až potom meral stopkami a na záver som to potom už iba delil :10, pretože ten prvý test som bol schopný odchytiť tak na čas 0.9 sekundy, meral som na stopkách v mobile. Napríklad potom po 10x zväčšenej dĺžke ten posledný štvrtý test mi trval 13min.20secs. = 800secs. A keď som sa na to pozrel - iba v teste č.2 bol o pár % rýchlejší počítač Vector a v teste č.4 zase počítač QL - tak to naozaj nie je zlé ! A to sú tam počítače čo majú rýchlejšie hodiny na procesore a to dosť podstatne, a papierovo je tam aj výkonnejší 32 bit procesor (síce len interne).


Moje SBC6502 beží na frekvencii = 1.8432MHz, ten prvý test ma zaskočil svojou rýchlosťou prevedenia. Na tohoto krpca tie výsledky fakt nie sú zlé. Myslím si že je dosť jasné že som sa občas schuti zasmial, skutočne som takéto niečo nečakal - ani náhodou. Pri vyhodnocovaní som sa naozaj dobre pobavil.

Laik žasne, odborník je v pérdeli.

(Stále ma máta že SBC6502 skúsim pretaktovať smerom nahor, potom by to mohlo byť ešte zaujímavejšie.)

Nuž - ak máte chuť otestujte si svoju mašinku ako zvláda tieto 4 veľajednoduché testy a dúfam že aj  potom budete naďalej dobre a kľudne spať. Wink

A pozor pri niektorých počítačoch, ak si tam trebárs dáte ako ja 10x dlhšie testy tak to naozaj môže byť časovo dosť náročné.

___________________________________________________________

Doplnil som tabuľku už aj o Jirkove testy (a že ich je - poslal mi aj nejaké výsledky testov do mailu, trošku som teda tabuľku upravil, pridal som tam aj celkový čas prevedenia všetkých testov), ešte nasledujú Jirkove poznámky:

 

Poznámky:

- u BBC Mastera jsem udělal mimo klasický test ještě úpravu kódu, kdy jsem v testech 1, 2 a 3 označil proměnnou I (a X) jako integer (přidáním symbolu %); ve 4. testu se X musí ponechat jako real, takže jsem "integer test“ neprováděl (připadá mi neuvěřitelné, že ten integer v počítadle měl docela znatelný vliv i na print v prvním testu)

- U BBC Mastera jsem prováděl všechny testy vždy s desetinásobným počtem průchodů a výsledný čas dělil deseti

- u kapesního Casia se nedá realizovat onen výpis „HELLO“, protože má displej jen se dvěma řádky a pořád se ptá na pokračování výpisu

- kolonka měření udává, jestli bylo pro měření použito interní funkcionality daného počítače (a výsledky jsou tak přesné) nebo jestli jsem čas měřil ručně na stopkách (na mobilu)


No a už poďme na prekopanú a doplnenú tabuľku (Jirko dík!), všetky uvedené časy sú v sekundách, rozhodol som sa zoradiť počítače podľa výsledkov testov (teda vždy platí súčet jednotlivých testov), SBC je tu v tabuľke s taktom =1.8432MHz:

Vysvetlivky k tabuľke:

? - neznáme, pôvodný zdroj neuvádza

Comp. - čas spočítaný počítačom

Hand. - čas načítaný ručne

* - nie je prevediteľné, preto nie je ani spočítaný celkový čas

 

Ták, 3.miesto, slušné ...


*******

Doplnená tabuľka - radšej to už ani nebudem porovnávať. Paráda !!! 

********


Pôvodný Basic v Atari mi moje predtuchy o poriadne dlhom čase naplnil (vrchovate ...). A SBC6502 v tomto porovnaní stále vôbec nevychádza zle. Richard.W. Weiland, ktorý preportoval kód 8080 Microsoft Basicu na kód 6502-ky odviedol skutočne veľmi slušnú prácu (a myslím si že dodnes nedocenenú). Je zaujímavé že rýchlosť tohoto Basicu sa blíži rýchlosti Turbo Basicu v Atari ... a to je už naozaj iný "bumbrlíček" (aj svojou veľkosťou).

 

Len pripomínam že Atari má tiež 8kB Basic, ale má "barličku" v podobe ďalších 14kB k dispozícii v ktorých je vlastný operačný systém. Potom sa nedivme že je tam aj grafika, player-missile grafika, zvuk, ovládanie joystickov a pod. Tu v SBC6502 je všetko "narvané" len do 8kB, práve preto ma udivuje ako je to dobre urobené (na tú dobu). A nakoniec, Basic pre Atari vznikol až o pár rokov neskôr.


No čo, benchmarky sú na to aby nám buď zdvihli povedomie, alebo aby nás s naším počítačom zakopali poriadne hlboko do zeme. V každom prípade je to zaujímavé !

___________________________________________________________

Návrat do všetkých pokračovaní o SBC6502:

http://blog.3b2.sk/igi/post/SBC6502-0-UvodIntroduction.aspx

____________________________________________________

Vaše hodnotenie, Rate post:

SBC6502 - 17 - software. Basic programs. Prevody-konverzie.

By Administrator at novembra 05, 2018 18:40
Filed Under: SBC6502

PREVODY ... Prevody ... prevody ...

a dôkazy o tom že optimalizácie programov sa oplatia.

 

SBC6502 + 8255A

 

Nasledujú ďalšie Basic programy pre počítač SBC6502. Čo si budeme nahovárať - bez prevodov to v programoch jednoducho a proste nejde ...

___________________________________________________________

Program pre prevod  dec2hex, rozsah 0÷255d:

 

2000 A$="0123456789ABCDEF"
2010 ? "(dec)";:INPUT N
2020 L=N AND 15:H=(N-L)/16
2030 ?"(hex): ";:? MID$(A$,H+1,1)MID$(A$,L+1,1)
2040 GOTO 2010

dĺžka programu: 123byte

 

Teraz si pozrieme ten istý výpočet ako by vyzeral keby sa nepoužili niektoré programové pomôcky - takto som začínal na SBC6502 aj ja ...


1000 ? CHR$(12): REM CLS
1010 CLEAR
1020 ? " Dec to Hex:";:INPUT X:Y=X
1030 IF X<0 OR X>255 THEN 1010
1100 IF X>=240 THEN A$="F":X=X-(16*15):GOTO 1500
1110 IF X>=224 THEN A$="E":X=X-(16*14):GOTO 1500
1120 IF X>=208 THEN A$="D":X=X-(16*13):GOTO 1500
1130 IF X>=192 THEN A$="C":X=X-(16*12):GOTO 1500
1140 IF X>=176 THEN A$="B":X=X-(16*11):GOTO 1500
1150 IF X>=160 THEN A$="A":X=X-(16*10):GOTO 1500
1160 IF X>=144 THEN A$="9":X=X-(16*9):GOTO 1500
1170 IF X>=128 THEN A$="8":X=X-(16*8):GOTO 1500
1180 IF X>=112 THEN A$="7":X=X-(16*7):GOTO 1500
1190 IF X>=96 THEN A$="6":X=X-(16*6):GOTO 1500
1200 IF X>=80 THEN A$="5":X=X-(16*5):GOTO 1500
1210 IF X>=64 THEN A$="4":X=X-(16*4):GOTO 1500
1220 IF X>=48 THEN A$="3":X=X-(16*3):GOTO 1500
1230 IF X>=32 THEN A$="2":X=X-(16*2):GOTO 1500
1240 IF X>=16 THEN A$="1":X=X-(16*1):GOTO 1500
1250 A$="0"
1500 IF X=15 THEN B$="F"
1510 IF X=14 THEN B$="E"
1520 IF X=13 THEN B$="D"
1530 IF X=12 THEN B$="C"
1540 IF X=11 THEN B$="B"
1550 IF X=10 THEN B$="A"
1560 IF X=9 THEN B$="9"
1570 IF X=8 THEN B$="8"
1580 IF X=7 THEN B$="7"
1590 IF X=6 THEN B$="6"
1600 IF X=5 THEN B$="5"
1610 IF X=4 THEN B$="4"
1620 IF X=3 THEN B$="3"
1630 IF X=2 THEN B$="2"
1640 IF X=1 THEN B$="1"
1650 IF X=0 THEN B$="0"
1700 C$=A$+B$
1780 ? "Dec:","Hex:":? Y,C$:?
1900 GOTO 1010

dĺžka programu: 1056byte

Toto je trošku iný "bumbrlíček" vo výsledku, že ?

______________________________________________________________________________

Program pre prevod hex2dec2hex:

(Tento si ale musíte "nadlapať" z priloženej predlohy sami ...)

Hex-dec-hex-conv.zip

___________________________________________________________

Doplnil som sem ešte programy, ktoré tak isto dokážu robiť DEC-TO-HEX prevod - a to aj v plnom rozsahu 0÷65536d. Tak isto môžeme plniť programy číslami aj od 0÷255, nemajú s tým problém. Niektoré sú upravené priamo pre menší vstupný rozsah 0÷255d.

 

Program  DEC-TO-HEX - range 0÷65535d:

 

2000 ? CHR$(12):? "=== DEC TO HEX ==="
2010 CLEAR:INPUT "DEC NO.:";A$
2020 A = ABS( VAL(A$) )  
2030 B = INT(A/16)
2040 A = A - (B*16)
2050 IF A=10 THEN C$ =C$ +"A"
2060 IF A=11 THEN C$ =C$ +"B"
2070 IF A=12 THEN C$ =C$ +"C"
2080 IF A=13 THEN C$ =C$ +"D"
2090 IF A=14 THEN C$ =C$ +"E"
2100 IF A=15 THEN C$ =C$ +"F"
2110 IF A<10 THEN C$ =C$ +MID$(STR$(A),2,1 )
2120 A = B : IF B<>0 THEN 2030
2130 FOR X = LEN(C$) TO 1 STEP -1
2140 B$ = B$ + MID$(C$,X,1)
2150 NEXT X : ? "HEX:" B$
2160 ?:GOTO 2010

dĺžka programu: 410byte


Program  DEC-TO-HEX - range 0÷65535d, iná verzia:

 

3000 ? CHR$(12):? "=== DEC TO HEX 2 ==="
3010 CLEAR:INPUT "DEC NO.:";A$
3020  A = ABS( VAL(A$) )  
3030 B = INT(A/16)
3040 A = A - (B*16)
3050 IF A>9 THEN C$=C$+CHR$(55+A)
3060 IF A<10 THEN C$=C$+MID$(STR$(A),2,1 )
3070 A = B : IF B<>0 THEN 3030
3080 FOR X = LEN(C$) TO 1 STEP -1
3090 B$ = B$ + MID$(C$,X,1)
3100 NEXT X : ? "HEX:" B$
3110 ?:GOTO 3010

dĺžka programu: 286byte

___________________________________

A ďalšia verzia prevodu Dec2Hex - rozsah 0÷65536d:

  

 100 DIM D$(16):D$="0123456789ABCDEF"
 105 PRINT :PRINT "Dec number ";
 110 INPUT DEC:NUM=DEC:GOSUB 8500
 130 PRINT DEC;" Dec = ";N$;" Hex"
 140 GOTO 105
 8500 REM Conversion Dec to Hex
 8510 DIV=4096
 8520 FOR I=1 TO 4
 8530 N=INT(NUM/DIV)
 8535 IF I=1 THEN I$=MID$(D$,N+1,1)
 8536 IF I=2 THEN G$=MID$(D$,N+1,1)
 8537 IF I=3 THEN O$=MID$(D$,N+1,1)
 8538 IF I=4 THEN R$=MID$(D$,N+1,1)
 8540 NUM=NUM-DIV*N:DIV=DIV/16
 8550 NEXT I
 8555 N$=I$+G$+O$+R$
 8560 RETURN

 dĺžka programu: 369byte


Ak postačí - Dec2Hex prevod pre rozsah 0÷255d:


 
100 DIM D$(16):D$="0123456789ABCDEF"
 105 PRINT :PRINT "Dec number ";
 110 INPUT DEC:NUM=DEC:GOSUB 8500
 130 PRINT DEC;" Dec = ";N$;" Hex"
 140 GOTO 105
 8500 REM Conversion Dec TO Hex
 8510 DIV=4096
 8520 FOR I=1 TO 4
 8530 N=INT(NUM/DIV)
 8537 IF I=3 THEN O$=MID$(D$,N+1,1)
 8538 IF I=4 THEN R$=MID$(D$,N+1,1)
 8540 NUM=NUM-DIV*N:DIV=DIV/16
 8550 NEXT I
 8555 N$=O$+R$
 8560 RETURN

 dĺžka programu: 309byte

______________________________________________________________________________

Program pre prevod - dec2bin, vstupný rozsah čísiel = 0÷255d:


10 ?
12 ? "Dec2bin converter, input range 0-255d"
14 ?:INPUT X:IF X>255 OR X<0 THEN 40
16 ? "bit: 7 6 5 4 3 2 1 0"
18 ? "  X=";
20 Y=128
22 A=INT(X/Y)
24 IF A=0 THEN 32
26 ? " 1";
28 X=X-Y
30 GOTO 34
32 ? " 0";
34 Y=Y/2
36 IF INT(Y)=0 THEN 14
38 GOTO 22
40 ? "Out of range !":GOTO 14

dĺžka programu: 273byte


DEC2BIN - ukážka.

Iná verzia:

10 PRINT
11 PRINT "Dec2bin converter, input range 0-255d"
12 PRINT:INPUT X:IF X>255 OR X<0 THEN 40
13 PRINT "     1"
14 PRINT "     2 6 3 1"
15 PRINT "     8 4 2 6 8 4 2 1"
16 PRINT "--------------------"
17 PRINT "bit: 7 6 5 4 3 2 1 0"
18 PRINT "  X=";
20 Y=128
22 A=INT(X/Y)
24 IF A=0 THEN 32
26 PRINT " 1";
28 X=X-Y
30 GOTO 34
32 PRINT" 0";
34 Y=Y/2
36 IF INT(Y)=0 THEN 12
38 GOTO 22
40 PRINT "Out of range !":GOTO 12

dĺžka programu: 366byte

 

Tu som si to napísal sám, po svojom, priamo pre 8bit verziu a aj pre 16 bit verziu:

 

10 ? "Conversion - 8bit dec2bin"
11 K=0:G=128:INPUT " Dec=";K
12 IF K<0 OR K>255 THEN ? "Error !":GOTO 11
13 ? SPC(10)"76543210":? " Binary  =";
20 FOR A=1 TO 8:GOSUB 40:?A$;:G=G/2:NEXT
22 ?:GOTO 10
40 IF K=G OR K>G THEN K=K-G:A$="1":RETURN
42 A$="0":RETURN

dĺžka programu: 226byte

 

10 ? "Conversion - 16bit dec2bin"
11 K=0:G=32768:INPUT " Dec=";K
12 IF K<0 OR K>65535 THEN ? "Error !":GOTO 11
12 ? SPC(10)"111111"
13 ? SPC(10)"5432109876543210":? " Binary  =";
20 FOR A=1 TO 16:GOSUB 40:?A$;:G=G/2:NEXT
22 ?:GOTO 10
40 IF K=G OR K>G THEN K=K-G:A$="1":RETURN
42 A$="0":RETURN

dĺžka programu: 220byte

____________________________________________________________

Zaujímavé je to že prevod bin2dec som akosi v literatúre nenašiel, takže som si ho tak isto napísal sám a je tu pekne krásne vidieť ako sa program postupne môže vyvíjať /a zmenšovať/.


8-bitová konverzia binary2dec:

 
10 ? "Conversion - 8bit binary2dec":REM V.1.0
11 ? SPC(10)"8x 0 or 1"
12 ? SPC(10)"76543210"
14 K=0:INPUT " Binary=";G$
16 IF LEN (G$)<>8 THEN ? "Error !":GOTO 10
20 IF MID$(G$,1,1)="1" THEN K=K+128
21 IF MID$(G$,2,1)="1" THEN K=K+64
22 IF MID$(G$,3,1)="1" THEN K=K+32
23 IF MID$(G$,4,1)="1" THEN K=K+16
24 IF MID$(G$,5,1)="1" THEN K=K+8
25 IF MID$(G$,6,1)="1" THEN K=K+4
26 IF MID$(G$,7,1)="1" THEN K=K+2
27 IF MID$(G$,8,1)="1" THEN K=K+1
30 ? " Dec=";K:CLEAR:GOTO 10

dĺžka programu. 402byte

 

Tento program sa dá urobiť aj mierne odlišným riešením:

 

10 ? "Conversion - 8bit binary2dec":REM V.1.1
11 ? SPC(10)"8x 0 or 1"
12 ? SPC(10)"76543210"
14 A=0:K=0:INPUT " Binary=";G$
16 IF LEN (G$)<>8 THEN ? "Error !":GOTO 10
20 A=A+1:G=128:GOSUB 40:A=A+1:G=64:GOSUB 40
22 A=A+1:G=32:GOSUB 40:A=A+1:G=16:GOSUB 40
24 A=A+1:G=8:GOSUB 40:A=A+1:G=4:GOSUB 40
26 A=A+1:G=2:GOSUB 40:A=A+1:G=1:GOSUB 40
30 ? " Dec=";K:CLEAR:GOTO 12
40 IF MID$(G$,A,1)="1" THEN K=K+G
42 RETURN

dĺžka programu: 352byte

 

Máte pocit že by sa to tu dalo optimalizovať ?  Súhlasím:

 
10 ? "Conversion - 8bit binary2dec"
:REM V.1.2
11 ? SPC(10)"8x 0 or 1"
12 ? SPC(10)"76543210"
14 K=0:G=128:INPUT " Binary=";G$
16 IF LEN (G$)<>8 THEN ? "Error !":GOTO 12
20 FOR A=1 TO 8:GOSUB 40:G=G/2:NEXT
30 ? " Dec=";K:CLEAR:GOTO 12
40 IF MID$(G$,A,1)="1" THEN K=K+G
42 RETURN

dĺžka programu: 240byte

 

A uvedený programček verzie 1.02 v akcii.

___________________________________________________________

16 bitová konverzia binary2dec:


10 ? "Conversion - 16bit binary2dec":REM V.1.3
11 ? SPC(10)"16x 0 or 1"
12 ? SPC(10)"111111"
13 ? SPC(10)"5432109876543210"
14 K=0:INPUT " Binary=";G$
16 IF LEN (G$)<>16 THEN ? "Error !":GOTO 10
20 IF MID$(G$,1,1)="1" THEN K=K+32768
21 IF MID$(G$,2,1)="1" THEN K=K+16384
22 IF MID$(G$,3,1)="1" THEN K=K+8192
23 IF MID$(G$,4,1)="1" THEN K=K+4096
24 IF MID$(G$,5,1)="1" THEN K=K+2048
25 IF MID$(G$,6,1)="1" THEN K=K+1024
26 IF MID$(G$,7,1)="1" THEN K=K+512
27 IF MID$(G$,8,1)="1" THEN K=K+256
28 IF MID$(G$,9,1)="1" THEN K=K+128
29 IF MID$(G$,10,1)="1" THEN K=K+64
30 IF MID$(G$,11,1)="1" THEN K=K+32
31 IF MID$(G$,12,1)="1" THEN K=K+16
32 IF MID$(G$,13,1)="1" THEN K=K+8
33 IF MID$(G$,14,1)="1" THEN K=K+4
34 IF MID$(G$,15,1)="1" THEN K=K+2
35 IF MID$(G$,16,1)="1" THEN K=K+1
36 ? " Dec=";K:CLEAR:GOTO 10

dĺžka programu: 687byte

 

Toto bola základná verzia bez optimalizácie, je to celkom dlhý programček, takže ho upravíme tiež a vďaka tomu sa jeho dĺžka významne zmenší:

 

10 ? "Conversion - 16bit binary2dec":REM V.1.4
11 ? SPC(10)"16x 0 or 1"
12 ? SPC(10)"111111"
13 ? SPC(10)"5432109876543210"
14 K=0:G=32768:INPUT " Binary=";G$
16 IF LEN (G$)<>16 THEN ? "Error !":GOTO 10
20 FOR A=1 TO 16:GOSUB 40:G=G/2:NEXT
30 ? " Dec=";K:CLEAR:GOTO 12
40 IF MID$(G$,A,1)="1" THEN K=K+G
42 RETURN

dĺžka programu: 273byte

 

Conversion - 16bit binary2dec, verzia 1.04

___________________________________________________________

Negácia (inverzia) dát:

Toto je veľmi jednoduché, stačí nasledovné - stačí na danú adresu posielať namiesto POKE (adresa),data nový príkaz POKE (adresa), 255-data - a je to.

(data majú možný rozsah 0÷255)

___________________________________________________________

Návrat do všetkých pokračovaní o SBC6502:

http://blog.3b2.sk/igi/post/SBC6502-0-UvodIntroduction.aspx

____________________________________________________

Vaše hodnotenie, Rate post:

3-cestný prepínač - Atari 1050 - 3-mode Write Protect Switch Methods.

By Administrator at novembra 01, 2018 15:17
Filed Under: Atari

 

Tak sa dnes pozrieme do Ameriky, presnejšie môj dnešný pokec nás zanesie až na sever, do Kanady. User ktorý odtaľ pochádza - nick má BillC, navrhol 3-cestný prepínač pre disketovú jednotku Atari 1050, ktorý umožňuje prepínať medzi týmito 3 režimami:


1  - normálna jednotka, aktívny režim Write/protect

2 - režim Read only, t.j. z diskety vieme iba čítať, ja používam označenie ROM disk
3 - režim Write protect vypnutý, t.j. vždy je možný zápis

     /aj na prelepenú disketu/

 

Toto označenie platí na prepínače uverejnené v tomto článku.

 

Upozornenie:

Zásahy a stavba  zariadenia sú na vlastné riziko majiteľa zariadenia. Autor týchto stránok nenesie žiadnu

zodpovednosť za škody  spôsobené používaním zariadení postavených podľa tu uverejnených

schém alebo zobrazených úprav.


 

Neviem, ja som si doteraz vystačil s prepínačom čo mal iba zapnutý režim Write protect, druhá poloha umožňovala vždy zápis a stačilo mi to bez akýchkoľvek komplikácií na 100%, ale časy sa zjavne menia, tak idem držať trend, možno v Amerike pri práci s disketovou jednotkou mrvia obsah diskety podstatne viac ako u nás Laughing a tak sa potrebujú poistiť aby sa to nestávalo. Zase na druhú stranu - režim Read only je výborný ak založíme neznámu disketu a chceme mať naozaj istotu že takúto disketu ani náhodou neprepíšete. (Len tu spomeniem že existuje aj režim číslo 4 ktorý som práve teraz pri písaní vymyslel a bude podrobnejšie popísaný na samom konci tohoto článku - ale pozor, nemusíte si na to nachystať 4-cestný prepínač, bude zbytočný.)

 

Najprv si pozrime ako vyzerá pôvodná ešte neupravovaná časť elektroniky v Atari 1050, ktorá sa stará o režim Write protect:

 

____________________________________________________________


No a tu už je to čo BillC navrhol ako asi najjednoduchšie možné riešenie ako na to:

 

Základný princíp 3-cestného prepínača

v jednotke Atari 1050.

 

Keď sa obrázok pozriete je jasné ako jednoducho je to vymyslené - a to výborne ! Akurát stačí na základnej doske Atari 1050 rozpojiť jumper J7 a do cesty vradiť 3-cestný prepínač, ideálne páčkový. Ak sa pozriete na obrázok ešte bližšie tak na Vás vyskočia nejaké tie nezrovnalosti - a ja ich tu popíšem. Na obrázku nie je označený odpor (u mňa s označené otáznikom).  Neviem na čo tam ten odpor je - vývod prepínača č.3 treba priamo spojiť zo zemou, ten odpor tam vôbec nemá čo robiť. Ďalším negatívom sú malé odpory 180Ω ktoré sú určené pre LED diódy (proste sa do nich tlačí prúd 20mA ako o dušu), ani fototranzistor a ani obvod 74LS02 nie sú ale určené na tak veľkú záťaž, preto by sa to malo nejako slušne vyriešiť bez preťažovania týchto komponentov. Na výber je viacero možností.

 

Tu máme 3 možnosti ako tento stav uspokojivo vyriešiť :

____________________________________________________________

- nepoužijeme vôbec žiadne LED v zapojení, pretože prepínač s popisom na prednom paneli dostatočne jasne indikuje stav na ktorý je jednotka nastavená:

 

Zapojenie je jednoduchšie, na spínači voči zemi je už zo zapojenia odstránený nepotrebný odpor. Funkčnosť ostáva rovnaká ako v prvom prípade.

____________________________________________________________


2 - použijeme dve samostatné LED na indikáciu stavu v zapojení, pozor, použité LED musia byť supersvietivého typu (Super Hell):

 

Malý príkon týchto LED zabezpečí že nepríde k preťaženiu optotranzistoru a ani k preťaženiu výstupu obvodu 74LS02. Ako sa poznám tak by som tam dal namiesto 2k7 kľudne 3k3 hodnotu - aj tak to bude dostatočne svietiť. Zase nakoniec - zaradiť do série ďalší odpor na zníženie jasu LED nie je žiadna raketová veda.

____________________________________________________________

3 - posledná možnosť použijeme zase duálnu LED tak ako na úplnom začiatku, len k tomu dodáme ešte nejakú tú pomocnú "bižutériu", ktorá zabezpečí správnu funkciu bez preťaženia:

 

 

Toto je riešenie ála Igi - pridané "bižu" a jeho prípoje sú vyznačené modrou farbou, nech netreba bádať čo je pridané. Celá LED časť je riešená na tranzistorovej logike. Pretože tranzistory v zapojení invertujú vstupný signál tak sú zapojené na protiľahlé vývody ako predtým - aby zostala zachovaná správna funkcia zopnutia tej-ktorej LED. LED dostávajú nominálnu hodnotu prúdu pre združenú LED zelenej a červenej farby. Záťaž fototranzistoru a obvodu 74LS02 je minimálna, režim v ktorom sa to celé prevádzkuje je určený na trvalú prevádzku.

 

 

Typické umiestnenie 3-cestného prepínača na prednom paneli, pričom horná poloha =1. Zase raz platí ak to neoznačíte, vyznáte sa iba Vy, keď k tomu sadne niekto kto to nepozná je celkom určite v pérdeli ... takže nezabudnite na označenie, pomôžete iným a ak k tomu sadnete zase až po dlhej dobe - aj sebe.

 

____________________________________________________________

 

Teraz už menej menej vážne, nasleduje sľúbený režim numero 4:

Režim číslo 4:

- no READ, no Write ...

Nič neprečítate, nič nezapíšete ... hodne spoľahlivý režim, nie ? Zatiaľ nie je aplikovaný.

Ak máte pokazenú jednotku tak tento režim č.4 dôverne poznáte - aj bez toho že by ste po ňom túžili.

____________________________________________________________

Rád by som pripomenul že všelijaké možné spôsoby jednoduchého vypnutia režimu Write protect v disketovej jednotke Atari 1050 a tak isto aj jedného 3-cestného riešenia (síce o niečo zložitejším spôsobom - je to posledný odkaz) nájdete v týchto článkoch ktoré som už publikoval pred nejakým tým časom (teda ak Vám dnešný článok nestačil ...).

linky:

http://blog.3b2.sk/igi/post/Oprava-repair-Atari-1050-write-protect-sensor-2b-new-write-protect-switch.aspx

http://blog.3b2.sk/igi/post/Atari-Speedy-1050-part-02.aspx

http://blog.3b2.sk/igi/post/ATARI-1050-Write-protect-switch.aspx

http://blog.3b2.sk/igi/post/Hardware-modification-ATARI-1050-write-protect-bypass.aspx

____________________________________________________________

Vaše hodnotenie, Rate post:

11_2018 Blog, Notes.

By Administrator at novembra 01, 2018 15:15
Filed Under: Blog

01.11.2018

Počasie nám praje, v Amerike nezaháľajú a pripravili mi podklad pre dnešný článok. Niečo som prevzal (celý 1 obrázok), niečo upravil a tak teraz môžete (ak chcete) čítať.

3-cestný prepínač pre nastavenie režimov disketovej jednotky Atari 1050:

http://blog.3b2.sk/igi/post/3-cestny-prepinac-Atari-1050-3-mode-Write-Protect-Switch-Methods.aspx

_____________________________________________________

05.11.2018

Ešte nejaké to programové vybavenie v jazyku Basic pre SBC6502:
http://blog.3b2.sk/igi/post/SBC6502-17-software-Basic-programs.aspx

______________

Zdá sa že som na oldcompe prešvihol kúpu disketovej jednotky Atari 1050, pritom je jej majiteľ priamo tu v BA. Hmm, jeden deň som nebol na webe ... Fakt smola.

____________________________________________________________

07.11.2018

Benchmarkové testy na SBC6502:

http://blog.3b2.sk/igi/post/SBC6502-18-software-Benchmarks.aspx

____________________________________________________________

 

11.11.2018

Voľné pokračovanie benchmarkových testov z predchádzajúceho článku:

http://blog.3b2.sk/igi/post/SBC6502-19-software-Benchmarks-Part2.aspx

 

___________________________________________________________

15.11.2018

Štvrtá časť Atari čriepkov:

http://blog.3b2.sk/igi/post/Atari-criepky-Atari-tidbits-4.aspx

____________________________________________________

 

 

21.11.2018

Oprava chyby v schémach disketovej jednotky Atari XF551:

http://blog.3b2.sk/igi/post/Oprava-bugu-v-scheme-Atari-XF551.aspx

_____________________________________________________

23.11.2018

Som zvedavý kam to dospeje. Teda myslím tým ceny 8-bit počítačov Atari. Na bazos.sk nájdete 800XE+mgtf za 130.- €uro. V roku 2010 som zohnal také niečo za 10.-, akurát mal majiteľ podmienku aby som mu vedel povedať na čo to chcem použiť. Dnes keby som povedal že to potrebujem tak dajú cenu na dvojnásobok. No, časy sa menia, ľudia tiež, akurát ľudska blbosť zostáva rovnaká (nesúvisí priamo s touto poznámkou). Už len dodám že za tie isté peniaze tam zoženiete Atari 1040 STF + monitor SM124 - a tak isto aj konzolu PS3 - tá ale nie je od Atari, tú urobila SONY.

____________________________________________________________

26.11.2018

V predchádzajúcom odstavci som písal niečo o blbosti, prešlo pár dní a tak poďme na konkrétny prípad ktorý som si dnes prečítal:

Hovadina vo fóre

Bože, divíte sa že to tak u nás vyzerá keď máme zástupy takýchto "Einsteinov" ?

Myšlienka pretavená takýmto odborníkom do praxe:

Pre tých ktorým sa to celé nechce čítať - zober si 10kW generátor, pripoj na neho 1kW elektromotor - roztoč ním otáčky generátoru nad stanovenú pevnú hodnotu a nadbytočnú vyrobenú elektrinu dodaj naspäť do el.siete - a peniažky sa kotúľajú a kotúľajú ...

A máme ďalšieho milionára. (Alebo skôr budúceho a trvalého návštevníka Pinelovej nemocnice.)

Fakt ma to občas fascinuje kam to celé ide.

_____________________________________________________

Vaše hodnotenie, Rate post:

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch, predtým som pracoval ako IT špecialista na počítačové siete a redakčné systémy pre viaceré denníky - až som pred rokmi nakoniec v jednom z nich zakotvil a kde som to potiahol až do konca mojej profesnej kariéry.

Rok, mesiac, počet článkov: