
; ERWEITERTES  AMSDOS

; NOV/DEZ BY JUERGEN WEBER
;            WIESENTALSTR. 1
;            7170 SCHWAEBISCH HALL

; IDRIVE BEWIRKT EINEN AUFRUF DES DOS

; IERA RUFT EINE TEXTHARDCOPY AUF

; IUSER KOPIERT EIN FILE

; IREN DEFINIERT DIN TASTATUR   
; IREN,par LEGT ZUSAETZLICH DEUTSCHEN ZEICHSATZ AN

; IB,0 SETZT SCREEN BASE #40
; IB,1 SETZT SCREEN BASE #C0


; IA,adr RUFT MONITOR AB adr AUF

; ICPM,dri BOOTET CPM PLUS VON DRIVE dri


ORG	#DC00
ERSDRI:; ERSATZ FUER IDRIVE
OR	A	; => DOS
JP	NZ,#CDE4
JP	IDRIVE
ERSERA:; ERSATZ FUER IERA
OR	A
JP	NZ,#D48A
JP	TEXTHC
ERSUSE:; ERSATZ FUER IUSER
OR	A
JP	NZ,#CDFE
JP	FILECOPY
ERSREN:; ERSATZ FUER IREN
CP	2
JP	NC,#D4C4
JP	KEYDEF

ERSCP:
CP	1
JP	NZ,#C1B2
JP	CPM
ERSINI:
PUSH	AF
PUSH	HL
PUSH	BC
PUSH	DE
PUSH	IX
PUSH	IY
CALL	KEYINIT
POP	IY
POP	IX
POP	DE
POP	BC
POP	HL
POP	AF
JP	#C1BC

ERSA:
CP	1
JP	Z,#F000	; ZUM EDITOR
JP	#CDDA

ERSB:DEC	A	; 1 PAR
JP	NZ,#CDDD
INC	DE
LD	A,D
OR	E
DEC	DE
JR	NZ,NOTOAS
LD	BC,#7FC1
OUT	(C),C
LD	HL,#C000
LD	C,#FF
JP	#1B	; FAR PCHL
NOTOAS:
LD	A,E
OR	D
LD	B,#40
JR	Z,SBA
DEC	A
JP	NZ,#CDDD
LD	B,#C0
SBA:LD	A,B
JP	#BC08	; SCR SET BASE
CPM:
LD	A,E
OR	D
JR	Z,OKC
DEC	A
JP	NZ,#C1B2	; CPM
OKC:LD	A,E
LD	HL,CPMLAG
LD	DE,#100
LD	BC,#200
LDIR
LD	(#231),A	; DRIVE A ODER B
LD	E,A
CALL	#C56C	; ID ?
LD	A,(#BE51)
AND	#F0
CP	#C0
JR	Z,START
LD	A,#4A
LD	(#20F),A
LD	A,1
LD	(#207),A
START:
LD	HL,#24B
LD	C,#FF
JP	#BD16	; MC START PROGRAM
IDRIVE:
CALL	GETBUF
LD	IY,(#BE7D)
CALL	TITEL
CALL	ABABUF
LD	A,20
JP	#BB72

GETBUF:RST	#18
DEFW	OLDABA
RST	#18
DEFW	GBUF
LD	(BUFFER),DE
RET
ABABUF:
RST	#18
DEFW	OLDABA
RET
GBUF:DEFW	#F632
DEFB	0
OLDABA:DEFW	#D2AD
DEFB	0
TITEL:
CP	#FC	; ESC
RET	Z
LD	A,2
CALL	#BC0E	; MODE 2

LD	HL,79*256+24	; WINDOW 1,80,24,25
LD	DE,21
CALL	#BB66	; TXT WIN ENABLE
LD	BC,1
CALL	#BBB7	; WINDOW SWAP 0,1

LD	DE,(BUFFER)
PUSH	IX
LD	HL,(#BDD4)
PUSH	HL
LD	HL,#F3CD
LD	(#BDD4),HL
LD	A,(#BB5C)
PUSH	AF
AND	%111111
LD	(#BB5C),A	; ROM-ROM
CALL	#CD70	; DISC CATALOG
POP	HL
LD	A,H
LD	(#BB5C),A
POP	HL
LD	(#BDD4),HL
POP	IX
RET	Z	; CANCEL

LD	B,5
CH:LD	A,11
CALL	#BB5A
DJNZ	$-3
CALL	#BB60
CP	" "
LD	B,1
JR	NZ,CH	; OBEREN RAND SUCHEN
LD	A,10	; WIEDER 1 RUNTER
CALL	#BB5A

ABHIER:
LD	D,1
LD	E,D

MOVCUR:; D=X
CALL	GETKEY
CP	#E0	; COPY
JP	Z,FICOP
CP	13	; ENTER
JP	Z,TITEL
CP	#F7	; SHIFT CSR RECHTS
JP	Z,SCH
CP	#F6	; SHIFT CSR LINKS
JP	Z,SCT
BIT	7,A
JP	Z,OTHCOM
CP	#FC
RET	Z
CP	#F0
JR	C,MOVCUR
CP	#FC
JR	NC,MOVCUR
AND	3	;NUR BIT 0+1
OR	A
JR	NZ,CC1
LD	A,E	;Y-ZAEHLER 
CP	1	; OBEN ?
JR	Z,MOVCUR
CURHO:DEC	E
LD	A,11	;CURSOR HOCH
CALL	BEWCUR

CC1:CP	1	; ABWAERTS
JR	NZ,CC2
INC	E
LD	A,10	;CURSOR UNTEN
CALL	BEWCUR
CALL	#BB60	; READ CHAR
CP	" "
JR	Z,CURHO

CC2:CP	2	; LINKS
JR	NZ,CC3
LINK:LD	A,D
CP	1
JR	Z,MOVCUR
SUB	20	;SPALTE ZURUECK
LD	D,A
LD	A,8
CALL	BEWEG	;CURSOR LINKS

CC3:CP	3	; RECHTS
JR	NZ,MOVCUR
LD	A,D
CP	61
JP	Z,MOVCUR

ADD	A,20	; RECHTS
LD	D,A
LD	A,9
CALL	BEWEG
CALL	#BB60	; READ CHAR  
CP	" "
JR	Z,LINK
JP	MOVCUR

SCH:LD	A,(IY+1)
LD	(IY+1),0
CP	15
JR	Z,GOTIT
INC	A
LD	(IY+1),A
JR	GOTIT
SCT:LD	A,(IY+1)
OR	A
LD	(IY+1),15
JR	Z,GOTIT
DEC	A
LD	(IY+1),A
GOTIT:JP	TITEL

GETKEY:
PUSH	HL
PUSH	BC
CALL	#BB81	; TXT CUR ON
LD	C,0	; FLAG FUER CURSOR AN/AUS
TIME:EQU	2500	; BESTIMMT BLINKPERIODE
LD	HL,TIME
INP:CALL	#BB09	; KM READ CHAR
JR	C,WEITER	; TASTE GEDRUECKT

; ***** CURSORBLINKEN ****

DEC	HL
LD	A,H
OR	L	; ZAEHLER 0?
JR	NZ,INP
LD	HL,TIME	; ZAEHLER WIEDER HOCHSETZEN

LD	A,C
CPL	; C=NOT C
OR	A
LD	C,A
CALL	NZ,#BB81	; CURSOR AN
CALL	Z,#BB84	; CURSOR AUS
JR	INP

WEITER:CALL	#BB84	; TXT CUR OFF
POP	BC
POP	HL
RET

OTHCOM:
AND	223	; UPPER$
CP	"H"
JP	Z,TXTHC
CP	"C"
JP	Z,TITEL
CP	"I"
JP	Z,INFO
CP	"R"
JP	Z,REN	; RENAME
CP	"S"
JP	Z,RUNPRO
CP	"L"
JP	Z,LOAPRO
CP	"T"
JP	Z,LISTFILE
CP	"D"
JP	Z,DRIVE
CP	"E"
JP	Z,ERA
CP	"G"
JP	Z,GETBIN
CP	"K"
JP	Z,ERALL
JP	MOVCUR
BEWCUR:
CALL	#BB5A	; TXT OUTPUT
RET

BEWEG:PUSH	BC
CALL	#BB84
LD	B,20
BEW:CALL	#BB5A
DJNZ	BEW
POP	BC
RET


BUCH:; VOM SCHIRM LESEN
LD	HL,(BUFFER)
LD	DE,2036
LD	B,12
ADD	HL,DE
PUSH	HL
RVS:
CALL	#BB60
LD	(HL),A
INC	HL
LD	A,9
CALL	#BB5A	; CSR RECHTS
DJNZ	RVS
POP	HL
RET

READ:CALL	#BB75	; LOCATE
JP	#BB60	; RD CHAR

FREI:EQU	#B196	; COMMAND WORD COPY

CLIN:CALL	#BB09	;CLEAR INPUT
JR	C,CLIN
RET

GETBIN:; BINAERFILE LESEN
CALL	#BB78	; TXT GET CURSOR
PUSH	HL
CALL	BUCH
PUSH	HL
LD	DE,GETSTR
CALL	CONF
POP	HL
LD	DE,(BUFFER)
LD	B,12
CALL	#CD4C	; DISC IN OPEN
EX	DE,HL
CALL	#CD58	; DISC IN DIRECT
CALL	C,#CD4F	; DISC IN CLOSE
POP	HL
JP	NC,TITEL
CALL	#BB75

INFO:
CALL	BUCH	; NAMEN HOLEN
PUSH	HL
LD	BC,1	; WINDOW SWAP 0,1
CALL	#BBB7
POP	HL
LD	DE,(BUFFER)
LD	A,12	; CLS
CALL	#BB5A
LD	B,A
CALL	#CD4C	;DISC IN OPEN
JP	NC,XINF
PUSH	HL	; ZEIGT AUF HEADERWERTE
PUSH	BC	; LAENGE
PUSH	DE
PUSH	AF

LD	B,5
CALL	BLANK	; 5 BLANKS
LD	HL,(BUFFER)
LD	DE,2036
ADD	HL,DE
LD	B,12
FL:LD	A,(HL)
CP	" "
CALL	NZ,#BB5A
INC	HL
DJNZ	FL

LD	B,4
CALL	BLANK	; 7 BLANKS
POP	AF	; TYP
PUSH	AF
BIT	4,A
LD	B,A
LD	A,"*"
JR	NZ,WEIT2
LD	A,B
ADD	A,"$"
WEIT2:CALL	#BB5A
LD	B,2
CALL	BLANK
POP	AF
CALL	BYTE
LD	B,2
CALL	BLANK	; UND NOCH 4 BLANKS
POP	HL	; START
CALL	ZWBYTE; LADEADRESSE
LD	B,2
CALL	BLANK	; 5 BLANKS
POP	HL
LD	A,H	; WENN ASCII
OR	L
JR	Z,EXIT	; DANN FERTIG
CALL	ZWBYTE	; FILELAENGE
LD	B,6
CALL	BLANK	; 6 BLANKS
POP	IX
LD	L,(IX+26)
LD	H,(IX+27)
CALL	ZWBYTE	; AUTOSTART
EXIT:
LD	A,10
CALL	#BB5A
LD	A,13
CALL	#BB5A
LD	B,10
CALL	BLANK
LD	HL,ENDKEY
CALL	ZEICH
CALL	GETKEY
XINF:CALL	#CD52	;DISC IN ABANDON
LD	BC,1
CALL	#BBB7	; WINDOW SWAP
JP	TITEL

ZWBYTE:LD	A,H
CALL	BYTE
LD	A,L


BYTE:
PUSH	AF
RRA
RRA
RRA
RRA
CALL	NIBB
POP	AF
NIBB:
AND	#F
ADD	A,#90
DAA
ADC	A,#40
DAA
JP	#BB5A

BLANK:LD	A," "	;BLANKS AUSGEBEN
CALL	#BB5A
DJNZ	BLANK
RET

REN:
LD	HL,(BUFFER)
PUSH	HL
LD	DE,6
ADD	HL,DE
PUSH	HL
POP	IX
CALL	BUCH
EX	DE,HL
POP	HL
LD	(IX),L
LD	(IX+1),H
LD	(HL),12
INC	HL
LD	(HL),E
INC	HL
LD	(HL),D
INC	HL
PUSH	HL
LD	HL,NEWNAM
CALL	ZEICH
CALL	INPUT
EX	DE,HL
POP	HL
LD	(IX+2),L
LD	(IX+3),H
LD	(HL),B
INC	HL
LD	(HL),E
INC	HL
LD	(HL),D
LD	A,2
CALL	#C030	; REN
JP	TITEL
INPUT:
LD	HL,#ACA4	; BASICEINGABEPUFFER
LD	(HL),0
CALL	#BD3A
RET	NC
LD	B,0
PUSH	HL
LD	A,(HL)
INC	HL
INC	B
OR	A
JR	NZ,$-4
DEC	B
POP	HL
SCF
RET
ERALL:
LD	HL,ERSTR
CALL	ZEICH
CALL	INPUT
JR	ERCON

ERA:
CALL	BUCH
PUSH	HL
LD	DE,ERASTR
CALL	CONF
POP	HL
LD	B,12
ERCON:LD	IX,-20
ADD	IX,SP
EX	DE,HL
PUSH	IX
POP	HL
DEC	HL
LD	(HL),D
DEC	HL
LD	(HL),E
DEC	HL
LD	(HL),B
LD	(IX),L
LD	(IX+1),H
LD	A,1
CALL	#C02D	; ERA
JP	TITEL
DRIVE:
LD	BC,1
CALL	#BBB7
LD	HL,(#BE7D)	; ZEIGER AUF DOS-RAM
LD	A,(HL)
OR	A
LD	A,1
JR	Z,$+3
XOR	A
CALL	#CDDB	; |A / |B
JP	TITEL
LISTFILE:
CALL	BUCH
PUSH	HL
LD	DE,LSTSTR
CALL	CONF
POP	HL
LD	A,12
CALL	#BB5A	; CLS
LD	B,12
LD	DE,(BUFFER)
CALL	#CD4C	; DISC IN OPEN
AND	%11110
CP	%10110
JR	NZ,ZEILE
ASCII:
CALL	RDCHAR
JR	NC,HRDEND
AND	127
CALL	#BB5A
CALL	TSTESC
JR	Z,HRDEND	; ESC
JR	ASCII
ZEILE:
CALL	RDCHAR
JR	C,$+4
JR	NZ,HRDEND	; ANDERER FEHLER ALS EOF  
LD	L,A
CALL	RDCHAR
JR	C,$+4
JR	NZ,HRDEND	; ANDERER FEHLER ALS EOF
LD	H,A
OR	L
JR	Z,HRDEND	; PROGRAMMENDE
DEC	HL
DEC	HL	; 2 BYTES FUER ZEILENLAENGE
EX	DE,HL
INPBUF:EQU	#40
LD	HL,INPBUF
LD	(HL),E
INC	HL
LD	(HL),D	; ZEILENLAENGE ABLEGEN
INC	HL
EX	DE,HL
LLOOP:
CALL	RDCHAR
JR	C,$+4
JR	NZ,HRDEND
LD	(DE),A
INC	DE
DEC	HL
LD	A,H
OR	L
JR	NZ,LLOOP
LD	HL,INPBUF
RST	#18
DEFW	LIST
LD	HL,#ACA4
PRINT:LD	A,(HL)
OR	A
JR	Z,LINEF
PUSH	HL
CALL	#BB5D
POP	HL
INC	HL
JR	PRINT
LINEF:
CALL	CRLFOU
CALL	TSTESC
JR	Z,HRDEND
JR	ZEILE
CRLFOU:
LD	A,10
CALL	#BB5A
LD	A,13
JP	#BB5A
HRDEND:
CALL	#CD4F	; DISC IN CLOSE
LD	HL,#40	; EINGABEBUFFER LOESCHEN
LD	DE,#41
LD	(HL),0
LD	BC,255
LDIR
JP	EXIT

RDCHAR:CALL	#CD55	; DISC IN CHAR
RET	C
CP	#1A
RET	Z	; SOFT EOF CY -  Z +
SCF
CCF
RET	; CY -  Z -

TSTESC:
CALL	#BB09
CP	252	; ESC
RET	NZ
CALL	CLIN
CALL	GETKEY
CP	252
RET
LIST:DEFW	#E163
DEFB	0	; BASIC
LOAPRO:
LD	HL,LOAD
LD	BC,LOASTR
JR	LOARUN
RUNPRO:
LD	HL,RUN
LD	BC,RUNSTR
LOARUN:
PUSH	BC
LD	DE,#ACA4	; EINGABEPUFFER
LD	BC,5
LDIR
CALL	BUCH
POP	DE	; => STRING
PUSH	HL
CALL	CONF
POP	HL
LD	DE,#ACA4+5
LD	BC,12
LDIR
XOR	A
LD	(DE),A	; NULL ANS ENDE
LD	HL,#ACA4
RST	#18
DEFW	EXADR
RET
EXADR:DEFW	#C0B5
DEFB	0
LOAD:DEFM	"LOAD"
DEFB	34
RUN:DEFM	"RUN "
DEFB	34
ZEICH:LD	A,(HL)	; EIN ZEICHEN AUF
OR	A	; SCHIRM ODER DRUCKER
RET	Z	; AUSGEBEN
INC	HL
CALL	#BB5A
JR	ZEICH

CONF:
PUSH	HL
EX	DE,HL
CALL	ZEICH
POP	HL
PUSH	BC
LD	B,12
CL:LD	A,(HL)
CP	" "
CALL	NZ,#BB5A
INC	HL
DJNZ	CL
LD	HL,PRENT
CALL	ZEICH
CALL	GETKEY
POP	BC
CP	13
PUSH	AF
LD	HL,OKCONF
CALL	Z,ZEICH
POP	AF
RET	Z
POP	HL	; VORHER GEPUSHED
POP	HL	; RET
JP	TITEL
; VERSCHIEDENE STRINGS

OKCONF:DEFM	"  Confirmed ..."
DEFB	0
LOASTR:DEFB	31,5,24
DEFM	"Load "
DEFB	0
RUNSTR:DEFB	31,5,24
DEFM	"Execute "
DEFB	0
GETSTR:DEFB	31,5,24
DEFM	"Get binary file "
DEFB	0
LSTSTR:DEFB	31,5,24
DEFM	"Type "
DEFB	0
COPSTR:DEFB	31,16,24
DEFM	"Copy "
DEFB	0
PRENT:DEFM	" ?   Press ENTER to confirm. "
DEFB	0
ERSTR:DEFB	31,5,25
DEFM	"Enter file to erase : "
DEFB	0
ERASTR:DEFB	31,5,25
DEFM	"Erase "
DEFB	0
NEWNAM:DEFB	31,5,24
DEFM	"Enter new filename: "
DEFB	0
STRIN1:DEFB	31,30,20
DEFM	"Printer (y/n)?"
DEFB	0
PROFF:DEFM	"Printer is OFF LINE !"
DEFB	7,0
ENDKEY:
DEFM	"Press any key to continue"
DEFB	0
BUFFER:EQU	#B0BD

TXTHC:CALL	TEXTHC
JP	MOVCUR

TEXTHC:
CALL	#BB78
PUSH	HL
CALL	HC
POP	HL
JP	#BB75
HC:
CALL	#BC11	; SCR GET MODE
LD	E,21
JR	C,H1	; MODE 0
LD	E,41
JR	Z,H1
LD	E,81
H1:
LD	HL,#101
ZEIPRI:PUSH	HL
CALL	#BB75	; LOCATE
CALL	#BB60	; RD CHAR
JR	C,GOOD
LD	A,32
GOOD:
AND	127
CP	32
JR	NC,$+4
LD	A,32
CALL	DRUCK

POP	HL
INC	H	; X=X+1
LD	A,H
CP	E	; ZEILE FERTIG?
JR	NZ,ZEIPRI
CALL	CRLF
LD	H,1
INC	L
PUSH	HL
LD	A,23	; CTRL
CALL	#BB1E
POP	HL
JR	NZ,CRLF
LD	A,L
CP	26
JR	NZ,ZEIPRI

CRLF:
LD	A,10
CALL	DRUCK
LD	A,13

DRUCK:CALL	#BD2B	; MC PRINT CHAR
JR	NC,DRUCK
RET

FICOP:
CALL	BUCH
PUSH	HL
LD	DE,COPSTR
CALL	CONF
POP	HL
LD	DE,#ACA4
LD	A,12
LD	(DE),A
INC	DE
LD	BC,12
PUSH	DE
LDIR
LD	HL,5*256+24
CALL	#BB75
POP	HL
LD	B,12
CALL	FEINS
JP	TITEL
FILECOPY:
LD	HL,GETNAM
CALL	ZEICH
LD	HL,#ACA5
CALL	INPUT+3
RET	NC
DEC	HL
LD	(HL),B	; EINGEGEBENE ZEICHEN
INC	HL
FEINS:LD	DE,#C000
CALL	#BC77
RET	NC
PUSH	DE
PUSH	BC	; LEN
PUSH	AF
PUSH	HL
EX	DE,HL
CALL	#BC83
CALL	C,#BC7A
JR	C,NOUT
OUT:POP	HL
POP	AF
POP	BC
POP	DE
JP	#BC7D	; CAS IN ABANDON
NOUT:LD	HL,GNENAM
CALL	ZEICH
LD	HL,(#BE7D)
LD	DE,#2B0
ADD	HL,DE	; HL => FLOPPYBUFFER
CALL	INPUT+3
JR	NC,OUT
JR	NZ,NONEW
LD	HL,#ACA4
LD	B,(HL)
INC	HL
NONEW:
LD	DE,#C000
CALL	#BC8C
JR	NC,OUT
POP	HL
PUSH	IX
PUSH	HL
POP	IX
LD	C,(IX+26)
LD	B,(IX+27)
POP	IX
POP	AF
POP	DE
POP	HL
CALL	#BC98
JP	C,#BC8F
JP	#BC92	; CAS OUT ABANDON

GETNAM:DEFB	13,10
DEFM	"Enter Filename:     "
DEFB	0
GNENAM:DEFB	13,10
DEFM	"Enter New Filename: "
DEFB	0
KEYDEF:
PUSH	AF
CALL	KEYINIT
POP	AF
OR	A
RET	Z
CALL	#BBAE	; TXT GET MATRIX TABLE
RET	NC	; KEINE MATRIX
LD	D,A
SUB	92
RET	NC
LD	A,91
SUB	D
EX	DE,HL
LD	H,0
LD	L,A
ADD	HL,HL
ADD	HL,HL
ADD	HL,HL	; HL=A*8
ADD	HL,DE
EX	DE,HL
LD	HL,SYMTAB
LD	BC,296
LDIR
RET

KEYINIT:
ANZAHL:EQU	18
LD	HL,DEFTAB
LD	C,ANZAHL
LOOP:
PUSH	BC
LD	A,(HL)	; KEY NUMBER
INC	HL
LD	B,(HL)	; NORMAL
INC	HL
PUSH	HL
PUSH	AF
CALL	#BB27	; KM SET TRANSLATE
POP	AF
POP	HL
LD	B,(HL)	; SHIFT
PUSH	HL
PUSH	AF
CALL	#BB2D	; KM SET SHIFT
POP	AF
POP	HL
INC	HL
LD	B,(HL)	; CONTROL
PUSH	HL
PUSH	AF
CALL	#BB33	; KM SET CONTROL
POP	AF
POP	HL
INC	HL
POP	BC
DEC	C
JR	NZ,LOOP
LD	HL,EXTAB
LD	DE,#ACA4
PUSH	DE
LD	BC,XEND-EXTAB
LDIR
POP	HL
ANZ2:EQU	5
LD	B,ANZ2
LOOP2:
PUSH	BC
LD	A,(HL)	; TOKEN
INC	HL
LD	B,0
LD	C,(HL)	; LAENGE
INC	HL
PUSH	HL
ADD	HL,BC
EX	(SP),HL	; ZEIGT AUF ANFANG NAECHSTEN
LD	B,A
CALL	#BB0F	; KM SET EXPAND
POP	HL
POP	BC
LD	A,7
JP	NC,#BB5A	; RETURN MIT PIEPSER
DJNZ	LOOP2
RET

DEFTAB:
DEFB	43,#7A,#5A,#1A	; Z AUF Y
DEFB	71,#79,#59,#19	; Y AUF Z
DEFB	26,125,93,0	; UE AUF @
DEFB	29,124,92,#FF	; OE AUF :/*
DEFB	28,123,91,#FF	; AE AUF ;/+
DEFB	39,44,59,255	; ,/; AUF ,/<
DEFB	31,46,58,255	; ./> AUF ./>
DEFB	30,45,95,255	; -/_ AUF //?
DEFB	57,51,64,255	; 3/@ AUF 3/#
DEFB	41,55,47,255	; 7// AUF 7/'
DEFB	32,48,61,#1F	; 0/= AUF 0/_
DEFB	25,126,63,255	; SZ/? AUF -/=
DEFB	24,35,39,#1E	; #/' AUF ^/£
DEFB	17,43,42,#1B	; +/* AUF [/{
DEFB	19,60,62,#1D	; </> AUF ]/}
DEFB	6,139,159,140	; LOAD" AUF SHIFT/ENTER
DEFB	7,138,156,155	; LIST UND EDIT AUF .
DEFB	15,128,158,157	; MODE 2 UND |DRIVE AUF 0
EXTAB:
DEFB	158,7
DEFM	"|DRIVE"
DEFB	13

DEFB	157,7	; MODE 2 AUF CTRL-0
DEFM	"MODE 2"
DEFB	13

DEFB	156,5
DEFM	"LIST "
DEFB	155,5
DEFM	"EDIT "	; EDIT AUF CTRL/.

DEFB	159,5
DEFM	"LOAD"
DEFB	34
XEND:
DEFM	"  Created November/December 1987 by Juergen Weber"
DEFM	"  Wiesentalstr. 1   7170 Schwaebisch Hall    "
CPMLAG:DEFS	#200
SYMTAB:
FM	"  Wiesentalstr. 1   7170 Schwaebisch Hall    "