Ahoj Marku,
ostatni asi odpovi lepe, ale rychle jsem mrknul do sveho MCE a treba ti pomuze tohle (handler cteni z adres 0xE000 - 0xE010):
public int getByte( int addr ) {
if( ( addr & 0xfffff000 ) == portBase && ( addr & 0xfff ) < 9 ) {
// we work only on first 16 bytes
addr &= 0xf;
// call the 8255 handler
if( addr < 4 )
return mz8255.getByte( addr );
// call the 8253 handler
if( addr < 8 )
return mz8253.getByte( addr );
// get the horizontal pulses (HSync/15611Hz) and periodic music signal (35Hz)
if( addr == 8 ) {
int srr = scrHandler.getStatusReadRegister();
return ( ( srr & 0x20 ) << 2 ) | ( srr & 1 );
}
// todo return non-existent port - check value on real MZ
return 0xff;
}
return memoryAccess.getByte( addr );
}
Jak vidis, port 0xE008 (0xD8) mam napojeny na HSync, ale v realu bych na to asi moc nesazel.. Vzhledem k tomu, ze mi v MCE nektere programy nebezi, urcite Ti Zdenek ze sve studnice znalosti predlozi lepsi odpoved :-)
HTH,
Roman
ostatni asi odpovi lepe, ale rychle jsem mrknul do sveho MCE a treba ti pomuze tohle (handler cteni z adres 0xE000 - 0xE010):
public int getByte( int addr ) {
if( ( addr & 0xfffff000 ) == portBase && ( addr & 0xfff ) < 9 ) {
// we work only on first 16 bytes
addr &= 0xf;
// call the 8255 handler
if( addr < 4 )
return mz8255.getByte( addr );
// call the 8253 handler
if( addr < 8 )
return mz8253.getByte( addr );
// get the horizontal pulses (HSync/15611Hz) and periodic music signal (35Hz)
if( addr == 8 ) {
int srr = scrHandler.getStatusReadRegister();
return ( ( srr & 0x20 ) << 2 ) | ( srr & 1 );
}
// todo return non-existent port - check value on real MZ
return 0xff;
}
return memoryAccess.getByte( addr );
}
Jak vidis, port 0xE008 (0xD8) mam napojeny na HSync, ale v realu bych na to asi moc nesazel.. Vzhledem k tomu, ze mi v MCE nektere programy nebezi, urcite Ti Zdenek ze sve studnice znalosti predlozi lepsi odpoved :-)
HTH,
Roman
2009/1/3 Marek Brunda (sharpemupandora.cz) <marek[doména skryta]>
Omlouvam se za predchozi spam, nejak se mi sekl net.
Poradil by nekdo s timto problemem? Nejsem schopen nejak detailne zjistit z dokumentace, co na SHARPu prectu ctenim z adresy $E008. Zapisem na tuto adresu se ridi GATE0 na 8253. Jde mi o to, ze SHARP pri startu v ramci pipnuti 10x cte z teto adresy ale proc? Pokud udelam hack ze pri kazdem cteni se hodnota zmeni z 0 na 1 a naopak, je vse ok, ale nevim, co na tomto portu ma skutecne byt?
Diky za odpoved, pokud nekdo vite.
Marek Brunda
---
Omlouvam se za predchozi spam, nejak se mi sekl net.
Poradil by nekdo s timto problemem? Nejsem schopen nejak detailne zjistit z dokumentace, co na SHARPu prectu ctenim z adresy $E008. Zapisem na tuto adresu se ridi GATE0 na 8253. Jde mi o to, ze SHARP pri startu v ramci pipnuti 10x cte z teto adresy ale proc? Pokud udelam hack ze pri kazdem cteni se hodnota zmeni z 0 na 1 a naopak, je vse ok, ale nevim, co na tomto portu ma skutecne byt?
Diky za odpoved, pokud nekdo vite.
Marek Brunda
---