PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche 8086 Assemblertipp



Import-Script
17.06.2003, 13:20
<font face="courier new&#44;courier">&#92;-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 :=&#40;&#40;value xor $80&#41; and $f0&#41; 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 &#40;soll werden&#41; Logicanalyzer. <BR>Jetz m&uuml;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: &#40;kein Thema-endlich!!! auch auf PC&#41; - war auf 68k Kisten noch nie eins... <BR> <BR>var SampleSpeicher: array[0..4&#42;1024&#42;1024]of byte; <BR> <BR>Jetzt bin ich halt nur nicht 80xx AssemblerGuru. <BR>Wer weiss wie es geht?