[pascal]programma werkt alleen niet zelfstandig

Pagina: 1
Acties:

  • jojo70
  • Registratie: September 2000
  • Laatst online: 13-05-2025
Hallo ik heb in pascal een programma geschreven om via de packetdriver de de netwerkkaart aan te sturen en dan de packet op het scherm weer te geven. Het programma werkt nu redelijk, allen als ik hem NIET in pascal run doet hij het niet. :? Iemand een idee hoe dit kan?
Ik heb wel gebruik van interrupts gemaakt met daarin globale variabelen. Maar dat mag toch?

Alvast bedankt,

sahi

otherweb // the other place on the web


Verwijderd

Hoezo "Niet in pascal run"?

  • leonardo1504
  • Registratie: April 2001
  • Niet online
Op vrijdag 28 juni 2002 12:29 schreef Zef het volgende:
Hoezo "Niet in pascal run"?
Als je er een exe van maakt bedoelt ie denk ik. In de oude IDE van Turbo/Borland pascal kon je een prog in-memory compilen en runnen, dus zonder een fysieke executable file te maken.

  • jojo70
  • Registratie: September 2000
  • Laatst online: 13-05-2025
Als ik de exe file run die pascal gemaakt heeft doet het programma het niet. Maar als ik hem in pascal run doet het programma het wel.

otherweb // the other place on the web


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

define "Doet het niet"

Wat gebeurt er? niks? Heb je al met een berg writeln's kunnen vaststellen welke route er door je programma gelopen wordt of op welk moment hij vastloopt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • jojo70
  • Registratie: September 2000
  • Laatst online: 13-05-2025
Het programma is Turbo Pascal versie 7.0 van Borland geschreven.

Het programma runt wel allen hij komt dan niet voor de 2e keer in de interrupt routine. De computer is dan zo vast gelopen dat alleen een harde reset helpt.

otherweb // the other place on the web


  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

Maak je misschien gebruik van een unit of object, die hij bij het runnen niet kan vinden? Even alle units en objecten bij je exe in 1 map knikkeren en kijken of het dan wel lukt. (Werkte bij mij nog wel eens met EgaVga units met vage lettertypen)

500 "The server made a boo boo"


  • klinz
  • Registratie: Maart 2002
  • Laatst online: 10-08 15:44

klinz

weet van NIETS

Initialiseer je alle variabelen wel? Ik kan me herinneren dat de turbo debugger variabelen zelf op 0 zet dat de executable dit zelf niet doet.

  • jojo70
  • Registratie: September 2000
  • Laatst online: 13-05-2025
Ja ik maak gebruik van de units dos, crt en een eigen geschreven unit die in de zelfde map staat.
Alle variable zijn geinitialiseer behalve de gene waar het niet uitmaakt op welk getal ze staan.

otherweb // the other place on the web


  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Hou je ook rekening met non-reentrant procedures/functies binnen je ISR?

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • jojo70
  • Registratie: September 2000
  • Laatst online: 13-05-2025
Bedankt.
Toch nog een variable vergeten te initialiseeren. Nu loop de coputer niet meer vast en kun je er uit met Control-break. Alleen als hij iets schrijft wat met writeln op het scherm moet komen komt het zonder return maar met linefeed op het scherm. De return is dan vervangen door een h. Je krijt dus zo iets:
code:
1
2
3
4
5
6
7
writeln('hallo');
writeln('hallo');

wordt:

halloh
    halloh

Iemand een idee hoe dat kan.
Op vrijdag 28 juni 2002 13:13 schreef JayTaph het volgende:
Hou je ook rekening met non-reentrant procedures/functies binnen je ISR?
Ik heb geen idee wat je bedoelt met ISR?

otherweb // the other place on the web


  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Op vrijdag 28 juni 2002 13:24 schreef jojo70 het volgende:

Ik heb geen idee wat je bedoelt met IRS?
Interrupt Service Routine (je interrupt-procedure zeg maar).

Maar blijkbaar niet want hij deed het nu toch? :+

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • klinz
  • Registratie: Maart 2002
  • Laatst online: 10-08 15:44

klinz

weet van NIETS

Je kunt in je interrupt routine (ook wel ISR genoemd) geen gebruik maken van WriteLn. WriteLn maakt namelijk van DOS of BIOS functies gebruik om tekst te outputten. Veel DOS en BIOS functies zijn niet re-entrant. Dit houdt in dat ze niet aangeroepen kunnen worden als de functie nog niet beeindigd is.

Misschien als je gebruik maakt van de variabele 'DirectVideo' (zoek in de help) dat het wel werkt.

Tevens is i.v.m. dezelfde re-entrancy het gebruik van globale variabelen in ISR's ook niet aan te raden.
Pagina: 1