🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #8024

Hulp met Turbo Pascal

#8024
From: Sumo_Negro
Date: Mon, 15 Jul 2002 12:23
93 lines
3812 bytes
Ik ben ergens in een oud tijdschrift iets interessants tegengekomen, een 
programmatje om via je gameport weerstanden te meten.
Probleem is hetvolgende, programma is geschreven voor Turbo Pascal en 
graag had ik een windowsapplicatie gehad, ben ik verkeerd en kan dit niet 
met Turbo Pascal.
Hieronder vind je de Source, misschien kan iemand me helpen om dit om te 
zetten in c++, zelf heb ik niet veel kaas gegeten van het programmeren.

Alvast bedankt.

Listing 1:
; GCR.ASM Game port Counter Routine
; **********************************
DATA     SEGMENT
EXTRN    COUNTLIMIT:WORD
DATA     ENDS
CODE     SEGMENT
         ASSUME    CS: CODE, DS: DATA
PUBLIC   COUNT
COUNT               PROC      FAR
         PUSH       BP             ;SAVE BASE POINTER
         MOV        BP,SP          ;LOAD STACK POINTER
         MOV        SI,COUNTLIMIT  ;LOAD COUNTER LIMIT VALUE
         MOV        DX,201H        ;LOAD GAME PORT ADDRESS
         MOV        BL,[BP+06]     ;LOAD SELECT-VALUE MMV
         MOV        CX,00H         ;COUNT:=0
         CLI                       ;CLEAR INTERRUPT ENABLE FLAG
         MOV        AL,00H         ;TRIGGER ALL MMV
         OUT        DX,AL
WHILE:   IN         AL,DX          ;WHILE OUTPUT SELECTED MMV NOT EQUAL 0
         AND        AL,BL
         JZ         EWHILE
         CMP        CX,SI          ;AND COUNT < > COUNT LIMIT
         JE         EWHILE
DO:      INC        CX             ;COUNT:=COUNT+1;
         JMP        WHILE
EWHILE:  STI                       ;SET INTERRUPT ENABLE FLAG
         MOV        AX,CX          ;PASS COUNT TO PASCAL
         POP        BP             ;RESTORE BASE POINTER
         RET        4              ;RETURN TO PASCAL
         COUNT      ENDP
CODE ENDS
END


Listing 2:
{$F+,R-]}
PROGRAM RGAME(INPUT,OUTPUT);
(**************************)
(* ELEKTOR 30-03-90 V1.0/JR *)
USES CRT;
VAR CNT,R,M   : INTEGER; 
    COUNTLIMIT: WORD;
    C102K2    : INTEGER;
{$L GCR)}
FUNCTION COUNT(MMV:INTEGER):INTEGER; EXTERNAL;
(********************************************)
BEGIN
  CLRSCR;
  COUNTLIMIT:=MAXINT;
  C102K2:=COUNT(1);
  IF C102K2=COUNTLIMIT
    THEN
      BEGIN
        WRITELN('ERROR: Game-Karte, Schalter und R5 kontrollieren');
        DELAY(2000);
      END
    ELSE
      BEGIN
        COUNTLIMIT:=2*C102K2;
        REPEAT
        M:=1;
        FOR R:=1 TO 4 DO
        BEGIN
          CNT:=COUNT(M);
          IF CNT=COUNTLIMIT
            THEN WRITE('R',R,'  Me�bereich �berschritten ')
            ELSE WRITE('R',R,'  ',ROUND(CNT/C102K2*102.2-2.2):3,'K      
');
            GOTOXY(30,R); WRITELN('Z�hler ',CNT:4,'  ');
            M:=M SHL 1;
        END;
        DELAY(750); GOTOXY(1,1);
        UNTIL KEYPRESSED;
        CLRSCR;
      END;
END.

-- 
Mvg
Sumo_Negro
Men moet denken als een held 
om zich als een gewoon fatsoenlijk mens te gedragen.
Technical Details
Message-ID: <MPG.179cdd8ac5b338a198972e@newsbin.telenet.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!priapus.visi.com!news-out.visi.com!hermes.visi.com!skynet.be!skynet.be!ossa.telenet-ops.be!hebe.telenet-ops.be.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,981c97a6958990f8,start
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-07-15 05:28:19 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!priapus.visi.com!news-out.visi.com!hermes.visi.com!skynet.be!skynet.be!ossa.telenet-ops.be!hebe.telenet-ops.be.POSTED!not-for-mail
From: Sumo_Negro <Sumo_Negro4life@hotmail.com>
Newsgroups: be.comp.programming
Subject: Hulp met Turbo Pascal
Message-ID: <MPG.179cdd8ac5b338a198972e@newsbin.telenet.be>
Organization: Home
X-Newsreader: MicroPlanet Gravity v2.60
Lines: 93
Date: Mon, 15 Jul 2002 12:23:56 GMT
NNTP-Posting-Host: 213.224.151.40
X-Complaints-To: abuse@telenet.be
X-Trace: hebe.telenet-ops.be 1026735836 213.224.151.40 (Mon, 15 Jul 2002 14:23:56 CEST)
NNTP-Posting-Date: Mon, 15 Jul 2002 14:23:56 CEST