
; *****************************************
; 
; TRANS   (C) JUERGEN WEBER 1986/1987
;
; *****************************************


ORG	#8000
ENT	$



DESTI1:EQU	#C5F0	; TRANS KOMMT AN 3
DESTI2:EQU	#CDF0	; VERSCHIEDENEN STELLEN IN
DESTI3:EQU	#D5F0	; SCREENRAM (DAMIT AUCH TEXT MOEGLICH)
DESTI4:EQU	#DDF0

AUTO:EQU	#BD80	; ZWISCHENSPEICHER FUER FILEDATEN
TYP:EQU	#BD82
START:EQU	#BD83
LEN:EQU	#BD85
DISCA1:EQU	#BD8B
DISCA2:EQU	#BD8D

QU:EQU	#BD87
ZI:EQU	#BD89
FNAME1:EQU	#EE00
FNAME2:EQU	#E600


LADE:EQU	#3B	; DORT KOMMT JEDES FILE HIN 
INBUF:EQU	LADE
OBUF:EQU	INBUF+#800

BEGIN:

INC	A
JR	Z,SETSYM
RST	0
DEFM	" TRANS VERS. "
DEFM	"15.6.87 "	; LETZTE AENDERUNG

UE:DEFB	#66,0,#66,#66	; ue
DEFB	#66,#66,#3E,0
DEFB	#66,0,#3C,#66	; oe
DEFB	#66,#66,#3C,0
DEFB	#CC,0,#78,#C	; CC CALL Z,nn
DEFB	#7C,#CC,#76,0

SYMTAB:EQU	#BD61

SETSYM:
LD	SP,#6000
LD	DE,"{"	; SYMBOL AFTER 123
LD	HL,SYMTAB	; SYMBOLTABELLE
CALL	#BBAB	; TXT SET M TABLE

CALL	#BB00	;  KM INITIALISE
CALL	#BB51	; TXT INITIALISE
CALL	#BBBA	; GRA INITIALISE
CALL	#BBFF	; SCR INITIALISE

LD	DE,SYMTAB
LD	HL,UE
LD	BC,8*3
LDIR	; MATRIX KOPIEREN

LD	C,7
LD	HL,#B0FF
CALL	#BCCE	; AMSDOS INITIALISIEREN

LD	A,2
LD	BC,#F0F	; INK 2,15
CALL	#BC32

LD	A,3	; INK 3,11,24
LD	BC,#A18
CALL	#BC32

LD	HL,#A0F	; SPEED INK 20,30
CALL	#BC3E


AMSDOS:
LD	BC,#BC06	; 25 ZEILEN ANZEIGEN
OUT	(C),C
LD	BC,#BD19
OUT	(C),C	; DEFAULT

LD	HL,MENU
CALL	PRINT	; MENUE AUSGEBEN

LD	DE,539	; ** DIE FOLGENDE ROUTINE
LD	HL,358	; ZEICHNET EINEN STERN
CALL	#BBC0	; MOVE 539,358

LD	A,3	; GRA PEN 3
CALL	#BBDE
LD	A,"W"	; TAG:?"W";:TAGOFF
CALL	#BBFC
LD	A,2
CALL	#BBDE	; GRA PEN 2

LD	DE,480
LD	HL,290
CALL	#BBC0	; MOVE 480,290

LD	IX,DRDATA	; ECKEN DES STERNS
LD	B,5	; 5 ECKEN
PLOOP:
PUSH	BC
LD	E,(IX+0)
LD	D,(IX+1)
LD	L,(IX+2)
LD	H,(IX+3)
CALL	#BBF6	; DRAW DE,HL
LD	B,4
PL1:INC	IX
DJNZ	PL1
POP	BC
DJNZ	PLOOP
LD	HL,DISK
CALL	KLFCOM

L1:
CALL	#BB06	; INKEY$
CP	"0"
JP	Z,0	; PROGRAMMENDE
CP	13	; ENTER
JR	NZ,$+4
LD	A,"4"	; FUEHRT ZU DISC-DISC
SUB	"1"
JR	C,L1	; <"1"
LD	I,A
CP	6	; LAUFWERK WECHSELN
JP	Z,CHNDRI
JR	NC,L1	; ANDERE TASTE ALS "1"-"5"
CP	5
JP	Z,USER	; USER SETZEN

CP	4
JP	Z,LOESCH

CP	1	; TAPE-DISC
LD	HL,TAPEIN
JR	Z,W1
CP	3	; DISC-DISC
LD	HL,DISK
JR	Z,W1

SPEED?:
LD	HL,FAST	; "AUFZEICH..."
CALL	PRINT
SPE:
CALL	#BB06	; INKEY$
CP	13	; ENTER = SPEED WRITE 1
JR	NZ,$+4
LD	A,"2"
CP	"1"
LD	HL,#14E	;SPEED WRITE 1
LD	B,#19
JR	Z,SETSP
CP	"2"
LD	HL,#A7
LD	B,#32
JR	Z,SETSP
CP	"3"
LD	B,#A
LD	HL,#7E
JR	NZ,SPE
SETSP:LD	A,B
CALL	#BC68	; CAS SET SPEED
LD	HL,TAPEOU
LD	A,I
JR	Z,W1	; DISC-TAPE
LD	HL,TAPE


W1:
CALL	KLFCOM

LD	A,2
CALL	#BC0E	;MODE 2
LD	HL,#4F12	;WINDOW 1,80,1,19
LD	DE,0
CALL	#BB66	;WINDOW ENABLE

LD	BC,#BC06	; NUR 13H ZEILEN
OUT	(C),C
LD	BC,#BD13
OUT	(C),C

LD	HL,PROG	; * PROGRAMM IN SCHIRMRAM *
LD	DE,PROG+DIST1
LD	BC,PROG2-PROG
LDIR

LD	HL,PROG2
LD	DE,PROG2+DIST2
LD	BC,USER-PROG2
LDIR

LD	HL,AMSDOS
LD	DE,AMSDOS+DIST3
LD	BC,PROG-AMSDOS
LDIR

LD	HL,USER
LD	DE,USER+DIST4
LD	BC,FINIS-USER
LDIR

JP	DESTI1

KLFCOM:
XOR	A	;KEIN PARAMETER
DEFB	#FD	; LD LX,A
LD	L,A
CALL	#BCD4	;KL FIND COMMAND
JP	NC,0	; RESET
DEFB	#FD	; LD A,LY
LD	A,L	; PARAMETERZAHL
JP	#1B	; KL FAR PCHL

FAST:
DEFB	12	;CLS
DEFB	31,1,9
DEFM	"Aufzeichnungsgeschwindigkeit ?"
DEFB	31,10,13
DEFM	"1   1000 Baud"
DEFB	31,10,15
DEFM	"2   2000 Baud"
DEFB	31,10,17
DEFM	"3   3600 Bau"
DEFB	"d"+128

TAPEOU:DEFM	"TAPE.OU"	; KOMMANDOS FUR KL FIND COMMAND
DEFB	"T"+128
TAPEIN:DEFM	"TAPE.I"
DEFB	"N"+128
TAPE:DEFM	"TAP"
DEFB	"E"+128
DISK:DEFM	"DIS"
DEFB	"C"+128
ERA:DEFB	"E","R","A"+128

DRDATA:; ECKPUNKTE DES STERNS
DEFW	545,399,610,290,480,370,609,370,480,290
PROG:
LD	SP,#C000

ANFA:
CALL	#BC92	;OUT ABANDON
CALL	#BC7D	;IN ABANDON


;*************************************
; UBERTRAGUNGSRICHTUNG AUSGEBEN
;*************************************

LD	HL,CLEAN+DIST2	; CLS:LOCATE 26,1
CALL	PRINT+DIST1

LD	A,I
LD	B,A
INC	B	; WIEOFT 11+4 ZUM TABBEGINN
LD	HL,CAS1-15+DIST2
LD	DE,15
TABLOO:ADD	HL,DE
DJNZ	TABLOO
CALL	PRINT+DIST1	; HL=TITELSTRING
PUSH	HL

LD	HL,CAS5+DIST2	; "TRANSFER"
CALL	PRINT+DIST1
POP	HL
LD	E,(HL)	; SPAETERER STRING
INC	HL
LD	D,(HL)
LD	(DISCA2),DE	;ZIELNAME    
INC	HL
LD	E,(HL)
INC	HL
LD	D,(HL)
PUSH	DE	; QUELLNAME


LD	DE,LADE	; BUFFER
LD	A,I
JR	Z,CAT
CP	3	; DISC-DISC 
CAT:
LD	A,11	; CURSOR HOCH
PUSH	AF
CALL	Z,#BC9B	;CAT
POP	AF
CALL	Z,#BB5A


; ***************************
;  QUELLNAMEN HOLEN
; *************************** 

LD	HL,ST0+DIST2	; "NAME AUF.."
CALL	PRINT+DIST1

POP	HL
CALL	PRINT+DIST1	; "DISK/KAS"

LD	HL,ST4+DIST2
CALL	PRINT+DIST1	; "SETTE

LD	HL,FNAME1
PUSH	HL
CALL	GETLEN+DIST1	; EDIT UND LAENGE FESTSTELLEN
POP	HL
LD	DE,INBUF	; BUFFER

; *****************
; OPENIN
; ***************** 
CALL	#BC77	;CAS IN OPEN

JP	NC,DELAY+DIST2

PUSH	HL
POP	IX	; HEADER
LD	(TYP),A	; FILEDATEN RETTEN
LD	(START),DE
LD	(LEN),BC
LD	H,(IX+27)
LD	L,(IX+26)	; AUTOSTART
LD	(AUTO),HL

CALL	TSTORT+DIST2	; TEST AUF GUELTIGEN BEREICH

; ****************** 
; FILEDATEN AUSGEBEN
; ******************

PUSH	HL

LD	HL,TYPSTR+DIST2
LD	A,(TYP)
PUSH	AF
AND	%1110
ADD	A,#24	; CHARAKTER CODE HERSTELLEN
LD	(ENTYP+DIST2),A
CALL	PRINT+DIST1
POP	AF
CALL	BYTOUT+DIST1

LD	A,B	; WENN ASCII DANN LAENGE 0
OR	C
JP	Z,ASCII+DIST1

LD	HL,STASTR+DIST2	; "START"
CALL	PRINT+DIST1

LD	H,D
LD	L,E	; START
CALL	ZWBOUT+DIST1	; HEZZAHL IN HL AUSGEBEN

LD	HL,LENSTR+DIST2
CALL	PRINT+DIST1

LD	H,B	; "LAENGE
LD	L,C
CALL	ZWBOUT+DIST1	; HEZZAHL IN HL AUSGEBEN

LD	HL,ATOSTR+DIST2	; "AUTOSTART"
CALL	PRINT+DIST1

POP	HL	; AUTOSTART
CALL	ZWBOUT+DIST1	; HEZZAHL IN HL AUSGEBEN

LD	A,11
CALL	#BB5A	; CSR ^

; **************
;  LADEN
; ************** 

IND:
LD	HL,LADE	;ES WIRD JEDES FILE NACH 3B GELADEN
CALL	#BC83	;CAS IN DIRECT
JP	NC,DELAY+DIST2

CALL	#BC7A	;IN CLOSE

; ************
; OUT OPEN
; ************

CALL	OOPEN+DIST1	; NAMENEINGABE,OUT OPEN

LD	HL,LADE-1	;DATEN ZUR VERSCHIEBUNG
LD	DE,(LEN)	;DES FILES FESTSTELLEN
ADD	HL,DE
LD	(QU),HL	; OBERGRENZE DER ZWISCHENLAGERUNG
LD	HL,(START)
LD	B,H	; HIGHBYTE LADEADR
DEC	HL
ADD	HL,DE
LD	(ZI),HL	; OBERGRENZE NORMAL


LD	A,#BF
SUB	B	; HIGHBYTE ADRESSE >BF?
JP	C,PROG2+DIST2	; NACH PROG2 SCREEN

; **********
; SAVEN
; ********** 

CALL	VERSCH+DIST1
JP	NC,DELAY+DIST2

CALL	#BC8F	;OUT CLOSE

ANFVEC:JP	ANFA+DIST1+6	; '6' DA AUF ANFA ABANDON

; ***************
; ASCIIUEBERTRAGUNG
; *************** 


ASCII:
LD	A,I
CP	3
JR	Z,ASDD	; ASCII DISC-DISC

CALL	OOPEN+DIST1
ASC:
CALL	#BC80	;IN CHAR
JR	NC,ASFER	;EOF MET
CALL	#BC95	;OUT CHAR
DELVEC:JP	NC,DELAY+DIST2
JR	ASC
ASFER:
JP	Z,DELAY+DIST2	; (C)ANCEL...
CALL	#BC8F	; CAS OUT CLOSE
JP	ANFA+DIST1+3	; IN ABANDON

ASDD:; ASCII DISC-DISC
LD	HL,OBUF+#800-1
LD	BC,#AC00-OBUF-#800	; MAX. SPEICHER 
A1:
CPI
JP	PO,MEMFUL+DIST1
CALL	#BC80	; CAS IN CHAR
LD	(HL),A
JR	C,A1
JR	Z,DELVEC
CALL	#BC7A	; CAS IN CLOSE
CALL	OOPEN+DIST1
LD	HL,OBUF+#800
A2:LD	A,(HL)
CP	#1A	; EOF
JR	Z,ASFER+3
CALL	#BC95	; CAS OUT CHAR
JR	NC,DELVEC
INC	HL
JR	A2

MEMFUL:
LD	HL,MEMORY+DIST2
CALL	PRINT+DIST1
JR	DELVEC

; *********
OOPEN:
; *********
LD	A,I
CP	3	; DISC-DISC

LD	A,10
CALL	#BB5A	; LF
LD	HL,DESDIS+DIST2	; "DISK EINLEGEN"
CALL	Z,PRINT+DIST1

LD	HL,ST0+DIST2	; "NAME AUF"
CALL	PRINT+DIST1

LD	HL,(DISCA2)	; "KASSETTE/DISKETTE"
CALL	PRINT+DIST1

LD	HL,ST4+DIST2	; "BUCHSTABEN"
CALL	PRINT+DIST1

LD	HL,FNAME2
PUSH	HL
CALL	GETLEN+DIST1
LD	HL,LINEF+DIST2
CALL	PRINT+DIST1

; ** WURDE NUR ENTER GEDRUECKT ?

LD	A,B
OR	A	; LAENGE=0
LD	DE,FNAME1	; NACH ENTER 1. NAMEN ANNEHMEN
POP	HL
JR	NZ,INPOK
EX	DE,HL
PUSH	HL
CALL	GETEIN+DIST1	; NAMENSLAENGE NACH B HOLEN
POP	HL
INPOK:
LD	DE,OBUF	; BUFFER
CALL	#BC8C	;CAS OUT OPEN
JP	NC,DELAY+DIST2
RET

;******** 
VERSCH:
;********
LD	HL,(QU)	; PROGRAMM AN TATSAECHLICHE
LD	DE,(ZI)	; BRINGEN (NOETIG FUER OUT DIRECT)
LD	BC,(LEN)
LDDR

VSCHSC:
LD	A,(TYP)
CP	1
JR	NZ,$+3
XOR	A	; UNPROTECT
LD	HL,(START)
LD	DE,(LEN)
LD	BC,(AUTO)
JP	#BC98	;CAS OUT DIRECT

GETLEN:
CALL	EDIT+DIST1

PUSH	HL
LD	HL,LINEF+DIST2
CALL	PRINT+DIST1
POP	HL
GETEIN:
LD	B,#FF
LOOP1:INC	B	; NAMENSLAENGE NACH B
LD	A,(HL)
OR	A
INC	HL
JR	NZ,LOOP1
RET

ZWBOUT:
LD	A,H	; HIGHBYTE
CALL	BYTOUT+DIST1

LD	A,L

BYTOUT:PUSH	AF
RRA
RRA
RRA
RRA	; HIGHNIBBEL NACH UNTEN
CALL	NIBOUT+DIST1
POP	AF

NIBOUT:AND	#0F	; NUR UNTERES NIBBLE
ADD	A,"0"
CP	":"
JR	C,LETTER
ADD	A,"@"-"9"
LETTER:JP	#BB5A	; TXT OUTPUT

PRINT:
PUSH	AF
LD	A,(HL)
BIT	7,A	; STRINGENDE?
RES	7,A	; BIT 7 LOESCHEN
OUTP:CALL	#BB5A	;TXT OUTPUT
INC	HL
JR	Z,PRINT+1
POP	AF
RET	; BIT 7 GESETZT.

EDIT:PUSH	AF

CALL	CLIN+DIST1

RETU:JP	NC,INITP+DIST2

POP	AF
RET

CLIN:CALL	#BB09	; CLEAR INPUT
JR	C,CLIN

PUSH	HL
CALL	#B915	; KL PROBE ROM
LD	A,H	; VERSION
POP	HL

LD	(HL),0	; EINGABEPUFFER LOESCHEN
RRA	; BIT 0 => CY
JP	C,#BD5B	; 664
RRA	; BIT 1 => CY
JP	C,#BD5E	; 6128
JP	#BD3A	; 464

; *******************
; SCREEN UEBERTRAGUNG
; *******************

PROG2:; FILE IM SCREENRAM


LD	HL,EXCHN+DIST2	; VERTAUSCHER SICHERN
LD	DE,#9000
LD	BC,PROG3-EXCHN
LDIR

LD	HL,LADE+#3FFF	; ENDE SCHIRM
LD	DE,#FFFF	; ENDE PROGRAMM
LD	IY,#7FFF	; ENDE ZWISCHENSPEICHER
LD	BC,#4000

PUSH	BC

JP	#9000

EXCHN:; SCREENS VERTAUSCHEN

LD	A,(DE)	; PROGRAMM
LDD	; (HL)=>(DE)
LD	(IY),A	; ZWISCHENSPEICHER
DEC	IY

JP	PO,PROG3+DIST2-#8000

JR	EXCHN


PROG3:; =SCRLDR

LD	A,#40
CALL	#BC08	; SCR SET BASE

CALL	VSCHSC+DIST1-#8000

POP	BC	; #4000

PUSH	AF	; CY

LD	H,B
LD	L,C
LD	DE,#C000
LD	A,D	; #C0

LDIR	; NACH OBEN


CALL	#BC08	; SCR SET BASE

POP	AF
JP	ANFVEC+DIST1-3	; WIE NORMALES SAVE ENDEN

INITP:
LD	HL,AMSDOS+DIST3
LD	DE,AMSDOS
LD	BC,PROG-AMSDOS
LDIR

LD	HL,PROG+DIST1
LD	DE,PROG
LD	BC,PROG2-PROG
LDIR

LD	HL,PROG2+DIST2
LD	DE,PROG2
LD	BC,USER-PROG2
LDIR

LD	HL,USER+DIST4
LD	DE,USER
LD	BC,FINIS-USER
LDIR

JP	AMSDOS


DELAY:; VERZOEGERUNGSSCHLEIFE NACH
CALL	ZOGE+DIST2
JP	PROG+DIST1	; VON VORNE

ZOGE:LD	B,0
WL:HALT
DJNZ	WL
LD	A,7
JP	#BB5A

TSTORT:; TEST AUF GUELTIGEN SPEICHERBEREICH
PUSH	HL
PUSH	DE
PUSH	BC
LD	HL,(START)
PUSH	HL
LD	DE,-#3B
ADD	HL,DE
POP	HL
JR	NC,WARN	; START VOR 3B
LD	DE,-#AC00
PUSH	HL
ADD	HL,DE
POP	HL
JR	NC,WARNOK	; <AC00
LD	DE,-#C000
PUSH	HL
ADD	HL,DE
POP	HL
JR	NC,WARN

WARNOK:POP	BC
POP	DE
POP	HL
RET
WARN:LD	HL,WRNSTR+DIST2
CALL	PRINT+DIST1
JR	WARNOK

WRNSTR:DEFB	13,10,7
DEFM	"Warnung. Ung{ltiger Speicherbereich"
DEFB	13,10,"."+128
ST0:DEFB	13,10
DEFM	"Name auf"
DEFB	" "+128

ST1:DEFM	"Dis"
DEFB	"k"+128
ST2:DEFM	"Kas"
DEFB	"s"+128
ST4:
DEFM	"ette ( <ESC> => Men{) ?"
LINEF:DEFB	13,138


CLEAN:DEFB	12,31,26,1,24,32+128
CAS1:DEFM	"Disc - Tap"
DEFB	"e"+128
DEFW	ST2+DIST2,ST1+DIST2
CAS2:DEFM	"Tape - Dis"
DEFB	"c"+128
DEFW	ST1+DIST2,ST2+DIST2
CAS3:DEFM	"Tape - Tap"
DEFB	"e"+128
DEFW	ST2+DIST2,ST2+DIST2
CAS4:DEFM	"Disc - Dis"
DEFB	"c"+128
DEFW	ST1+DIST2,ST1+DIST2
CAS5:DEFM	" Transfer "
DEFB	24,30,138

DESDIS:DEFB	13,10
DEFM	"Legen Sie bitte die "
DEFM	"Ziel"
DEFM	"diskette ein "
DEFB	"!",13,10+128
MEMORY:DEFM	"Asciifile zu lang"
DEFB	"."+128

TYPSTR:DEFB	13,10
DEFM	"Filetyp: "
ENTYP:DEFB	"*"," ","&"+128
STASTR:DEFM	"  Anfang: "
DEFB	"&"+128
LENSTR:DEFM	"  L}nge: "
DEFB	"&"+128
ATOSTR:DEFM	"  Autostart: "
DEFB	"&"+128


USER:

LD	HL,USRSTR
CALL	PRINT
LD	A,(#AC01)
PUSH	AF
RRA
RRA
RRA
RRA
CALL	NIBOUT
POP	AF
CALL	NIBOUT


LD	HL,USTR1
CALL	PRINT


CALL	EING	; EIN NIBBLE
LD	C,A
LD	A,0
JR	Z,JPAMS	; ENTER
CALL	EING	; UNTERES NIBBLE
LD	D,A
LD	A,C
JR	Z,JPAMS	; ENTER ANGETROFFEN
RLCA
RLCA
RLCA
RLCA	; WIRD OBERES NIBBLE
OR	D
JPAMS:LD	(#AC01),A	; USER SETZEN
CALL	NZ,ZOGE	; 2 SEKUNDEN WARTEN
JP	AMSDOS

; EINGABE VON HEXZAHLEN
;EIN NIBBLE
EING:
CALL	#BB81
CALL	#BB06
CALL	#BB84

CP	13	; ENTER
JR	NZ,NOTEN
RET
NOTEN:
LD	B,A
SUB	"0"
JR	C,EING	;JA   
CP	9+1
JR	C,FERTIG
LD	A,B
HZAHL:AND	223	; UPPER$
LD	B,A	; ASCII
CP	"A"
JR	C,EING
CP	"F"+1
JR	NC,EING
SUB	"A"-10
FERTIG:PUSH	AF
LD	A,B
CALL	#BB5A
POP	AF
RET

LOESCH:

LD	HL,DISK
CALL	KLFCOM

LD	HL,LOES
CALL	PRINT
LD	DE,LADE	; BUFFER
CALL	#BC9B	; CAT
LD	A,11
CALL	#BB5A	; CSR HOCH
LD	HL,ST0	; "NAME AUF"
CALL	PRINT
LD	HL,ST1	; "DISK"
CALL	PRINT
LD	HL,ST4	; "KETTE..."
CALL	PRINT

LD	HL,#6000	; PLATZ FUER NAME
CALL	CLIN	; EDITOR
JP	NC,AMSDOS	; ESCAPE
CALL	GETEIN	; LAENGE NACH B HOLEN

;** STRINGDESCRIPTOR ERZEUGEN **

DESCRI:EQU	#54FF

LD	IX,#5000
LD	HL,DESCRI

LD	(IX),L
LD	(IX+1),H

LD	(HL),B	; LAENGE
INC	HL
LD	(HL),L	; 0
INC	HL
LD	(HL),#60	; NAME
LD	HL,ERA
LD	A,1	; 1 PARAMETER
CALL	KLFCOM+1	; NAME FINDEN UND AUSFUEHREN
CALL	ZOGE

JR	LOESCH

LOES:
DEFB	4,2,31,26,1,24
DEFM	" L|schen "
DEFB	24+128

USRSTR:
DEFB	4,1,31,1,10
DEFM	"Bisheriger User "
DEFB	"&"+128
USTR1:DEFB	13,10,10
DEFM	"Neue Usernummer ? "
DEFB	"&"+128

CHNDRI:
LD	HL,DRISTR
CALL	PRINT
LD	A,(#AC00)	; AKTUELLES DRIVE
ADD	A,"A"
CALL	#BB5A	; DRIVE AUSGEBEN
LD	HL,NEWDRI
CALL	PRINT
GETDRI:CALL	#BB06
LD	B,0	; DRIVE 0
CP	13	; ENTER => A
JR	Z,NWDR
AND	223	; UPPER$
SUB	"A"
JR	Z,NWDR-1
CP	1
JR	NZ,GETDRI
LD	B,A
NWDR:LD	A,B
LD	(#AC00),A
JP	AMSDOS

DRISTR:
DEFB	12,31,1,8
DEFM	"Angemeldetes Laufwerk:"
DEFB	" "+128
NEWDRI:DEFB	13,10,10
DEFM	"Neues Laufwerk ?"
DEFB	" "+128

JR	C,GETDRI

MENU:DEFB	4,1
DEFB	31,7,3
DEFM	"TRANS"
YPOS:EQU	4
XPOS:EQU	7
DEFB	31,XPOS,YPOS+2
DEFM	"Men{"
DEFB	31,XPOS,YPOS+4
DEFM	"1  Disc-Tape"
DEFB	31,XPOS,YPOS+6
DEFM	"2  Tape-Disc"
DEFB	31,XPOS,YPOS+8
DEFM	"3  Tape-Tape"
DEFB	31,XPOS,YPOS+10
DEFM	"4  Disc-Disc"
DEFB	31,XPOS,YPOS+12
DEFM	"5  File l|schen"
DEFB	31,XPOS,YPOS+14
DEFM	"6  User setzen"
DEFB	31,XPOS,YPOS+16
DEFM	"7  Drive wechseln"
DEFB	31,XPOS,YPOS+18
DEFM	"0  Ende"
DEFB	31,7,25
DEFM	"(C) 1986,87  J{rgen Webe"
JUREND:DEFB	"r"+128

FINIS:

ZAENGE:EQU	FINIS-BEGIN
ZAENG1:EQU	PROG-BEGIN
ZAENG2:EQU	PROG2-PROG
ZAENG3:EQU	USER-PROG2
ZAENG4:EQU	FINIS-USER

DIST1:EQU	DESTI1-PROG
DIST2:EQU	DESTI2-PROG2
DIST3:EQU	DESTI3-AMSDOS
DIST4:EQU	DESTI4-USER

                       ÷; “QU	FINIS-USERÆÇDIST1:EQU	DESTI1-PROGÈDIST2:EQU	DESTI2