Difference between revisions of "TRACKERS MB SRC EN INSTALL"

From MSX MUSIC WIKI
Jump to: navigation, search
 
Line 1: Line 1:
O*U+,Q-
+
O*U+,Q-
 
+
db 0feh
+
db 0feh
dw begin
+
dw begin
dw einde
+
dw einde
dw start
+
dw start
org 0d900h
+
org 0d900h
 
+
SNGPAG EQU 1
+
SNGPAG EQU 1
EDTPAG EQU 2
+
EDTPAG EQU 2
DSKPAG EQU 3
+
DSKPAG EQU 3
EM1PAG EQU 4
+
EM1PAG EQU 4
EM2PAG EQU 5
+
EM2PAG EQU 5
VOCPAG EQU 6
+
VOCPAG EQU 6
SMPPAG EQU 7
+
SMPPAG EQU 7
 
+
begin:
+
begin:
subs: PUSH AF
+
subs: PUSH AF
IN A,(0FDh)
+
IN A,(0FDh)
LD (LSTBNK),A
+
LD (LSTBNK),A
LD A,SMPPAG
+
LD A,SMPPAG
OUT (0FDh),A
+
OUT (0FDh),A
POP AF
+
POP AF
CALL 04000h
+
CALL 04000h
LD A,(LSTBNK)
+
LD A,(LSTBNK)
OUT (0FDh),A
+
OUT (0FDh),A
RET
+
RET
 
+
subs2: PUSH AF
+
subs2: PUSH AF
IN A,(0FDh)
+
IN A,(0FDh)
LD (LSTBNK2),A
+
LD (LSTBNK2),A
LD A,VOCPAG
+
LD A,VOCPAG
OUT (0FDh),A
+
OUT (0FDh),A
POP AF
+
POP AF
CALL 04000h
+
CALL 04000h
LD A,(LSTBNK2)
+
LD A,(LSTBNK2)
OUT (0FDh),A
+
OUT (0FDh),A
RET
+
RET
 
+
subs3: PUSH AF
+
subs3: PUSH AF
IN A,(0FDh)
+
IN A,(0FDh)
LD (LSTBNK3),A
+
LD (LSTBNK3),A
LD A,DSKPAG
+
LD A,DSKPAG
OUT (0FDh),A
+
OUT (0FDh),A
POP AF
+
POP AF
CALL 04000h
+
CALL 04000h
LD A,(LSTBNK3)
+
LD A,(LSTBNK3)
OUT (0FDh),A
+
OUT (0FDh),A
RET
+
RET
 
+
LSTBNK: DB 0
+
LSTBNK: DB 0
LSTBNK2:DB 0
+
LSTBNK2:DB 0
LSTBNK3:DB 0
+
LSTBNK3:DB 0
start:
+
start:
CALL SRCFMP
+
CALL SRCFMP
CALL STPDRV
+
CALL STPDRV
LD A,EDTPAG
+
LD A,EDTPAG
OUT (0FDh),A
+
OUT (0FDh),A
LD A,SNGPAG
+
LD A,SNGPAG
OUT (0FEh),A
+
OUT (0FEh),A
DI
+
DI
LD A,(0F342h)
+
LD A,(0F342h)
LD H,040h
+
LD H,040h
CALL 024h
+
CALL 024h
JP 04000h
+
JP 04000h
 
+
 
+
 
+
;Name: FMSRCH
+
;Name: FMSRCH
;Inv: -
+
;Inv: -
;Uitv: (FMSLOT) contains slot no. or & HFF if no PAC found
+
;Uitv: (FMSLOT) contains slot no. or & HFF if no PAC found
;Modifies: AF,BC,DE,HL
+
;Modifies: AF,BC,DE,HL
 
+
SRCFMP: LD HL,0FCCAh
+
SRCFMP: LD HL,0FCCAh
XOR A
+
XOR A
LD B,4
+
LD B,4
FMLP2: PUSH BC
+
FMLP2: PUSH BC
LD B,4
+
LD B,4
FMLP1: PUSH BC
+
FMLP1: PUSH BC
PUSH AF
+
PUSH AF
PUSH HL
+
PUSH HL
SET 7,A
+
SET 7,A
LD H,040h
+
LD H,040h
CALL 024h
+
CALL 024h
POP HL
+
POP HL
PUSH HL
+
PUSH HL
LD A,(HL)
+
LD A,(HL)
CP 020h
+
CP 020h
CALL Z,FMTEST
+
CALL Z,FMTEST
JP Z,FMFND
+
JP Z,FMFND
POP HL
+
POP HL
POP AF
+
POP AF
ADD A,4
+
ADD A,4
AND 0Fh
+
AND 0Fh
INC HL
+
INC HL
INC HL
+
INC HL
INC HL
+
INC HL
INC HL
+
INC HL
POP BC
+
POP BC
DJNZ FMLP1
+
DJNZ FMLP1
ADD A,1
+
ADD A,1
AND 03h
+
AND 03h
POP BC
+
POP BC
DJNZ FMLP2
+
DJNZ FMLP2
JP SETBAS
+
JP SETBAS
 
+
FMTEST: LD HL,0401Ch
+
FMTEST: LD HL,0401Ch
LD DE,FMTEXT
+
LD DE,FMTEXT
LD B,4
+
LD B,4
FMLP: LD A,(DE)
+
FMLP: LD A,(DE)
CP (HL)
+
CP (HL)
RET NZ
+
RET NZ
INC HL
+
INC HL
INC DE
+
INC DE
DJNZ FMLP
+
DJNZ FMLP
CP A
+
CP A
RET
+
RET
 
+
FMFND: POP HL
+
FMFND: POP HL
POP AF
+
POP AF
POP BC
+
POP BC
POP BC
+
POP BC
LD A,0FFh
+
LD A,0FFh
LD (FMSLOT),A
+
LD (FMSLOT),A
LD A,(07FF6h)
+
LD A,(07FF6h)
OR 1
+
OR 1
LD (07FF6h),A
+
LD (07FF6h),A
 
+
SETBAS: DI
+
SETBAS: DI
LD A,(0FCC1h)
+
LD A,(0FCC1h)
LD H,040h
+
LD H,040h
CALL 024h
+
CALL 024h
EI
+
EI
RET
+
RET
 
+
STPDRV: LD B,0
+
STPDRV: LD B,0
STPDRL: PUSH BC
+
STPDRL: PUSH BC
CALL 0FD9FH
+
CALL 0FD9FH
POP BC
+
POP BC
DJNZ STPDRL
+
DJNZ STPDRL
RET
+
RET
 
+
FMTEXT: DEFB "OPLL"
+
FMTEXT: DEFB "OPLL"
FMSLOT: DEFB 0
+
FMSLOT: DEFB 0
 
+
einde: end
+
einde: end
 
+
���������������������������������������������������������������������������������������������������
+
���������������������������������������������������������������������������������������������������

Latest revision as of 19:49, 17 July 2019

O*U+,Q-

	db	0feh
	dw	begin
	dw	einde
	dw	start
	org	0d900h

SNGPAG	EQU	1
EDTPAG	EQU	2
DSKPAG	EQU	3
EM1PAG	EQU	4
EM2PAG	EQU	5
VOCPAG	EQU	6
SMPPAG	EQU	7

begin:
subs:	PUSH	AF
	IN	A,(0FDh)
	LD	(LSTBNK),A
	LD	A,SMPPAG
	OUT	(0FDh),A
	POP	AF
	CALL	04000h
	LD	A,(LSTBNK)
	OUT	(0FDh),A
	RET

subs2:	PUSH	AF
	IN	A,(0FDh)
	LD	(LSTBNK2),A
	LD	A,VOCPAG
	OUT	(0FDh),A
	POP	AF
	CALL	04000h
	LD	A,(LSTBNK2)
	OUT	(0FDh),A
	RET

subs3:	PUSH	AF
	IN	A,(0FDh)
	LD	(LSTBNK3),A
	LD	A,DSKPAG
	OUT	(0FDh),A
	POP	AF
	CALL	04000h
	LD	A,(LSTBNK3)
	OUT	(0FDh),A
	RET

LSTBNK: DB	0
LSTBNK2:DB	0
LSTBNK3:DB	0
start:
	CALL	SRCFMP
	CALL	STPDRV
	LD	A,EDTPAG
	OUT	(0FDh),A
	LD	A,SNGPAG
	OUT	(0FEh),A
	DI
	LD	A,(0F342h)
	LD	H,040h
	CALL	024h
	JP	04000h



;Name:	FMSRCH
;Inv:	-
;Uitv:	(FMSLOT) contains slot no. or & HFF if no PAC found
;Modifies:	AF,BC,DE,HL

SRCFMP: LD	HL,0FCCAh
	XOR	A
	LD	B,4
FMLP2:	PUSH	BC
	LD	B,4
FMLP1:	PUSH	BC
	PUSH	AF
	PUSH	HL
	SET	7,A
	LD	H,040h
	CALL	024h
	POP	HL
	PUSH	HL
	LD	A,(HL)
	CP	020h
	CALL	Z,FMTEST
	JP	Z,FMFND
	POP	HL
	POP	AF
	ADD	A,4
	AND	0Fh
	INC	HL
	INC	HL
	INC	HL
	INC	HL
	POP	BC
	DJNZ	FMLP1
	ADD	A,1
	AND	03h
	POP	BC
	DJNZ	FMLP2
	JP	SETBAS

FMTEST: LD	HL,0401Ch
	LD	DE,FMTEXT
	LD	B,4
FMLP:	LD	A,(DE)
	CP	(HL)
	RET	NZ
	INC	HL
	INC	DE
	DJNZ	FMLP
	CP	A
	RET

FMFND:	POP	HL
	POP	AF
	POP	BC
	POP	BC
	LD	A,0FFh
	LD	(FMSLOT),A
	LD	A,(07FF6h)
	OR	1
	LD	(07FF6h),A

SETBAS: DI
	LD	A,(0FCC1h)
	LD	H,040h
	CALL	024h
	EI
	RET

STPDRV: LD	B,0
STPDRL: PUSH	BC
	CALL	0FD9FH
	POP	BC
	DJNZ	STPDRL
	RET

FMTEXT: DEFB	"OPLL"
FMSLOT: DEFB	0

einde:	end

���������������������������������������������������������������������������������������������������