Expanduino_I

Tvoříte zajímavý projekt? Pochlubte se s ním.
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Ludek
Příspěvky: 304
Registrován: 02 pro 2019, 08:14
Bydliště: České Budějovice

Re: Expanduino_I

Příspěvek od Ludek » 17 lis 2023, 15:27

Dobrá práce, klobouk dolů.

Uživatelský avatar
gilhad
Příspěvky: 825
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 23 lis 2023, 06:26

Tak jsem rozchodil pro novou 6809 ROM (teda, ona je to 6309, tak už toho taky využívám)-

- Call (klasicky návratová adresa na zásobník a skok, pokud se to vrátí, pokračuje Loop bez inicializace),
- Return (neuvěříte, co to udělá :lol: ) (a můžu tak volat i sám sebe a pak se vrátit bez resetu)
- příkaz : (aka IHEX) - sežere zbytek řádku, zinterpretuje a nacpe do RAM, takže už můžu nahrávat přeložené programy (To mi příšerně failovalo při copy-paste, pak jsem přišel na to, že to je prostě pomalé a nestíhá zpravovávat znaky dost rychle, takže jsem to přepsal, že si to cpe na zásobník, pak zkontroluje checksum a když sedí, tak to přesune do cíle (jinak zamítne celé) a odsouhlasuje to až po zpracování, zatímco pastovací program posílá další řádek až po promptu - a tím pádem, pokud bude cíl v ROM, tak můžu do RAM vrazit vypalovadlo a nechat to vypálit - při zápisu do ROM se na ni nesmí šahat) (stejně přepisování ROM asi budu běžně dělat z uživatelského programu (čili z RAM), abych si nepřepsal kód pod nohama, ale pro různé patche a jiné fixy bude prima to mít už v ROMce)
- Dump - zatím trochu zjednodušený, ale už funguje (odpoledne přijemně strávené hledáním nepochopitelné chyby included - nakonec chyběl jeden jediný vykřičník, jako lokální návěští a tak se skákalo kamsi zcela jinam) a ukazuje i ASCII část (ADDR HH HH HH ..... HH '..ASCI dump..')

A až to bude schopné se samo vypálit do ROMky, tak to udělám a nazvu to Pluto, aby to mělo nějaké jméno :D

Uživatelský avatar
gilhad
Příspěvky: 825
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 07 pro 2023, 04:20

Tak už mi to chodí - teda aspoň Castor je ve stavu, kdy se dá nazvat plně funkčním alespoň na nejzákladnější úrovni

Například se dá do něj nabootovat, relokovat ho do RAM a tam z něj do ROM vypálit update.
(A to i přez to, že ta EEPROM zlobí a zápisy do ní nejsou spolehlivé, takže je nutno je opakovat, dokud se neuchytí správně. A aby se moc neošoupala, tak se vypaluje jen to, co je jinak (po bytech))

Z expanduina (pokud ho najde) si stáhne a spustí soubor /BOOT.HEX
Až to Expanduino bude umět, tak podobně bude moct spustit cokoli.
Umí to číst RTC a taky nastavit čas.
Umí načíst a spustit IHEX ze vstupu, nebo expanduina.
Umí vypisovat paměť, zavolat kód z libovolné adresy, porovnat dva bloky paměti, smazat RAM (přepsat daným bytem)

Start:

Kód: Vybrat vše

--==### CASTOR ###==--
v.0.1.0-r3 / master
07.12.2023 01:44:51
Address range: C000 - D8D8 (Total 18D8 ROM)
+++0000+
## Expanduino_I v.00.00.03 (Nano Every)
# Expanduino detected
 (Channel set to 1 )
Boot
*BOOT
Main Loop
> ### Expanduino_I v.00.00.03 (Nano Every)

> :20 2200 ################################ ;)
> :20 2220 #####=########################## ;)
> :20 2240 ################################ ;)
> :20 2260 #######=######################## ;)
> :20 2280 ################################ ;)
> :20 22A0 ################################ ;)
> :20 22C0 ################################ ;)
> :1A 22E0 ########################## ;)
> :00 2200  ;)

písmenko A přepíná AutoExec

Kód: Vybrat vše

> a Autoexec is now allowed

> exec pending:

Hello World!

Welcome back in Loop
>


Help obsahuje nápovědu takřka ke všemu (a ještě dumpne registry a spol)

Kód: Vybrat vše

> ?
Regs: A: 3F; B: 00; CC: 59=eFhINzvC; DP: 00; X: CAF2; Y: C19F; S: 7FAC; U: 7FAC; W: 1000; V: 8C9E;
 PC[CAF5]: 27 05 17 F8 E0 20 EB 17 F8 C1 39 17 FB 0C ^ 17 F5 BA 30 8D 08 4C 17 F8 BD 30 8D 0A 99 17 F8;
 St[7FAC]: C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22 00 01 90 00 04 90 01 03 00 03 90 00 08 90;

--==### CASTOR ###==--
v.0.1.0-r3 / master
07.12.2023 01:44:51
Address range: C000 - D8D8 (Total 18D8 ROM)
 Help:
Q, q - quit Castor (Reboot computer)
R, r - return to calling program
C, c - call address
> - Relocate to new RAM place
D, d - dump memory
: - IHEX (type 0 & 3 ( & 1))
# - the rest of line is Comment (and so ignored)
* - the rest of line is StarCommand for Expanduino
^ - send 1 byte ControlCommand to Expanduino
| - SetAltChannel for communication with Expanduino
A,a - SwapAutoexec for IHEX etc.
F, f - SwapFastIHEX - fast=only RAM
` - Test (do not use)
~ - Diff memory to memory
K - KillROM (do not use)
Z, z - Zero - clear RAM to 00 (or any value)
?, H, h - this help
SYSTEM_Autoexec_allowed:  Yes 
SYSTEM_FastIHEX_allowed:  No 
LOOP.exec.pending:  No 
LOOP.exec.addr: 2200
Expanduino detected:  Yes 
> 

Obrácený apostrof zavolá SWI, SWI2 a SWI3 (SW interrupty) jako test a ty skutečně projdou kudy mají

Kód: Vybrat vše

> ` TEST

Regs: A: 60; B: 00; CC: D1=EFhInzvC; DP: 00; X: D2D8; Y: C19F; S: 7F9E; U: 7FAC; W: 1000; V: 8C9E;
 PC[C04B]: 00 1D 12 20 1E 12 12 17 05 BA 3B 17 05 B6 ^ 3B 17 05 B2 3B 17 05 AE 3B 17 05 AA 3B 17 05 A6;
 St[7F9E]: D1 60 00 10 00 00 D2 D8 C1 9F 7F AC CC 0C C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22;

Regs: A: 60; B: 00; CC: D1=EFhInzvC; DP: 00; X: D2D8; Y: C19F; S: 7F9E; U: 7FAC; W: 1000; V: 8C9E;
 PC[C057]: 05 B6 3B 17 05 B2 3B 17 05 AE 3B 17 05 AA ^ 3B 17 05 A6 3B 17 05 A2 3B 10 CE 7F B0 30 8C 99;
 St[7F9E]: D1 60 00 10 00 00 D2 D8 C1 9F 7F AC CC 0E C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22;

Regs: A: 60; B: 00; CC: D1=EFhInzvC; DP: 00; X: D2D8; Y: C19F; S: 7F9E; U: 7FAC; W: 1000; V: 8C9E;
 PC[C05B]: 05 B2 3B 17 05 AE 3B 17 05 AA 3B 17 05 A6 ^ 3B 17 05 A2 3B 10 CE 7F B0 30 8C 99 34 10 86 00;
 St[7F9E]: D1 60 00 10 00 00 D2 D8 C1 9F 7F AC CC 11 C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22;

> 

Taky má vlastní stránku http://8bit.gilhad.cz//6809/Castor.html, která časem rozkošatí :D

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti