AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler mit Delphi verknüpfen

Ein Thema von VirusXP · begonnen am 3. Aug 2005 · letzter Beitrag vom 4. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von VirusXP
VirusXP

Registriert seit: 29. Dez 2003
Ort: Ingolstadt
33 Beiträge
 
Delphi 2007 Professional
 
#1

Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 16:11
Ich hab da mal ne etwas knifflige Frage:
Ich will mit Delphi und dem Interrupt 13h (Disketten- und Festplatteninterrupt) etwas in einem Sektor einer Diskette schreiben, aber hab noch keinen Weg gefunden mein Array (Array[1..512] of Byte) dem Interrupt so zu übergeben das er mir das auf die Diskette zu schreiben.
Auf welche Weise ist es möglich dieses Projekt zu realisieren oder ist es etwa gar nicht zu realisieren?
Vielen dank für jede Hilfe schon mal im Vorraus.

P.S.: Die Anweisungen für den Interrupt sehen wie folgt aus:
  • ah=03h Funktionsnummer zum schreiben auf Disketten
    al = Anzahl der zu schreibenden Sektoren
    ch = Spur auf die geschrieben werden soll
    cl = Erster Sektor der beschrieben werden soll
    dh = Kopf der verwendet werden soll
    dl = Laufwerksnummer (0:A; 1:B; 80h:1.HD; 81h:2.HD)
    es = Segmentadresse des Puffers
    bx = Offsetadresse des Puffers

In den letzten beiden Zuweisung liegt mein Prob.
Für die einen ist Windows nur ein Betriebssystem, für die anderen ist es der größte Virus der Welt.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 16:14
In Windows kann man keine Diskette mehr via Int 13h ansprechen.

Verwende stattdessen:


TFileStream.Create('\\.\A:', fmOpenRead or fmShareDenyNone); Dabei sollte beachtet werden, dass nur 512 Byte Blöcke geschrieben werden können an 512 Byte Grenzen.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 17:25
Zitat von VirusXP:
es = Segmentadresse des Puffers
(ohne Worte)
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von VirusXP
VirusXP

Registriert seit: 29. Dez 2003
Ort: Ingolstadt
33 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 17:45
Hab ich jetz probiert, aber wenn ich versuch was draufzuschreiben dann gibt er mir Stream write error aus. Anbei der Quelltext.
Angehängte Dateien
Dateityp: pas diskwriter_130.pas (1,3 KB, 6x aufgerufen)
Für die einen ist Windows nur ein Betriebssystem, für die anderen ist es der größte Virus der Welt.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 17:50
Zitat von VirusXP:
In den letzten beiden Zuweisung liegt mein Prob.
Nein, dein Problem liegt darin, daß du offenbar noch nicht in der Windows-Welt angekommen bist, sondern noch in DOS-Reichen herumschwirrst.

Nur mal als ein paar Hinweise. Auch Segmentregister gibt es noch in 32bit PM, aber dort heißen sie Selektoren und haben eine gänzlich andere Bedeutung. Interrupts kannst du zwar aufrufen, aber nur von einem Treiber und genaugenommen sollte man es von dort aus nicht machen. Windows (NT++) benutzt den int13h sowieso nicht, wäre dir also vermutlich böse, würdest du es tun.

Vielleicht liest du doch erstmal noch ein paar Bücher. Spätestens mit dem Erscheinen von Windows 2000 ist das was du tun willst anderweitig möglich und deine Informationen obsolet.
  Mit Zitat antworten Zitat
Benutzerbild von VirusXP
VirusXP

Registriert seit: 29. Dez 2003
Ort: Ingolstadt
33 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 17:57
Ich will doch nur 512 kleine Bytes in einen Sektor der Diskette schreiben und auslesen können. Wie gesagt mit Methode TFileStream.Create('\\.\A:', fmOpenReadWrite or fmShareDenyNone) bekomm ich nen Stream write error (s.Quellcode).
Für die einen ist Windows nur ein Betriebssystem, für die anderen ist es der größte Virus der Welt.
  Mit Zitat antworten Zitat
Benutzerbild von VirusXP
VirusXP

Registriert seit: 29. Dez 2003
Ort: Ingolstadt
33 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 18:26
So am Rande: Wenn ich versuch nur von der Diskette zu lesen, d.h. den ganzen Schreiben-Teil aus meinem Code auskommentier und TFileStream.Create('\\.\A:', fmOpenRead or fmShareDenyNone) aufruf, dann gehts auch net; dann bringt er mir Stream read error.
Für die einen ist Windows nur ein Betriebssystem, für die anderen ist es der größte Virus der Welt.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 19:17
Guckst du im großen OpenSource-Fundus des Kollegen Luckie:
http://www.luckie-online.de/Programme/DiskImageNT/
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 19:22
naja wenn du wirklich in einem bestimmten sektor der diskette schreiben willst (da du von 512 bytes sprichst nehme ich mal an du willst eine bootdiskette oder so erstellen), wirst du mit TFileStream nicht weit kommen, da du meines wissen nach damit nicht bestimmen kannst, wo genau auf der diskette die daten landen. ich wüsste jetzt aber auch nicht wie man unter Win genau einen bestimmten sektor der diskette beschreibt.

zu dem Error mal ne dumme Frage: hast du auch den schreibschutz der diskette rausgemacht?
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von VirusXP
VirusXP

Registriert seit: 29. Dez 2003
Ort: Ingolstadt
33 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Assembler mit Delphi verknüpfen

  Alt 3. Aug 2005, 21:13
Si senor, der Schreibschutz der Diskette ist und war draussen. Hab se danach formatiert und nochmal versucht, mit gleichem Ergebnis.
Für die einen ist Windows nur ein Betriebssystem, für die anderen ist es der größte Virus der Welt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz