Konference: Počítač SHARP MZ-800 a emulátory
Od: | marcel vasak |
Datum: | 25.10.2004 22:05 |
Předmět: | Re: Rozsireni Ramky |
Dobrý den,
25. října 2004, 18:23:03, napsal jste:
MUzes poslat ten program jako *.mzf nebo v podobnem soubou aby sel
nahrat do sharpa??
falcen99
DLspc> Schema:
DLspc> /---------------\' /---------------\'
/----------------\'
DLspc> A06-----|A0 | LS138 |/Q0| D0-----|D0 | LS273 | Q0|-------|A8 | 29F010
| D0|-----D0
DLspc> A07-----|A1 | |/Q1| D1-----|D1 | | Q1|-------|A9 | amd
| D1|-----D1
DLspc> A01-----|A2 | |/Q2| D2-----|D2 | | Q2|-------|A10|
| D2|-----D2
DLspc> | | |/Q3| D3-----|D3 | | Q3|-------|A11|
| D3|-----D3
DLspc> | | |/Q4| D4-----|D4 | | Q4|-------|A12|
| D4|-----D4
DLspc> A02-----|/E0| |/Q5| D5-----|D5 | | Q5|-------|A13|
| D5|-----D5
DLspc> A03-----|/E1| |/Q6| D6-----|D6 | | Q6|-------|A14|
| D6|-----D6
DLspc> A04-----|E2 | |/Q7|--\' D7-----|D7 | | Q7|-------|A15|
| D7|-----D7
DLspc> \'---------------/ | Ucc--|/MR| | | Ucc--|A16|
| |
DLspc> | /------|CP | | | Ucc--|A17|
| |
DLspc> /---------------------/ | \'---------------/ Ucc--|A18|
| |
DLspc> | | A08-----|A0 |
|/OE|-----/RD
DLspc> | /---------------\' | A09-----|A1 |
|/WR|-----/WR
DLspc> A00-----|A0 | LS138 |/Q0|-----/ A10-----|A2 |
| |
DLspc> \'--|A1 | |/Q1|-----\' A11-----|A3 |
| |
DLspc> \'--|A2 | |/Q2| | A12-----|A4 |
| |
DLspc> | | | |/Q3| | A13-----|A5 |
| |
DLspc> | | | |/Q4| | A14-----|A6 |
| |
DLspc> \'--|/E0| |/Q5| | A15-----|A7 |
| |
DLspc> /IORQ---|/E1| |/Q6| | | |
| |
DLspc> A05-----|E2 | |/Q7| \'------------------------------|/CS|
| |
DLspc> \'---------------/
\'----------------/
DLspc> A ROMku jsem naprogramoval. Nasledujici program je pro Flash AMIC 29F040A
z GM
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Cteni 16k z Flash 0c000h - 0ffffh na adresy v ram 08000h- 0Bfffh
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 1200 ld HL, 0bfffh 21 FF BF ; adresa posledniho bajtu
v ram
DLspc> 3 ld BC, 0ff31h 01 31 FF ; B = pocitadlo, C =
datovy port
DLspc> 6 xor A AF ; A = vyssi bajt adresy
Flash +1
DLspc> 7 dec A 3D ; vyssi bajt adresy Flash
-1
DLspc> 8 out (030h), A D3 30 ; posli vyssi bajt adresy
Flash
DLspc> A indr ED BA ; cti 255 bajtu z Flash
DLspc> C ind ED AA ; cti 1 bajt z Flash
DLspc> E cp 0c0h FE C0 ; cetli jsme naposled?
DLspc> 1210 jr NZ, 01207h 20 F5 ; ne cti dalsi
DLspc> 2 ret C9 ; konec
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Posli programovaci sequenci do Flash: 5555-AA, 2AAA-55, 5555-(A)
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 6000 ld DE, 05555h 11 55 55 ; 3 adresa do DE
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Posli programovaci sequenci do Flash: 5555-AA, 2AAA-55, (DE)-(A)
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 6003 push DE D5 ; uloz hodnoty
DLspc> 4 push AF F5
DLspc> 5 ld DE, 05555h 11 55 55 ; 1 adresa
DLspc> 8 ld A, 0aah 3E AA ; 1 slovo
DLspc> A call 06017h CD 17 60 ; posli
DLspc> D ld DE, 02AAAh 11 AA 2A ; 2 adresa
DLspc> 6010 ld A, 055h 3E 55 ; 2 slovo
DLspc> 2 call 06017h CD 17 60 ; posli
DLspc> 5 pop AF F1 ; obnov hodnoty
DLspc> 6 pop DE D1
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Posli bajt z 'A' na adresu 'DE' ve Flash
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 6017 ld C, 030h 0E 30 ; port adresy
DLspc> 9 out (C), D ED 51 ; posli adresu
DLspc> B inc C 0C ; datovy port
DLspc> C ld B, E 43 ; do 'B' dej nizzsi bajt
adresy
DLspc> D out (C), A ED 79 ; posli bajt
DLspc> F ret C9
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Cti bajt z adresy 'DE' ve Flash do 'A'
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 6020 ld C, 030h 0E 30 ; port adresy
DLspc> 2 out (C), D ED 51 ; posli adresu
DLspc> 4 inc C 0C ; datovy port
DLspc> 5 ld B, E 43 ; do 'B' dej nizzsi bajt
adresy
DLspc> 6 in A, (C) ED 78 ; cti bajt
DLspc> F ret C9
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Programuj bajt HL-adresa bajtu v pameti, DE-adresa bajtu ve flash
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 6029 call 0604eh CD 4E 60 ; reset Flash
DLspc> C call 06020h CD 20 60 ; cti bajt
DLspc> F cp (HL) BE ; je shodny?
DLspc> 6030 ret Z C8 ; pokud ano nic
neprogramuj
DLspc> 1 push DE D5 ; schovej adresu
DLspc> 2 ld A, 0a0h 3E A0
DLspc> 4 call 06000h CD 00 60 ; posli 5555-AA, 2AAA-55,
5555-A0
DLspc> 7 pop DE D1 ; obnov adresu
DLspc> 8 ld A, (HL) 7E ; do A bajt
DLspc> 9 call 06017h CD 17 60 ; a posli
DLspc> C and 080h E6 80 ; orizni na 7 bit
DLspc> E ld C, A 4F ; a uloz do C
DLspc> F push BC C5
DLspc> 6040 call 06020h CD 20 60 ; cti bajt
DLspc> 3 pop BC C1
DLspc> 4 ld B, A 47 ; uloz precteny bajt do
B
DLspc> 5 and 080h E6 80 ; orizni na 7 bit
DLspc> 7 cp C B9 ; shoduje se?
DLspc> 8 jr Z, 0604eh 28 04 ; ano konec (reset
Flash)
DLspc> A bit 5, B CB 68 ; je konec programovani?
DLspc> C jr NZ, 0603fh 20 F1 ; ne testuj dal
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Reset Flash
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 604E ld A, 0f0h 3E F0
DLspc> 6050 out (031h), A D3 31
DLspc> 2 ret C9
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; Sektor Erase
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> 6053 call 0604eh CD 4E 60 ; reset Flash
DLspc> 6 push DE D5
DLspc> 7 ld A, 080h 3E 80
DLspc> 9 call 06000h CD 00 60 ; posli 5555-AA, 2AAA-55,
5555-80
DLspc> C pop DE D1
DLspc> D ld A, 030h 3E 30
DLspc> F call 06003h CD 03 60 ; posli 5555-AA, 2AAA-55,
(DE)-30
DLspc> 6062 ld B, 0 06 00 ; chvili cekej
DLspc> 4 ex (SP), HL E3 ; kdyz necekala tak mi
Flashka nahodne
DLspc> 5 djnz 06064h 10 FD ; kolabovala v
nasledujici operaci
DLspc> 7 call 06020h CD 20 60 ; cti bajt
DLspc> A rlca 07 ; je 7 bit v jednicce
DLspc> B jr NC, 06062h 30 F5 ; kdyz ne tak cekej
DLspc> D jr 0604eh 18 DF ; a udelej reset
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; HLAVNI PROGRAM - 16k z ram 02000h- 05fffh do Flash 0c000h - 0ffffh
DLspc>
;-------------------------------------------------------------------------------
--------------------
DLspc> ; kontrola
DLspc> 606F call 0604eh CD 4E 60 ; reset Flash
DLspc> 6072 ld HL, 02000h 21 00 20 ; adresa v pameti
DLspc> 5 ld DE, 0c000h 11 00 C0 ; adresa Flash
DLspc> 8 ld C, 0 0E 00 ; stav kontroly 1=nutnost
programovat
DLspc> A push BC C5
DLspc> B call 06020h CD 20 60 ; cti bajt
DLspc> E pop BC C1
DLspc> F cp (HL) BE ; je to shodne?
DLspc> 6080 jr Z, 06089h 28 07 ; pokud ano tak dalsi
bajt
DLspc> 2 and (HL) A6 ; test zda je mozno Flash
programovat
DLspc> 3 cp (HL) BE ; nebo je nutno
nejdrive
DLspc> 4 call NZ, 06053h C4 53 60 ; sektor vymazat
DLspc> 7 ld C, 1 0E 01 ; stav kontroly - nutno
programovat
DLspc> 9 inc HL 23
DLspc> A inc DE 13
DLspc> B ld A, D 7A ; jeste mame
DLspc> C or A B7 ; dalsi bajt?
DLspc> D jr NZ, 0607ah 20 EB ; ano tak dalsi
DLspc> F dec C 0D ; je nutno Flash
programovat?
DLspc> 6090 ret NZ C0 ; kdyz ne tak konec
DLspc> ; programovani
DLspc> 6091 ld HL, 02000h 21 00 20 ; adresa v pameti
DLspc> 4 ld DE, 0c000h 11 00 C0 ; adresa Flash
DLspc> 7 call 06029h CD 29 60 ; programuj bajt
DLspc> A inc HL 23
DLspc> B inc DE 13
DLspc> C ld A, D 7A ; jeste mame
DLspc> D or A B7 ; dalsi bajt?
DLspc> E jr NZ, 06097h 20 F7 ; ano tak dalsi
DLspc> ; kontrola naprogramovani
DLspc> 60A0 ld HL, 01fffh 21 FF 1F ; adresa v pameti -1
DLspc> 3 ld DE, 0bfffh 11 FF BF ; adresa Flash -1
DLspc> 6 inc HL 23
DLspc> 7 inc DE 13
DLspc> 8 ld A, D 7A ; jeste mame
DLspc> 9 or A B7 ; dalsi bajt?
DLspc> A ret Z C8 ; ne konec
DLspc> B call 06020h CD 20 60 ; cti bajt
DLspc> E cp (HL) BE ; shoduji se?
DLspc> F jr Z, 060a6 28 F5 ; ano testuj dalsi
DLspc> 60B1 call 03c3 CD C3 03 ; vypis bajt z Flash
DLspc> 4 call 0ch CD 0C 00 ; vypis mezeru
DLspc> 7 call 03bah CD BA 03 ; vypis adresu pameti
DLspc> A call 0ch CD 0C 00 ; vypis mezeru
DLspc> D ld A, (HL) 7E
DLspc> E jp 03c3h C3 C3 03 ; vypis bajt z pameti
--
S pozdravem,
falcen99
falcen99 tu byla ta zakroucena vec seznam.cz
Ostatní příspěvky vlákna:
[2004/1 (1)] [2004/2 (1)] [2004/4 (33)] [2004/5 (34)] [2004/6 (12)] [2004/7 (1)] [2004/8 (12)] [2004/9 (31)] [2004/10 (52)] [2004/11 (43)] [2004/12 (4)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]