Párhuzamos port SEGÍTSÉG

Párhuzamos port SEGÍTSÉG
2006-11-06T20:09:38+01:00
2006-11-06T21:35:39+01:00
2022-11-02T04:05:49+01:00
niggger
HElló

itt van egy kód, ez az eleje:

program EEPROM;
uses crt;
const
nibble : string = '0123456789ABCDEF';
var
s : string;
i : byte;
procedure prog (i : byte);
const
LPT1 = $378;
var
base : word;
DR : word;
SR : word;
CR : word;
begin
base:=LPT1;
DR:=base+$00;
SR:=base+$01;
CR:=base+$02;
port[CR]:=port[CR] and $da; {az INT vonal alacsony szintu}
port[CR]:=port[CR] and $de; {az INT vonal magas szintu}
{várakozás} {várakozunk, magas szinten tartjuk ezt a vonalat}
port[CR]:=port[CR] and $da; {az INT vonal ismét alacsony szitü}
port[DR]:=i; {az i regiszter tartalmát kiirjuk a portra}
port[CR]:=port[CR] and $df; {a strobe vonalat alacsony szintre húzzuk}
(várakozás) {várakoznunk, alacsony szinten tartjuk ezt a vonalat}
port[CR]:=port[CR] and $de; {a vonalat ismét magas szintre húzuk}

Ezzel a programmal vezéreljük az LPT portot egy EPROM írót, ezért van szükség az időzítésekre...
Kérdések:
Szerintetek jó-e?
Azzal hogy az LPT port CR regiszterét új értékkekkel töltjük fe, a DR regiszter tartalma nem változik meg? Vaygis azzal hogy módosítgatjuk a CR-t, az adat továbbra is jelen lesz a PORT fém tuskéin?
Ha a program forráskódja jó, akkor miért nem működik XP alatt? DOS ba még nem próbáltam ki, mert ez a ku*va XP nem enged DOSDISK-el bootolni!

Előre is köszi.. És lécci mondjátok azt hogy jó, mert nagyon ki vagyok borulva
Mutasd a teljes hozzászólást!
Elsokorben tegyel fel egy virtual pc-t

dosbox vagy microsoft vpc
mindketto ingyenes.
Aztan emulalj bootdisket img fajlbol (www.bootdisk.com)
igy mar tudod probalni

A kodod nem szep.
Nekem idegen ha igy kezeled a portokat

port[CR]:=port[CR] and $da;

En ugy csinalnam hogy felvennek egy valtozot amibe a port erteke van
ezt hivjuk mondjuk port_d-nek

port[CR]:=port_d and $da;

a $da sem szep
vegyel fel konstansokat (nem vagyok pascalos igy ezt nem tudom)

de valami ilyesmi lehet
const lpt_pe =0b10000000

const lpt_ack=0b01000000


/ bocsi nem tudom hogy irja a pascal a binarist

es igy sorba az osszes hasznalt bitet

A kodod ezutan igy fog kinezni

port[CR]:=port_d or (lpt_ack); {bekapcsolas} port[CR]:=port_d and not(lpt_ack); {kikapcsolas}

persze megszebb volna ha definialnal macrot vagy fuggvenyt


Set LPT_ACK Reset LPT_ACK
Mutasd a teljes hozzászólást!

  • XP alatt nem éred el DOS-os progiból a párhuzamos portot
    Mutasd a teljes hozzászólást!
  • HElló

    Köszönöm a választ!
    Szóval nem az én hibám hogy nem műxik XP alatt? Ez megnyugtató! Húú!

    A másik dologra viszont, vazzeg, nekem ez nem jutott eszembe!
    Dhe ez király megoldás!
    Azt hiszem holnap át is gépelem a programot...

    Ezt a figyelmeztetést pedig köszönöm!

    És még két kérdés:
    Szóval akkor tényleg az XP miatt nem műxik?
    A másik:
    Ha manipulálgatjuk a CR regisztert, akkor attól a DR tartalma nem változi? Vagyis a TTL szinteket ugyanúgy tudjuk mérni a fémkivezetéseken?

    És köszi mégegyszer az ötletet! Zseni vagy!

    További jó éjjszakát!
    Mutasd a teljes hozzászólást!
  • Az xp lefogja a portokat.
    Microsoft vpc-bol mukodik (en is igy hasznalok hardvereket)

    Ranezesre nincs baj a programmal
    Egymastol fuggetlenek a portok.
    Arra viszont vigyazz hogy ne legyen nyomtato telepitve ra mert neha hozzanyulhat az xp.

    van erre valami pooling disable registry beallitas

    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd