home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1990
/
01
/
tricks
/
inline.bas
< prev
next >
Wrap
BASIC Source File
|
1989-10-10
|
3KB
|
116 lines
'* ------------------------------------------------------- *
'* INLINE.BAS *
'* Utility zum Erzeugen einer INLINE - Prozedur *
'* (C) 1989 H. Stellbrink & TOOLBOX *
'* ------------------------------------------------------- *
SUB Monitor (Farbe%) '* Farbmonitor ?
LOCAL Modus%
DEF SEG = 0
Modus% = (PEEK (&H410) AND 48) / 16
DEF SEG
SELECT CASE Modus%
CASE 1 : Farbe% = -1
CASE 2 : Farbe% = -1
CASE 3 : Farbe% = 0
END SELECT
END SUB
SUB Taste (z$) '* Tastenabfrage
IF z$ = "" THEN z$ = "Weiter mit einer Taste"
PRINT
PRINT z$
z$ = INPUT$(1)
END SUB
SUB Bild (Farbe%)
IF Farbe% THEN COLOR 14,1 ELSE COLOR 0,7
PRINT "┌"+STRING$(77,"─")+"┐"
PRINT "│";TAB(10);"I N L I N E - P R O Z E D U R";
PRINT " - E R Z E U G U N G";TAB(79);"│"
PRINT "└"+STRING$(71,"─")+" H.St.┘"
IF Farbe% THEN COLOR 14,0 ELSE COLOR 7,0
END SUB
SUB Eingabe (BinDatei$, SubName$)
LOCATE 5,1
PRINT "Bitte geben Sie die vollständige Datei"+_
"bezeichnung der binären Quelldatei ein."
PRINT
INPUT BinDatei$
PRINT
PRINT "Wie soll die INLINE - Prozedur heißen ?"
PRINT
INPUT SubName$
END SUB
'* ------------------------------------------------------- *
TextDatei$ = "INLINE.TXT" '* Name der Ausgabe-Datei
ProZeile% = 10 '* Anzahl der Codes pro Zeile
CLS
ON ERROR GOTO Fehler
CALL Monitor (Farbe%) '* Klärt, ob Farbmonitor
CALL Bild (Farbe%) '* Kopfbild
CALL Eingabe (BinDatei$, SubName$)
OPEN BinDatei$ FOR INPUT AS #1 '* Datei vorhanden ?
CLOSE
OPEN TextDatei$ FOR OUTPUT AS #1
OPEN BinDatei$ FOR BINARY AS #2
CLS
PRINT "Bearbeitet wird ";UCASE$(BinDatei$)
PRINT
PRINT #1, "SUB ";SubName$;" INLINE"
PRINT "SUB ";SubName$;" INLINE"
DO
IF EOF(2) THEN EXIT LOOP
PRINT #1, " $INLINE ";
PRINT " $INLINE ";
FOR i% = 1 TO ProZeile%
IF EOF(2) THEN EXIT LOOP
GET$ #2, 1, b$
b$ = STR$ (ASC (b$))
b$ = RIGHT$ (" "+b$, 4)
PRINT b$;
PRINT #1, b$;
IF i% <> ProZeile% AND NOT EOF(2) THEN
PRINT #1, ",";
PRINT ",";
ELSE
PRINT
PRINT #1,
END IF
NEXT i%
LOOP
PRINT "END SUB"
PRINT #1,"END SUB"
CLOSE
PRINT
PRINT "Diese Prozedur finden Sie in der Datei "; TextDatei$
CALL Taste ("")
COLOR 7,0
END
'* ------------------------------------------------------- *
Fehler:
BEEP
CLOSE
PRINT
SELECT CASE err
CASE 53, 61, 64, 70, 71, 72, 75, 76
PRINT "Fehler beim Zugriff auf Datenträger"
CASE ELSE
PRINT "F E H L E R.............."
PRINT
PRINT "Nummer ";ERR
PRINT "Adresse ";ERADR
END SELECT
RESUME FehlerEnde
FehlerEnde:
CALL Taste ("")
COLOR 7,0
END
'* ------------------------------------------------------- *
'* Ende von INLINE.BAS *