Mein EACA Genie III hat ja inzwischen mehrere Betriebssysteme - grob in CP/M und NEWDOS / GDOS aufgeteilt.
Das LOWE CP/M startet mit einer sehr langsamen Steprate und das ist nicht schön.
Das Programm FASTEP.COM ändert die Steprate auf schneller, verlangt aber nach Aufruf die Bestätigung mit <ENTER>, also nichts mit Autostart oder submit.
Ich wollte also mal das kurze Programm disassemblieren.
OK, mit einem Debugge wie Trace80 oder DDT oder DDTZ kann ich mir die paar Bytes auch anschauen, aber ich
hatte von früher einen "automatischen" Disassembler im Kopf.
Nein, nicht den DAZZLESTAR und ich mußte ein wenig in meinen Disketten suchen.
Dazzle ist ein interaktiver Disassembler, den ich auch mag, aber jetzt nicht brauche.
Gefunden!
Z80DIS.COM heisst das gesuchte Programm.
Also "Z80DIS FASTEP.COM" aufgerufen und nach ein wenig Nachdenken kam folgender Code raus. --> Siehe Quellcode.
Im Anhang habe ich Bilder vom DAZZLESTAR und Z80DIS beigefügt, welche als Beispiel das Programm DIR.COM
zum Disassemblieren mitbekommen haben.
Wenn ich den Genie III wieder aufgebaut habe werde ich das Programm FASTEP.COM ohne Abfrage mal testen.
Anbei etwas Dokumentation dzenghlp.txt und Z80DIS22.TXT zum Lesen.
Hier der von Z80DIS erstellte Code inclusive der Programmabfragen ##############
# FASTEP.MAC #
>>> Z80DIS version 2.2
Z80 Disassembler program written by KENNETH GIELOW, Palo Alto, CA.
This disassembler generates Zilog Mnemonics. The program distinquishes types
of label references, marks subroutines and jumps and produces an annotated
cross-reference of all labels referenced. This version includes a fair
amount of ARTIFICIAL INTELLIGENCE in analyzing program structure.
Please enter INPUT file name: FASTEP.COM
OUTPUT file name: FASTEP.MAC
LISTING file name: FASTEP.PRN
Descriptive TITLE: lowewe ftast stepper______________________
file LOAD address: 0100 HEX
disassembly START address: 0100 HEX
disassembly STOP address: 01FF HEX
Do You wish to run a FULL output (as opposed to XREF only) ? (Y/N) Y
On which disk do you wish the scratch file to reside? (A-G) C:
Do You wish to process all Z80 codes (as opposed 8080 subset only) ? (Y/N) Y
Are all inputs OK so far? (Y/N) Y
>>> Z80DIS version 2.2
You may now enter CONTROL BREAK addresses to define the type of disassembly
for each section of the code; each control break defines the first address
of a section which ends at the beginning of the next section less 1-byte.
NOTE: You may select AUTOMATIC CONTROL BREAK assignment by the artificial
intelligence expertise of Z80DIS by typing *
TO SEE DETAILS OF YOUR COMMAND CHOICES, type H
?: * AUTOMATIC ASSIGNMENT selected
Please confirm (Y/N) Y
I will now study the structure and blocking of the program...
The INTELLIGENCE may be ARTIFICIAL, but the RESULTS are REAL !
There may be a slight PAUSE while I think about what I have read..
You may now edit the CONTROL BREAK addresses set by AUTO-ASSIGNMENT.
Ins 0100-0102 Asc 0103-01D5 Ins 01D6-01FF
No anomalous conditions were found. You can often polish any remaining
rough spots by running * one final time. You can also hand-edit the table.
TO SEE DETAILS OF YOUR COMMAND CHOICES, type H
?:
TO SEE DETAILS OF YOUR COMMAND CHOICES, type H
?: H
command long name break code meaning
---------/--------------/------------/----------------------------
C Clear - clear all of break table
FL File Load - Load (append) file to table
FS File Store - Store table as file
L List - List break table for review
H Help - Re-list these instructions
K Kill - Kill break at address
P Print - Print break table on LST:
Q Quit - Quit break entry process
* AUTO_ASSIGN - Automatic assignment
I Instructions Ins set Instruction break
A Ascii Asc set Ascii break
B Bytes Byt set Byte break
W Words Wrd set Word break
T Table of addr Adt set address Table break
S Space Spc set undefinded Space break
?: Quit Control Break definition -
THIS IS Pass 1
Working at 01FA NOPs
THIS IS Pass2
INTER-PASS summary information
Scratch file contains 27 records of 30 bytes each
Free memory space remaining after table storage assignments is 22839 bytes
out of the original 23543 bytes (or 3.0 percent used.)
PRODUCING disassembled output files
External label equates
Working at 01FA NOPs
LISTING cross references
LISTING Subroutine references
end of Pass2
### Ergebniss der automatischen Disassemblierung ###
##############
# FASTEP.MAC #
; lowe fast stepper
; FASTEP -> Source re-created by Z80DIS 2.2
; Z80DIS was written by Kenneth Gielow
; Palo Alto, CA
;
.Z80
ORG 0100H
;
D$0001 EQU 0001H ; ---L-
BDOS EQU 0005H ; -C---
I$0033 EQU 0033H ; ----I
;
?.0100: JP J$01D6 ; Sprung zur Bildschirmanzeige
;
; -----------------
?.0103: DEFM 'Copyright (c) 1982 Lowe '
DEFM 'Electronics.'
I$0127: DEFB 0AH
DEFB 0DH
DEFM 'Lowe Elect'
DEFM 'ronics Fast Step Utility'
DEFM ' for Y-E DATA Disk Drive'
DEFM 's.',0DH
DEFB 0AH
DEFB 0AH
DEFB 0AH
DEFB 0AH
DEFM 'Press NEW LINE to'
DEFM ' set fast step - or -'
DEFM ' any other key to abort.'
DEFM '$'
I$01AC: DEFB 0AH
DEFB 0AH
DEFB 0DH
DEFM '****** Fast Step Ac'
DEFM 'tivated ******',0AH
DEFB 0AH
DEFB 0DH
DEFM '$'
; -----------------
;
J$01D6: LD DE,I$0127 ; Text auf Screen
LD C,09H ; 9
CALL BDOS ; fcn09= Print String
;
LD C,01H ; 1 ; Auf <ENTER-TASTE> warten
CALL BDOS ; fcn01= Console Input
;
CP 0DH ; 13
RET NZ ; hier solange Bildschirmausgabe bis Taste
;
LD HL,(D$0001) ; Steprate neu setzen
LD DE,I$0033
ADD HL,DE
CALL C$01F9
;
LD DE,I$01AC ; '****** Fast Step Activated ******' ausgeben.
LD C,09H ; 9
CALL BDOS ; fcn09= Print String
;
RET
;
; -----------------
;
; Subroutine __________________________
; Inputs ________________________
; Outputs ________________________
;
C$01F9: JP (HL)
;
; -----------------
?.01FA: DEFB 0,0,0,0,0,0
END
_______
; Outputs ________________________
;
C$01F9: JP (HL
Alles anzeigen
Bis hier und dann muß ich erst mal den Genie III aufbauen.