SBC6502 - 10 - software.

By Administrator at June 29, 2016 05:46
Filed Under: SBC6502

 

Keď už máme postavený mikropočítač, tak by sa patrilo mať k nemu aj nejaké vlastné programové vybavenie, postupne sem budem nejaké tie "programové drobotiny" dopĺňať (tu uvedené mini programy fungujú bezo zmeny vo všetkých verziách SBC6502). No a najjednoduchšie sa veci píšu v Basicu - aj keď rýchlosť nie je najväčšia, ak Vám nevyhovuje - tak potom choďte na strojový kód - tam je to vykonávanie o poznanie rýchlejšie.

 

Výpisy dávam tak,  že sa bez problémov cez Hyperterminál nakopírujú do SBC6502 a následne spustia príkazom RUN.

(V zásade sa jedná o textové súbory.)

 

Pripomeňme si nasledovné - Basic príkazy ktoré sú k dispozícii pre SBC6502:


ROM BASIC - details of what has been included/excluded

INCLUDED TOKENS

END, FOR, NEXT, DATA, INPUT, DIM, READ, LET, GOTO, RUN, IF, RESTORE, GOSUB, RETURN, REM, STOP, ON, NULL, WAIT, DEF, POKE, PRINT, CONT, LIST,CLEAR, NEW, TAB(, TO, FN, SPC(, THEN, NOT, STEP, SGN, INT, ABS, USR, FRE, POS, SQR, RND, LOG, EXP, COS, SIN, TAN, ATN, PEEK, LEN, STR$, VAL, ASC, CHR$, LEFT$, RIGHT$, MID$

+, -, *, /, ^, AND, OR, >, +, <


_________
UNPROGRAMMED TOKENS

LOAD, SAVE

___________________________________________________________

Stopnutie počas behu programu sa robí pomocou  CONTROL+C,  spôsobí to potom:

"BREAK IN LINE XXXX"

(v prerušenom programe pokračujeme ďalej bez problémov ak použijeme príkaz CONT + Enter)

____________________________________________________

Poznámka:

Príkaz PRINT CHR$(12), ktorý tu v programoch robí "zmazanie" obrazovky funguje pod programom Hyperterminal, preto tento príkaz nemusí korektne fungovať pod inými terminálovými programami ! Toto platí aj pre niektoré iné CHR$, takže znova upozorňujem - programy som testoval pod Hyperterminálom !

 

Jednoduchý trik ako dosiahnuť rozlíšenie 80 znakov riadku:

(ak máme nastavených trebárs 72 znakov v riadku) - bez potreby reštartu SBC6502 stačí zadať príkaz POKE 15,80 - alebo priamo zadať tento príkaz do prvého riadku Vášho programu - tak isto po spustení programu sa potom automaticky nastaví rozlíšenie na 80 znakov v riadku.

___________________________________________________________

 

Všetky tu uvedené programy fungujú v základnej, teda už v 7 čipovej verzii SBC6502 (x-tal SBC6502 = 1.8432 MHz) a samozrejme aj na neskôr rozšírených verziách.

 

Program č.1 - výpočet 2 paralelne zapojených odporov, tak isto je to zároveň výpočet pre 2 do série zapojené kondenzátory:

 PRG1_2xPR_2xSC_bas.txt (615,00 bytes)

 

____________________________________________________________

Program č.2 - výpočet dvoch sériove zapojených odporov, tak isto je to zároveň aj výpočet pre 2 paralelne zapojené kondenzátory:

PRG2_2xSR_2xPC_bas.txt (604,00 bytes)

 

 

Tieto dva programy som si napísal z dlhej chvíle, niečím som postavený SBC6502 predsa len potreboval otestovať ...

____________________________________________________

Program č.3 - Logoutov retrobenchmarkový test, pôvodný zdroj: Retrobenchmark test

Program som mierne upravil pre SBC6502 - nevyžaduje napríklad zápis pre premenné v tvare LET= atď., dokonca ho práve zápis bez LET urýchľuje o pár percent v tomto programe (je to cca 8%) - a to je už merateľné, čiže občas len treba skúšať čo SBC6502 pri výpočte dokáže urýchliť. Je to síce len drobnosť, ale výsledkom je významné zrýchlenie spracovania dát.

PRG3_Retrobenchmark_test_bas.txt (293,00 bytes)

 

Dosiahnutý čas tohoto testu (x-tal =1.8432MHz) = 36 sec pre W=250


Dosiahnutý čas testu (x-tal=6.00MHz) = 11.30 sec. pre W=250


V prípade ak zachováme pôvodnú štruktúru LET = atď. sa výsledný čas predĺži na cca 39 sekúnd. Skúšal som nastaviť hodnotu až na W=6000, ale to už potom "spapá" skoro kompletne celú dostupnú 32kB RAM. Čas pre vykonanie sa potom predĺži tesne nad 1 hodinu. Maximálna možná použitá hodnota W=7500 kedy už zostáva voľných iba niečo nad 1800 byte RAM. Čas ktorý program potrebuje na vykonanie potom už dosahuje na hodnotu 1h23m52s ...

 

Dosiahnutý čas tohoto testu (x-tal =1.8432MHz) = 1h23m52sec pre W=7500


Dosiahnutý čas testu (x-tal=6.00MHz) =  25m27sec. pre W=7500

 

Kto chce nech si testuje aj takéto hodnoty, ale funguje to aj pri takomto čísle !

(07.10.2019 - doplnené hodnoty testu pri x-tal =6.00MHz)

____________________________________________________________

Programové vybavenie pre rozširujúcu LED dosku:

Pozor, program je urobený na takt hodín =1.8432MHz !

(pri rýchlejšom takte sa urýchli zmena zobrazenia na LED)


Program č.4 -Basic program - efekt "KNIGHT RIDER":

PRG4_Knight_rider_bas.txt (1,30 kb)

(adresy čipu 8255 sú nastavené pre SBC6502 s verziou 32kB RAM, v REM riadku je už pripravené aj nastavenie pre 40kB a 46kB RAM verziu)

_ _ _ _ _ _ _ _ _ _ _ _

Program č.5 - Basic program rozšírené LED DEMO SHOW (obsahuje 9 rozličných  efektov):

PRG5_LED_demo_show_bas.txt (5,00 kb)

(adresy čipu 8255 sú nastavené pre SBC6502 s verziou 32kB RAM, v REM riadku je už pripravené aj nastavenie pre 40kB a 46kB RAM verziu)

___________________________________________________________

TESTY RAM

Pozor, prvý 1kB RAM sa netestuje - v ňom sa nachádzajú pracovné adresy  SBC6502 + je tam umiestnený aj náš testovací Basic-ový program !

 

Program č.6 - jednoduchý RAM MEMORY TEST pre verziu 32kB RAM, testuje sa tu každá pamäťová bunka RAM v rozsahu 1024-32767(dec), postupne sa testujú na obsah 0h, 55h, AAh, FFh.

PRG6a_Memory_test32kB_bas.txt (537,00 bytes)

Tento program postupne vypisuje práve testované 1kB bloky RAM.

- - - - - - - - - - - - - - - - 

Upravená verzia toho istého (len trošku lepšia otimalizácia - ale nárast rýchlosti je fakt merateľný):

PRG6a1_Memory_test.txt (489,00 bytes)

Testuje sa každá pamäťová bunka RAM v rozsahu 1024-32767 (dec), postupne sa testuje na obsah 0h, 55h, AAh, FFh.

- - - - - - - - - - - - - - - - - - - -

Tento program robí kompletný test RAM v rozsahu 1024-32767 (dec) na všetky obsahy buniek v plnom rozsahu 0h-FFh, pozor, trvá to fakt dlho ... (je to Basic), vypisuje sa každá testovaná bunka:

PRG6a2_Memory_test31kB_bas_full.txt (435,00 bytes)

dá sa aj takto:

PRG6a2_Long Memory_test bas_full.txt (412,00 bytes)

Rýchlosť ? Otestuje kompletne - 4kByte RAM za hodinu ... a zase na druhú stranu ak to pobeží tak dlho a zbehne to bez chyby tak máte naozaj 100%-ne zaručene funkčnú SBC6502-ku.

- - - - - - - - - - - - - - - - - - - -

Nasleduje najrýchlejší Basic-ový testovací program pamäte - riešené ako podprogram, najprv sa plnia všetky bunky jedným obsahom a potom sa hneď tento obsah zase na jeden záťah testuje. Jednoznačne najrýchlejší program.


PRG6a3_Memory_test31kB_bas.txt (433,00 bytes)

Testuje sa každá pamäťová bunka RAM v rozsahu 1024-32767 (dec), postupne sa testujú bunky RAM na obsah (hexa) 0h, 55h, AAh, FFh,  dekadicky je to potom 0d, 85d, 170d, 255d.

______________________________________________________________________________

Program  - jednoduchý MEMORY TEST pre verziu 40kB RAM:

PRG6b_Memory_test40kB_bas.txt (537,00 bytes)

Testuje sa každá pamäťová bunka RAM v rozsahu 1024-40959 (dec), postupne sa testuje na obsah 0h, 55h, AAh, FFh.

____________________________________________________

Program - jednoduchý MEMORY TEST pre verziu 46kB RAM:

PRG6c_Memory_test46kB_bas.txt (539,00 bytes)

Testuje sa každá pamäťová bunka RAM v rozsahu 1024-47103 (dec), postupne sa testuje na obsah 0h, 55h, AAh, FFh.

_____________________________________________________________________________

Program č.7 - ASCII MANDELBROTova množina - 32kB RAM - základná verzia:

PRG7a_Mandelbrot_ASCII_bas.txt (392,00 bytes)



Poznámka: program sa dá "zraziť" do menšieho počtu riadkov, potom ale prestáva byť prehľadným, ponúkam jedno z možných riešení:

"Stlačená" verzia:

PRG7b_Mandelbrot_ASCII_bas.txt (342,00 bytes)

_________________________________________________________

Program č.8 - Basic CREATIVE COMPUTER - 32kB RAM:

(oddychovka)

PRG8_Creative_computer_bas.txt (3,38 kb)

 

_________________________________________________________

Programč.9 - LUNAR LANDING SIMULATION - 32kB RAM

(Program som upravil na rozlíšenie 80 znakov v riadku a pre SBC6502 terminálové zobrazenie)


 

PRG9_LEM1_bas.txt (2,96 kb)

 

 

__________________________________________________________

Program č.10 - konverzia údajov medzi Celsiom, Fahrenheitom a Kelvinom navzájom:

 

PRG_10_temperature_conversion_bas.txt (1,59 kb)

Občas treba prekonvertovať teplotu do inej sústavy, takže vtedy sa tento program hodí, navyše bez problémov funguje aj v iných Basicoch.

_________________________________________________________

Jednoduchý krátky test RAM, orezané všetko čo sa len dá, automaticky rozpozná verziu s 46kB, 40kB alebo 32kB RAM. Dôvod prečo sú všetky zbytočnosti orezané je ten, že celý program sa musí zmestiť do prvého kB pamäte (preto sa testuje až druhý kB RAM a vyššie):

Quick_memory_test_32kB_46kB_bas.txt (552,00 bytes)

Testuje sa každá pamäťová bunka RAM (mimo prvého kB), postupne sa testuje na obsah 0h, 55h, AAh, FFh.

Poznámka:

Na riadok č.15 by sa program nemal dostať v žiadnom prípade, preto je ho možné vypustiť.

__________________________________________________________

 

Viete ako na to že ak máte počítač s Win7 a potrebujete tam mať aj Hyperterminál, ktorý už súčasťou sedmičiek nie je ?

Je to celkom jednoduché, stačí ak si z počítača kde je nainštalovaný Hyperterminál (typicky sa jedná o počítač s WinXP) stiahnete si nasledovné súbory a následne si ich prekopírujete do svojho samostatného adresára, jedná sa o tieto súbory:


hypertrm.dll
hticons.dll
hypertrm.exe
hypertrm.hlp
hypertrm.chm

 

Následne potom spustíte súbor hypertrm.exe.

Je to funkčné vrátane ikôn a tak isto aj nápovedy.

___________________________________________________

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:

Comments

6/16/2018 6:56:30 PM #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

Comments are closed

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Tento blog slúži na zobrazenie mojich záujmov - je to môj vlastný pohľad na veci, napriek  tomu dúfam že na mojich stránkach nájdete aj to čo hľadáte ...