*********Eprom Programmer********* 1. Inhoud ~~~~~~ 1. Inhoud 2. Voorwoord 3. Schema beschrijving 4. Programma beschrijving a. Detectie hardware b. HEX/ASCII editor c. Communicatie met de EPROM 5. Programma files 6. DISCLAIMER 2. Voorwoord ~~~~~~~~~ Dit programma, draaiend onder WINDOWS 3.1/3.11 of 95 en geschreven met DELPHI for WINDOWS, kan gebruikt worden om EPROM's uit te lezen, te programmeren en te vergelijken met data bestanden of andere EPROM's die eerst ingelezen zijn. Tevens is er een mogelijkheid om de data te veranderen via een HEX- en ASCII editor! De type's die gebruikt kunnen worden zijn: - 2764; 8Kb EPROM - 27128; 16Kb EPROM - 27256; 32KB EPROM - 27512; 64KB EPROM Deze EPROM's moeten een programmeer spanning hebben van 12,5V. (Deze spanning zou eventueel aangepast kunnen worden voor types die 21V of 25V nodig hebben). De communicatie gebeurt via de printer poort LPT1 (adres=$378). Een aangesloten printer zal gewoon blijven werken. Tegenwoordig bestaan er printercontrollers die de data in in twee richtingen kunnen sturen over dezelfde datalijnen. Is dit niet mogelijk dan worden hiervoor de 4 bidirectionele stuurlijnen gebruikt (Strobe,Auto feed, Init,Slct in); Het programma is voor BEIDE methodes geschikt, afhankelijk van de gekozen hardware en of de controller hiervoor geschikt is. Hieronder wordt UNIDIRECTIONEEL genoemt als 4 bit en BIDIRECTIONEEL als 8 bit data overdracht. De huidige controllers kunnen in EPP mode gezet worden en gebeurt via de BIOS instelling tijdens het opstarten van de PC. Er zijn controllers die een combinatie hebben van EPP en ECP, Gebruik deze instelling alleen als geen EPP instelling apart te kiezen is! Het kan zijn dat de bidirectionele interface niet met deze combinatie werkt. Degene die deze mogelijkheid niet hebben zullen voor de UNIDIRECTIONELE mode moeten kiezen. De functionaliteit is hetzelfde maar alleen twee keer zo langzaam! Het programma bepaalt zelf welke hardware (of geen) aangesloten is. 3. Schema beschrijving ~~~~~~~~~~~~~~~~~~~ Degene die een moderne controller hebben kunnen het beste kiezen voor de Bidirectionele mode. De bijbehorende schema's zijn weergegeven in PCX bestanden. Deze zijn: Biprint.PCX (Print layout bidirectionele interface) Bisch.PCX (Schema bidirectionele interface) Texttprt.PCX (Print layout universele print) Texttsch.PCX (Schema universele print) Met een bidirectionele printer poort kan ook de unidirectionele interface gebruikt worden. Zet in dit geval de BIOS instelling op normale printer mode. Er zijn controllers die in EPP mode NIET met de unidirectionele interface werken. Voor de unidirectionele interface worden dan de volgende PCX bestanden gebruikt: Uniprt.PCX (Print layout unidirectionele interface) Unisch.PCX (Schema unidirectionele interface) Texttprt.PCX Texttsch.PCX Dit geldt tevens voor degene die nog een oudere controller hebben. De unidirectionele interface kan in principe ook voor andere doeleinden gebruikt worden. Daarom volgt hieronder de werking van de 8243 Dit I/O expander IC wordt bestuurd via 4 bidirectionele data lijnen en 1 status lijn. Het IC beschikt over de volgende functies: Commando: poort selectie: D3 D2 D1 D0 --------------- --------------- 0 0 lezen 0 0 poort 0 0 1 schrijven 0 1 poort 1 1 0 OR 1 0 poort 2 1 1 AND 1 1 poort 3 Op de neergaande flank van ST wordt het commando gegeven, waarna bij een opgaande flank het commando uitgevoerd word. Samengevat: bij lezen :Data van geselecteerde poort wordt op D0-D3 gezet. bij schrijven:Data van D0-D3 wordt op de geselecteerde poort gezet. bij OR :Er wordt een OR functie uitgevoerd tussen de geselecteerde poort en D0-D3. De uitkomst staat op de geselecteerde poort. bij AND :Er wordt een AND functie uitgevoerd. De uitkomst staat wederom op de geselecteerde poort. 4. Programma beschrijving ~~~~~~~~~~~~~~~~~~~~~~ LET OP!!!! Voordat een eprom geplaatst kan worden MOET het programma eerst volledig opgestart EN de juiste type EPROM geselecteerd zijn. Wordt hier niet aan voldaan dan kan dit schade veroorzaken aan de EPROM!!!! 4a. Detectie Hardware ~~~~~~~~~~~~~~~~~ Het programma test voor het opstarten eerst of de hardware is aangesloten. Is de hardware aangetroffen dan wordt getest welke hardware dit is. In het geval van de unidirectionele interface wordt het programma verder opgestart. In het geval van de bidirectionele interface wordt eerst nagegaan of de printer controller geschikt is voor bidirectionele data overdracht. Na het opstarten zijn een aantal functies beschikbaar: 1> Verkeerde hardware ~~~~~~~~~~~~~~~~~~ Dit is het geval als de bidirectionele interface is aangesloten en geen bidirectionele printerpoort aanwezig is of niet is ingesteld in het BIOS. Het programma kan alleen data inlezen van schijf en veranderen via de ingebouwde HEX/ASCII editor. Alle functies met betrekking tot de EPROM zijn uitgeschakeld. 2> Geen hardware ~~~~~~~~~~~~~ Geen van beide interfaces zijn aangesloten. Het programma heeft dezelfde functionaliteit als bij verkeerde hardware. 3> De juiste hardware is gevonden ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Onderaan het scherm wordt weergegeven welke hardware aangesloten is. De juiste EPROM kan geselecteerd worden waarna de data vanuit de EPROM of bestand ingelezen kan worden. Is dit goed verlopen dan komen de rest van de functies beschikbaar. Hint: Laat de muis cursor even op een button rusten!! 4.b HEX/ASCII editor ~~~~~~~~~~~~~~~~ In het programma is ook een editor opgenomen voor zowel HEX als ASCII. Om een byte of karakter te veranderen moet eerst het veld geselecteerd worden. Dit kan door middel van de TAB of via een muis klik. Hierna kan met de cursor toetsen door het veld 'gewandeld' worden. Een byte of ASCII teken kan veranderd worden door de ENTER toets in te drukken of door een dubbele muisklik. Verander de byte of het ASCII teken en bevestig met ENTER De cursor gaat automatisch naar het volgende veld. Met de BUTTONS onderaan het DATA veld kan door het bestand gebladerd worden in stappen van 256 bytes, of in een keer naar het einde of begin van het bestand. Ook is een zoek functie aanwezig om snel naar een bepaald adres te springen. Het volledige ingelezen bestand wordt in het geheugen geladen en is maximaal 64K. (De grootte van de grootste EPROM) Let hierop bij het inladen van bestanden. 4.c Communicatie met de EPROM ~~~~~~~~~~~~~~~~~~~~~~~~~ De EPROM kan met een willekeurig aantal bytes en/of op een willekeurig adres geprogrammeerd,uitgelezen of vergeleken worden onafhankelijk van het ingeladen bestand, zolang dit binnen het adres bereik ligt van de geselecteerde EPROM. Het programmeren gebeurt met een 1ms puls totdat deze correct geprogrammeerd is, waarna voor de zekerheid deze byte nog een keer geprogrammeerd wordt zodat deze voor langere tijd behouden blijft. Er zijn wat oudere EPROM's die niet met 1ms geprogrammeerd kunnen worden. Deze worden dan met een 50ms puls geprogrammeerd. De hardware is hierin NIET voorzien!. De hobbyisten onder ons zouden hiervoor de tweede oneshot van de 74HCT4538 kunnen gebruiken, en de programmeertijd via een schakelaar kunnen omschakelen. Het programma zal net zolang wachten totdat de pulsduur voorbij is! (gecontroleerd via de ACK lijn) Met deze aanpassing kunnen de oudere EPROM's dus wel geprogrammeerd worden. 5. Programma files ~~~~~~~~~~~~~~~ Het programma bestaat uit de volgende files: Eprommer.exe; Het eigenlijke programma Lees.mij ; Deze file Biprint.pcx ; Print layout bidirectionele interface Bisch.pcx ; Schema bidirectionele interface Uniprint.pcx; Print layout unidirectionele interface Unisch.pcx ; Schema unidirectionele interface texttprt.pcx; Print layout universele print texttsch.pcx; Schema universele print 6. DISCLAIMER ~~~~~~~~~~ Dit programma en bijbehorende schema's en layouts zijn uitvoerig getest en gecontroleerd. Door gebruik te maken van dit programma en bijbehorende schema's en layouts verklaart de gebruiker geen aanspraak te maken op eventuele schade ontstaan door verkeerd gebruik en/of verkeerd handelen of door veranderingen aan programma of schema's. Copyright 1996 A.Rijfkogel