[Assembly] Wat is de destination van deze jump?

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • +1 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
In een oude overlay file (1980's) staat op de plaats waar het eerste code deel zou moeten staan (offset 0x0200) deze vijf bytes: E9 32 12 0A 07. Ik weet dat E9 een relative jump is maar ik weet niet hoe de processor bepaalt of de operand 16 of 32 bit is en dus ook niet waar naartoe gesprongen wordt; al vermoed ik dat het een 16bits operand zal zijn (processoren waren toen nog niet zo groot).
De rest van de file is een mengelmoes van configuratie-data, bitmaps en programma code, dus daar heb ik ook niet zoveel aan...
Veel van de configuratie-data en bitmaps heb ik al wel uitgeplozen, maar om de laatste bytes van de configuratie-data te kunnen duiden is het wel wenselijk dat ik weet wat code is en wat data.
Wie helpt me verder op weg?

Vanwaar al deze moeite zul je vragen?
Het oude programma (OrCAD 3.02, DOS!) loopt niet lekker onder de operating systemen van vandaag (grafische drivers) maar ik heb veel data in dat formaat. Om die data te converteren naar iets moderners (Eagle 5) bestaan er echter geen (betaalbare*) programma's, dus ik ben bezig dat dan maar zelf te maken.
Ik gebruik de 010-editor van Sweetscape voor dit soort uitzoekwerk, maar heb geen assembler meer (en ook niet echt nodig). Ik heb zo'n slordige veertig jaar geleden wel heel veel in assembler gedaan, maar dat is (gek hè?) nogal ver weggezakt...

* Het enige programma wat ik ooit (inmiddels ook al weer een jaar of tien CORRECTIE dertig geleden) heb gevonden kostte toen al iets van $500 plus $180 per file formaat ($860 dus) in de meest basale versie. Wel wat veel voor een programma wat je maar één keer gaat gebruiken... Geen idee of dat nog bestaat trouwens, of hoe het heette.

Beste antwoord (via fatbeard op 14-03-2019 22:59)


  • Thralas
  • Registratie: December 2002
  • Laatst online: 01:55
fatbeard schreef op woensdag 13 maart 2019 @ 22:27:
* Het enige programma wat ik ooit (inmiddels ook al weer een jaar of tien geleden) heb gevonden kostte toen al iets van $500 plus $180 per file formaat ($860 dus) in de meest basale versie. Wel wat veel voor een programma wat je maar één keer gaat gebruiken... Geen idee of dat nog bestaat trouwens, of hoe het heette.
Had Google wel voor je kunnen vinden, want het aantal hedentendaags bruikbare interactieve disassemblers kun je op één hand tellen.

Dat programma had altijd al een (limited) demo, maar sinds kort is de freeware-versie van IDA v7.0 uit.

Lijkt me deze die wel DOS executables ondersteunt. En sinds vorige week is er Ghidra.

Dat gezegd hebbende, volgens mij moet je goed zoeken naar een DOS-versie die niet 16-bits is, dus dan is het antwoord:

$ rasm2 -b 16 -o 0x200 -d E932120A07
jmp 0x1435
or al, byte [bx]


EDIT: Zoek je niet gewoon dit formaat: OrCAD™ SDT 4.x schematic file format

[ Voor 5% gewijzigd door Thralas op 14-03-2019 22:34 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Misschien kan Ghidra het inzichtelijk maken.
Is van de NSA, net openbaar geworden (wordt nog open-source).

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 12-09 23:22
Iets van DOSbox om oude omgeving te emuleren en je oude programma als nog gewoon te runnen heb je neem ik aan al geprobeerd ?

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
fatbeard schreef op woensdag 13 maart 2019 @ 22:27:
* Het enige programma wat ik ooit (inmiddels ook al weer een jaar of tien geleden) heb gevonden kostte toen al iets van $500 plus $180 per file formaat ($860 dus) in de meest basale versie. Wel wat veel voor een programma wat je maar één keer gaat gebruiken... Geen idee of dat nog bestaat trouwens, of hoe het heette.
Toch moet je soms eens even zo'n sommetje maken; je bent hier al een dag/week/maand mee bezig? Wat is je uurtarief (of wat rekent je baas voor je)? Dan is $860 opeens waarschijnlijk peanuts. En dan werkt 't vrij waarschijnlijk ook nog beter (want: door veel meer mensen gebruikt / bekeken / getest) dan wat jij zo tussen-de -soep-en-de-aardappelen-door in elkaar flanst. Waarmee ik niet zeg dat je niet capabel bent (verre van), maar het is een vrij eenvoudig economisch rekensommetje dat veel mensen nogal eens vergeten te maken alvorens ze zich ergens in storten (en daarna volop last van sunk cost syndroom krijgen en dus nog minder geneigd zijn over de brug te komen met die paar honderd pegels)

Verder vermeld je 't niet specifiek, maar ik neem aan dat we 't over i386 hebben (afgaand op DOS enzo)?

Je zou natuurlijk zoiets kunnen proberen.

[ Voor 7% gewijzigd door RobIII op 13-03-2019 23:20 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
RobIII schreef op woensdag 13 maart 2019 @ 22:59:
[...] maar het is een vrij eenvoudig economisch rekensommetje dat veel mensen nogal eens vergeten te maken alvorens ze zich ergens in storten (en daarna volop last van sunk cost syndroom krijgen en dus nog minder geneigd zijn over de brug te komen met die paar honderd pegels)
Ik weet niet hoe jij er financiëel bij zit, maar voor "die paar honderd pegels" (prijspijl toen, zal vandaag de dag wel een paar duizend zijn) moet ík toch echt een dag of wat werken. Los daarvan, dit is HOBBY.
En zelfs voor mijn hobby ga ik niet een hoop geld betalen voor iets waarvan ik niet zeker weet of het wel kan wat ik wil (de brochures beloven échte gouden bergen, maar verzuimen dan te vermelden dat dat uitgeholde miniaturen van plastic zijn in schaal 1 op 10000) en wat ik maar één keer ga gebruiken.
Met name in de e-CAD wereld wordt vaak veel meer beloofd dan geleverd wordt, of het geleverde is niet bruikbaar. Bin d'Aire-Dunn Dad...
Verder vermeld je 't niet specifiek, maar ik neem aan dat we 't over i386 hebben (afgaand op DOS enzo)?
Close, but no cigar: i286.
Je zou natuurlijk zoiets kunnen proberen.
Ga ik doen, maar dat kan niet op deze machine...

Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
Juup schreef op woensdag 13 maart 2019 @ 22:37:
Misschien kan Ghidra het inzichtelijk maken.
Is van de NSA, net openbaar geworden (wordt nog open-source).
Misschien, maar dat gaat niet op deze machine. Ziet er wel veelbelovend uit.

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 20:40
Misschien zou je de huidige eigenaar van OrCAD kunnen vragen of je de broncode in mag zien? Of een ontwikkelaar spreken die je misschien kan helpen. Uiteindelijk is het programma 30 tot 40 jaar oud en wordt er toch niets meer aan verdiend.

Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
gekkie schreef op woensdag 13 maart 2019 @ 22:44:
Iets van DOSbox om oude omgeving te emuleren en je oude programma als nog gewoon te runnen heb je neem ik aan al geprobeerd ?
Op het gevaar af arrogant te zijn: uiteraard.
En: het drááit wel. Presteert ongeveer net zo goed als een vouwfiets in de Giro d'Italia...
Geschikt om de bestanden te bekijken en zonodig een hardcopy te maken (zolang mijn antieke printer het tenminste nog doet).
Het pakket heeft geen export mogelijkheden, dus de informatie is niet over te zetten naar een nieuwer formaat.

Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
alex3305 schreef op donderdag 14 maart 2019 @ 21:46:
Misschien zou je de huidige eigenaar van OrCAD kunnen vragen of je de broncode in mag zien? Of een ontwikkelaar spreken die je misschien kan helpen. Uiteindelijk is het programma 30 tot 40 jaar oud en wordt er toch niets meer aan verdiend.
De huidige eigenaar van OrCAD zal dat niet doen om een aantal redenen: deze kennis is hoogstwaarschijnlijk niet meer beschikbaar binnen het huidige bedrijf, en ze willen mij veel liever een nieuw pakket verkopen (waarvan onzeker is of het die oude files nog kan lezen). Dat het programma al 40 jaar oud is doet voor juristen niet ter zake: copyright is copyright en daarmee basta.

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 20:40
@fatbeard Niet geschoten is altijd mis. Er zijn meer applicaties open source gemaakt in de afgelopen jaren waarvan je het niet direct had verwacht.

Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
@alex3305: Ik denk dat dat in dit geval gaat tegenvallen: het programma bestaat nog steeds onder dezelfde naam... Maar je hebt wel gelijk, ik zal een poging wagen (zodra ik me kan herinneren hoe die gast ook al weer heete ;))

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 12-09 23:22
fatbeard schreef op donderdag 14 maart 2019 @ 21:47:
[...]
Op het gevaar af arrogant te zijn: uiteraard.
En: het drááit wel. Presteert ongeveer net zo goed als een vouwfiets in de Giro d'Italia...
Geschikt om de bestanden te bekijken en zonodig een hardcopy te maken (zolang mijn antieke printer het tenminste nog doet).
Het pakket heeft geen export mogelijkheden, dus de informatie is niet over te zetten naar een nieuwer formaat.
Een voor de hand liggende mogelijkheid die je niet had uitgesloten in je topicstart, dus arrogant meh, in iedergeval incompleet.

Maar het gaat om een jump bij de start van die executable ?
Kun je die dan niet met debug.exe laden en er door heen fietsen?
(is ongeveer jaren 80 dat ik daar voor het laatst mee geklooid heb, dus ik weet de mogelijkheden van die debugger zo 123 niet meer, maar er zat een basale debugger bij msdos).
Maar in theorie zou je zo toch moeten kunnen uitvinden welke rare sprongen de kat in het nauw allemaal weet te maken.

Is die gebrekkige performance overigens niet deels perceptie en een opgebouwd gebrek aan geduld door het voortschrijdende der jaren en de computertechniek ?
Als ik https://www.dosbox.com/wiki/Performance zie zou een middelmatige laptop toch al prima een 286 moet kunnen emuleren.

[ Voor 17% gewijzigd door gekkie op 14-03-2019 22:11 ]


Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
@gekkie : Klopt. Zowel van die basale debugger als van de tijdspanne sind het laatste geklooi ermee...
Wordt zwaar graven naar die floppies (en de handleiding ervan) en dan nog uitvlooien hoe dat aan de praat te krijgen onder dosbox, maar ook dat is "perfectly doable".

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 12-09 23:22
Volgens mij heb ik m'n oude 8086 assembly boek van Peter Norton (yup van de utils) nog ergens liggen, staat het wellicht nog wel in :p

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 01:55
fatbeard schreef op woensdag 13 maart 2019 @ 22:27:
* Het enige programma wat ik ooit (inmiddels ook al weer een jaar of tien geleden) heb gevonden kostte toen al iets van $500 plus $180 per file formaat ($860 dus) in de meest basale versie. Wel wat veel voor een programma wat je maar één keer gaat gebruiken... Geen idee of dat nog bestaat trouwens, of hoe het heette.
Had Google wel voor je kunnen vinden, want het aantal hedentendaags bruikbare interactieve disassemblers kun je op één hand tellen.

Dat programma had altijd al een (limited) demo, maar sinds kort is de freeware-versie van IDA v7.0 uit.

Lijkt me deze die wel DOS executables ondersteunt. En sinds vorige week is er Ghidra.

Dat gezegd hebbende, volgens mij moet je goed zoeken naar een DOS-versie die niet 16-bits is, dus dan is het antwoord:

$ rasm2 -b 16 -o 0x200 -d E932120A07
jmp 0x1435
or al, byte [bx]


EDIT: Zoek je niet gewoon dit formaat: OrCAD™ SDT 4.x schematic file format

[ Voor 5% gewijzigd door Thralas op 14-03-2019 22:34 ]


Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
Ik zou U zeer erkentelijk zijn, mocht U dat werk erop willen naslaan te mijner gunste...

vertaling:

Als je voor mij wilt kijken, graag! ;)

Acties:
  • 0 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
Thralas schreef op donderdag 14 maart 2019 @ 22:26:
[...]Dat gezegd hebbende, volgens mij moet je goed zoeken naar een DOS-versie die niet 16-bits is, dus dan is het antwoord:

$ rasm2 -b 16 -o 0x200 -d E932120A07
jmp 0x1435
or al, byte [bx]
Dat eindpunt ligt midden in een blok wat ik aanzie voor code (de bitmaps eindigen op 0x13BF), dus dat zou goed kunnen.
Blijft die 0A07 nog over als puzzel, want ik zie hem dat nooit uitvoeren (en meteen daarna begint een datablok, met een copyright string).

Al met al heb ik vele goede ideeën mogen ontvangen _/-\o_ , daar ben ik de komende weken wel zoet mee :)

Acties:
  • 0 Henk 'm!

  • Puch-Maxi
  • Registratie: December 2003
  • Laatst online: 12-09 23:54
https://pcengines.ch/orcad.htm is dit alleen om de boel te kunnen printen?

My favorite programming language is solder.


Acties:
  • +1 Henk 'm!

  • fatbeard
  • Registratie: Maart 2019
  • Laatst online: 01-09 12:27
@Thralas: 8) Dat lijkt wel heel veel op mijn eigen beschrijving van het file-formaat van OrCad 3.20... 8)

Maar daarmee kun je een schema niet reproduceren, omdat de parts informatie ontbreekt (OrCad slaat alleen de naam van de gebruikte librariesparts in het schema op, niet de gebruikte partslibraries). Wáár die libraries staan is onderdeel van de ORCADSDT.OVL file (waar ik nu mee bezig ben), evenals de volgorde waarin ze doorzocht worden.
En dat is nog niet alles: OrCad neemt doodleuk de eerste match uit de eerste library, ook als het part bij het maken van het schema uit een andere library genomen is. Kan best wel verwarrend werken...
Hoe die libraries in elkaar zitten heb ik inmiddels ook nagenoeg volledig uitgeplozen, daar ontgaat me van slechts enkele bytes nog de betekenis.

@Puch-Maxi: Nâh, dat kan gewoon met plotall (desgewenst gevolgd door printgl) of printall, in uiterste gevallen met een screendump. Ik wil juist schema's met behoud van interconnectiviteit overzetten naar een ander pakket.
Heb ik ooit één keer 'met het handje' gedaan (dát dus nooit meer!) van Mentor naar Protel, dat kostte inclusief alle controles door een ander ongeveer 25 mandagen (voor dat éne schema dus)...
Maar dat was voor de baas (die het rekensommetje van @RobIII niet had gemaakt). Puntje bij paaltje zal het niet veel in kosten gescheeld hebben.
Pagina: 1