Import-Script
17.06.2003, 13:20
<font face="courier new,courier">\-2 <BR> <BR>also das ?-2 stammt nicht von mir, ich wollte nur, dass Courier und klein genug es hier abzubilden... <BR> <BR> <BR>function in26dport:word; {liest 4Bit von LPT-Karte an Basisadresse $26c </font> <BR>var value: word; {davon das Printer Statusregister $26d } <BR>begin {Bit 0 = ACK - Leitung Pin 10 } <BR> value := 0; {Bit 1 = BUSY- Pin 11 } <BR>{$ASMMODE Intel} {Bit 2 = PEnd- Pin 12 } <BR> asm {Bit 3 = Online- Pin 13 } <BR> {cli} <BR> mov dx,26dh <BR> in ax,dx <BR> mov value,ax <BR> {sti} <BR> end; <BR> value :=((value xor $80) and $f0) shr 4; {Bitinvertierungen entfernen} <BR> in26dport := value; {und korrekt positionieren } <BR>end; <BR> <BR> <BR>Also das ist eine Routine in FreePascal und die liest ein Byte vom Port 26dh. <BR>Das Ganze macht sie derzeit in einer Schleife <BR> <BR>for i:= 0 to SampleSpeichergrösse do begin <BR> SampleSpeicher[i]:=in26dport; <BR> for n:= 0 to SampleDelay do; <BR>end; <BR> <BR>Ist (soll werden) Logicanalyzer. <BR>Jetz müsste ich irgendwie das Delay und die Grösse per Assembler da einbauen, d.h. dass die Assemblerroutine das in einem Rutsch möglichst schnell macht; so schnell es geht eben auf einem PCI-Bus. <BR>Randbemerkung: Samplespeicher ist ca. 4MB gross; bin froh dass die 64k Grenze endlich weg ist. FreePascal macht das: (kein Thema-endlich!!! auch auf PC) - war auf 68k Kisten noch nie eins... <BR> <BR>var SampleSpeicher: array[0..4*1024*1024]of byte; <BR> <BR>Jetzt bin ich halt nur nicht 80xx AssemblerGuru. <BR>Wer weiss wie es geht?