Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   Pascal programma 'ontleden' (https://forum.scholieren.com/showthread.php?t=294687)

black crow king 01-12-2002 15:32

Pascal programma 'ontleden'
 
Hoi, ik heb dit programma in Turbo Pascal moeten typen, maar nu is het de bedoeling dat we er een verslagje van maken waarin staat wat alles precies doet. Kan iemand helpen? :)
Met dit programma kun je printers aansturen via DOS, BIOS en de I/O-poorten.

Alvast bedankt





program ParralelIO;
uses dos;

const DosIntr = $21;
Lptintr = $17;
Lpt1Data = $378;
Lpt1Status = $379;
Lpt1Control = $37A;

var Regel: string;
I: Integer;
Via: char;

procedure PrintViaDos(ch: char);
var regs: registers;
begin
Regs.ah :=5;
Regs.dl :=ord(ch);
Intr(DosIntr, Regs)
end;

procedure PrintViaBios(ch: char);
var regs: registers;
begin
Regs.ah :=0;
Regs.al :=ord(Ch);
Regs.dx :=0;
Intr(LptIntr, Regs)
End;

procedure PrintViaPorts(ch: char);
var control: integer;
begin
repeat
until (port[Lpt1status] and $80) <>0;

Port[Lpt1Data] :=ord(ch);

Control :=port[Lpt1Control];

Port[Lpt1Control] :=Control or $01;

Port[Lpt1Control] :=Control and $FE
{*
* repeat
* until (Port[Lpt1Status] and $40) = 0;
*}
end;

begin
writeln('typ een regel in die op de printer moet worden afgedrukt');
readln(regel);
write('via (D)os, (B)ios, of I/O (P)oorten?');
readln(via);

case Via of
'D','d': begin
for I :=1 to length(regel) do
PrintViaDos(Regel[i]);
PrintViaDos(Chr(13));
PrintViaDos(Chr(10))
end;
'B','b': begin
for I := 1 to length(regel) do
PrintViaBios(regel[i]);
PrintViaBios(Chr(13));
PrintViaBios(Chr(10))
end;
'P','p': begin
for I :=1 to length(regel) do
PrintViaPorts(regel[i]);
PrintViaPorts(Chr(13));
PrintViaPorts(Chr(10))
end;
end;
end.

McMotion 01-12-2002 17:52

nou het programma lijkt me niet zodanig ingewikkeld dat je hulp nodig hebt om de opbouw te begrijpen? :rolleyes: kijk even naar Ralph Brown's interrupt list ofzo, dan kan je in ieder geval die PrintViaDOS() en PrintViaBIOS() functies verklaren
ik geloof dat daar ook wel zooi instaat over Port IO en anders moet dat toch wel te vinden zijn met google?

Koen 01-12-2002 18:08

Het is onmogelijk eerst zelf een programma te coden, en vervolgens niet te kunnen verklaren wáárom je het zo gecode hebt. Geef maar toe, je hebt 'm gewoon gejat :p

McMotion 01-12-2002 18:10

Citaat:

Koen schreef:
Het is onmogelijk eerst zelf een programma te coden, en vervolgens niet te kunnen verklaren wáárom je het zo gecode hebt. Geef maar toe, je hebt 'm gewoon gejat :p
schrijf maar eens een lang programma (bijvoorbeeld NOG langer als dat van hem :eek: ) zonder commentaar in je code; kijk er dan een maand niet meer naar om, en verklaar dan wat alles in je code betekent.. je zult versteld staan wat je dat soort dingen snel vergeet :)

Koen 01-12-2002 18:14

Citaat:

McMotion schreef:
schrijf maar eens een lang programma (bijvoorbeeld NOG langer als dat van hem :eek: ) zonder commentaar in je code; kijk er dan een maand niet meer naar om, en verklaar dan wat alles in je code betekent.. je zult versteld staan wat je dat soort dingen snel vergeet :)
I know, ik snapte stukken uit m'n Fotoboek op den duur ook niet meer. (Zal me leren zonder commentaar te schrijven)

Maar kom op, zo'n klein stukkie, als je dat zelf schrijft moet je gewoon kunnen weten waar 't voor staat..

strafcorner 01-12-2002 18:26

Citaat:

Koen schreef:
I know, ik snapte stukken uit m'n Fotoboek op den duur ook niet meer. (Zal me leren zonder commentaar te schrijven)

Maar kom op, zo'n klein stukkie, als je dat zelf schrijft moet je gewoon kunnen weten waar 't voor staat..

bedoel je niet zonder schrijven te coden ;)

Koen 01-12-2002 18:37

Citaat:

strafcorner schreef:
bedoel je niet zonder schrijven te coden ;)
Dat zeg ik.

black crow king 01-12-2002 19:15

Citaat:

Koen schreef:
Geef maar toe, je hebt 'm gewoon gejat :p
Whaha, nee, het was meer van dat leraar ons een boekje gaf met dat programma erin, en daarin stond dus zoiets als "typ dit over in Pascal" :D
Alleen ja, nu moeten we er dus een verslagje van zien te breien.

McMotion 03-12-2002 09:00

gejat uit een boekje dus :mad: je hebt toch wel de bronvermelding in commentaar erin gezet he? :p


Alle tijden zijn GMT +1. Het is nu 23:12.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.