Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 12 zpráv

IFF2?

David Luftner SHARP MZ-800

Zdravim, muzete mi nekdo osvetlit co dela nasledujici podprogram?

PUSH	AF
loop: LD	A, I
PUSH	AF
POP	HL
LD	A, I
LD	A, L
PUSH	AF
POP	HL
CP	L
JR	NZ, loop
LD	(data), A
DI
POP	AF
RET
nasleduje prace s VRAM

Diky David

Re: IFF2?

Michal Hučík SHARP MZ-800

ech .. to je zajímavá pastička na disassemblery :)) Z ceho to je? To by 
asi chtelo videt na zivo v debuggeru ...


David Luftner (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (21 řádků)
> Zdravim, muzete mi nekdo osvetlit co dela nasledujici podprogram?
>
> PUSH	AF
> loop: LD	A, I
> PUSH	AF
> POP	HL
> LD	A, I
> LD	A, L
> PUSH	AF
> POP	HL
> CP	L
> JR	NZ, loop
> LD	(data), A
> DI
> POP	AF
> RET
> nasleduje prace s VRAM
>
> Diky David
> ---
>   

Re: IFF2?

+GAMA SHARP MZ-800

Zobrazit citovaný text (6 řádků)
>PUSH	AF                   ; nezájem, jen ukládá AF
>loop: LD	A, I          ; I do A (nezpracuje se, jen se později přepíše)
>PUSH	AF                   ; A(=I) do H, F (state 1) do L      - state 1 here
>POP	HL
>LD	A, I                         ; I do A (nezpracuje se, jen se později
 přepíše)
                                      ; není mi jasné, není tam překlep?
Jinak by tato instrukce neměla význam.
Zobrazit citovaný text (11 řádků)
>LD	A, L                        ; přesune původní obsah F (state 1) do A
>PUSH	AF                  ; původní F (state 1) do H, F (state 2) do L    -
state 2 here
>POP	HL
>CP	L                    ; porovnání původního F (state 1) s nedávným F
(state 2)
>JR	NZ, loop               ; dokud se navzájem nerovnají
>LD	(data), A               ; při nějaké smysluplné hodnotě
>DI
>POP	AF                 ; nezájem, jen obnoví AF a vrátí se
>RET
Fakt záhada.

Re: IFF2?

Vaclav Peroutka SHARP MZ-800

Zobrazit citovaný text (13 řádků)
> ----------------------------------------
> 
> 
> >PUSH	AF                   ; nezájem, jen ukládá AF
> >loop: LD	A, I          ; I do A (nezpracuje se, jen se později přepíše)
> >PUSH	AF                   ; A(=I) do H, F (state 1) do L      - state 1
 here
> >POP	HL
> >LD	A, I                         ; I do A (nezpracuje se, jen se později
> přepíše)
>                                       ; není mi jasné, není tam překlep?
Jinak
> by tato instrukce neměla význam.
Co presne je IFF2 ? Neni "ld a,i" potreba kvuli tomu, aby se nejak spustilo
zpracovani IFF2 ?

Zobrazit citovaný text (20 řádků)
> >LD	A, L                        ; přesune původní obsah F (state 1) do A
> >PUSH	AF                  ; původní F (state 1) do H, F (state 2) do L   
-
> state 2 here
> >POP	HL
> >CP	L                    ; porovnání původního F (state 1) s nedávným F 
(state
> 2)
> >JR	NZ, loop               ; dokud se navzájem nerovnají
> >LD	(data), A               ; při nějaké smysluplné hodnotě
> >DI
> >POP	AF                 ; nezájem, jen obnoví AF a vrátí se
> >RET
> 
> Fakt záhada.
> 
> ---
> 
> 
> 

Re: IFF2?

+GAMA SHARP MZ-800

Zobrazit citovaný text (2 řádky)
>Co presne je IFF2 ? Neni "ld a,i" potreba kvuli tomu, aby se nejak spustilo
 zpracovani IFF2 ?
Kopíruje IFF2 do P/V.
Pravda, IFF2 není v rámci F běžně dostupný, pomocí LD A,I se zkopíruje
do P/V a stane se detekovatelným.

Re: IFF2?

Zdenek Adler SHARP MZ-800

Presne jak pise Gama, LD A,I je asi jediným ze způsobů, jak zjistit stav 
IFF2 který je jinak nepřístupný - při této instrukci se totiž (krom
 jineho) 
P/V flag nastaví právě dle IFF2.
Jinak z jakého programu to pochází? Něco na Sharpovi?
Vím že na Sharpovi se akorát hojně využívalo zakódování programu
pomocí R 
registru, ale tohle jsem neviděl....

Z.

Zobrazit citovaný text (19 řádků)
----- Original Message ----- 
From: "+GAMA (sharpemupandora.cz)" <computer.research[doména skryta]>
To: "Konference "Počítač SHARP MZ-800 a emulátory"" <sharpemupandora.cz>
Sent: Tuesday, October 20, 2009 1:09 PM
Subject: Re: IFF2?


>
>
>>Co presne je IFF2 ? Neni "ld a,i" potreba kvuli tomu, aby se nejak 
>>spustilo zpracovani IFF2 ?
>
> Kopíruje IFF2 do P/V.
> Pravda, IFF2 není v rámci F běžně dostupný, pomocí LD A,I se zkopíruje
do 
> P/V a stane se detekovatelným.
>
> --- 

Re: IFF2?

+GAMA SHARP MZ-800

PUSH	AF                   ; nezájem, jen ukládá AF
loop: LD	A, I          ; IFF2 do F (P/V) (nastaven při povoleném přerušení,
 shozen při zakázaném nebo pokud přijde přerušení během LD A,I)
PUSH	AF                   ; A(=I) do H - nezájem, F (state 1) do L      - state
1 here
POP	HL
LD	A, I                         ; IFF2 do F (P/V)
LD	A, L                        ; přesune původní obsah F (state 1) do A
PUSH	AF                  ; původní F (state 1) do H, F (state 2) do L    -
state 2 here
POP	HL
CP	L                    ; porovnání původního F (state 1) s nedávným F
(state 2)
JR	NZ, loop               ; dokud se navzájem nerovnají (i.e., IFF2 ení při 
obou čteních stejné)
LD	(data), A               ; při nějaké smysluplné hodnotě
DI
POP	AF                 ; nezájem, jen obnoví AF a vrátí se
RET

Že by testoval, zda je v mezeře mezi přerušeními?

Re: IFF2?

David Luftner SHARP MZ-800

Tento podprogram je soucasti CP/M Biosu 4.1 a take Niposu. U obou se vyskytuje
 pred praci s VRAM respektive pred instrukci DI. To ze se testuje IFF2 na
stabilni stav jsem pochopil, ale nepochopil jsem proc se testuje.
David

Re: IFF2?

+GAMA SHARP MZ-800

Zobrazit citovaný text (4 řádky)
> Tento podprogram je soucasti CP/M Biosu 4.1 a take Niposu. U obou  
> se vyskytuje pred praci s VRAM respektive pred instrukci DI. To ze  
> se testuje IFF2 na stabilni stav jsem pochopil, ale nepochopil jsem  
> proc se testuje.
Prohledal jsem komentovaný výpis BIOSu pro MZ-800 s řadičem I8272,  
ale tam se podobný podprogram vůbec nevyskytuje...

Re: IFF2?

Vaclav Peroutka SHARP MZ-800

Zobrazit citovaný text (8 řádků)
> 
> > Tento podprogram je soucasti CP/M Biosu 4.1 a take Niposu. U obou  
> > se vyskytuje pred praci s VRAM respektive pred instrukci DI. To ze  
> > se testuje IFF2 na stabilni stav jsem pochopil, ale nepochopil jsem  
> > proc se testuje.
> 
> Prohledal jsem komentovaný výpis BIOSu pro MZ-800 s řadičem I8272,  
> ale tam se podobný podprogram vůbec nevyskytuje...
To s ROMkou Sharpa podle mne nema nic spolecneho... Je to napr.  tady:
 http://www.scav.ic.cz/download/MZ-800/MZ-800_Navody/System/Cpm_v14_BIOS_n.mac
na adrese 0xFBB1.

Call 0xFBB0 se tam parkrat vyskytuje, na adresach 0xF8E5, 0xF97C, 0xFA8F a
0xFB0B (od oka). Otazkou je, jestli tahle cast kodu je zavisla na Z80, nebo
primo na Sharpu. Marek Smihla zrejme vychazel z CP/M 1.4, takze tu cast jen
prevzal. Ale nekdo z LECu by mohl vedet. Pod tim kodem je podepsany Ludek
Jirousek.

Na spectru taky urcite existuje nejaky klon CP/M, nenajde se tam neco podobneho 
v BIOSu ?

Vasek

Re: IFF2?

+GAMA SHARP MZ-800

Zobrazit citovaný text (6 řádků)
>
>> > > Tento podprogram je soucasti CP/M Biosu 4.1 a take Niposu. U obou  > > se
 vyskytuje pred praci s VRAM respektive pred instrukci DI. To ze  > > se testuje
IFF2 na stabilni stav jsem pochopil, ale nepochopil jsem  > > proc se testuje.
>> > Prohledal jsem komentovaný výpis BIOSu pro MZ-800 s řadičem I8272,  >
ale tam se podobný podprogram vůbec nevyskytuje...
Zobrazit citovaný text (1 řádek)
>To s ROMkou Sharpa podle mne nema nic spolecneho...
Taky nemá.
Prohrabal jsem sbírku komentovaných výpisů BIOSů pro I8272 pro ZX Spectrum 
a SHARP MZ-800 (ten tedy přepečlivě) a ani v jednom jsem podprogram
zjišťující stav IFF2 nenašel.
Jen jsem se zapomněl podívat, z jakého média se ten BIOS bootuje
(ROMdisk?).

Zobrazit citovaný text (3 řádky)
>Call 0xFBB0 se tam parkrat vyskytuje, na adresach 0xF8E5, 0xF97C, 0xFA8F a
0xFB0B (od oka). Otazkou je, jestli tahle cast kodu je zavisla na Z80, nebo
primo na Sharpu.
Teoreticky by se dala použít i u jiných počítačů, kde přichází
operace, kde je nutné zakázat přerušení a pak ho uvést do původního
stavu (zakázat, pokud bylo zakázané, povolit, pokud bylo povolené), ale jak 
píšu, takovou věc jsem v jiném z BIOSů, které mám, nenašel - a to
včetně BIOSu pro Sharp s I8272 od Tomáše Krejči..

Zobrazit citovaný text (2 řádky)
>Na spectru taky urcite existuje nejaky klon CP/M, nenajde se tam neco podobneho
v BIOSu ?
Nenašel jsem nic takového.

Re: IFF2?

Vaclav Peroutka SHARP MZ-800

Zobrazit citovaný text (9 řádků)
> 
> >To s ROMkou Sharpa podle mne nema nic spolecneho...
> 
> Taky nemá.
> Prohrabal jsem sbírku komentovaných výpisů BIOSů pro I8272 pro ZX
 Spectrum a
> SHARP MZ-800 (ten tedy přepečlivě) a ani v jednom jsem podprogram
zjišťující
> stav IFF2 nenašel.
A, uz jsem pochopil :-)

Nejsem si jisty, jestli je to u i CP/M LEC verze 1.2 nebo 1.3 Jinak to muze mit 
spojitost s podporou 1,44MB alias HD disket. Ono se to volani hodne vyskytuje u 
prace s FDC.