#****************************************************************************
#
#       Apple Emulator Make File
#
#****************************************************************************
#
#   Title:      Makefile
#
#   Group:      Emulator
#
#   Revision:   1.00
#
#   Date:       February 9, 1988
#
#   Author:     R W Spurlock
#
#******************************************************************************
#
#   Change log:
#
#     DATE    REVISION                  DESCRIPTION
#   --------  --------  -------------------------------------------------------
#   02/09/88    1.00    Original
#
#******************************************************************************

#
#       Definitions for directories
#
BLD     =..\build
SRC     =..\source
OBJ     =..\object
INC     =..\include

#
#       Definitions for the assembler
#
AS      = masm
AFLAGS  = /ml /t /Zi /Zd /I$(INC)

#
#       Definitions for the linker
#
LD      = link
LFLAGS  = /m /cparmaxalloc:1 /li

#******************************************************************************
#       PROGRAM module dependencies
#******************************************************************************

$(BLD)\Apple.Exe:       $(OBJ)\Emulate.Obj                              \
			$(OBJ)\Apple.Obj                                \
			$(OBJ)\Config.Obj                               \
			$(OBJ)\Cpu.Obj                                  \
			$(OBJ)\Device.Obj                               \
			$(OBJ)\Memory.Obj                               \
			$(OBJ)\Video.Obj                                \
			$(OBJ)\Cga.Obj                                  \
			$(OBJ)\Ega.Obj                                  \
			$(OBJ)\Hardware.Obj                             \
			$(OBJ)\Keyboard.Obj                             \
			$(OBJ)\Timer.Obj                                \
			$(OBJ)\Reset.Obj                                \
			$(OBJ)\Cassette.Obj                             \
			$(OBJ)\Speaker.Obj                              \
			$(OBJ)\Joystick.Obj                             \
			$(OBJ)\Empty.Obj                                \
			$(OBJ)\Floppy.Obj                               \
			$(OBJ)\Language.Obj                             \
			$(OBJ)\Cartrige.Obj                             \
			$(OBJ)\Serial.Obj                               \
			$(OBJ)\Int.Obj                                  \
			$(OBJ)\Debug.Obj                                \
			$(OBJ)\Break.Obj                                \
			$(OBJ)\Command.Obj                              \
			$(OBJ)\Input.Obj                                \
			$(OBJ)\Express.Obj                              \
			$(OBJ)\Printf.Obj                               \
			$(OBJ)\Tty.Obj                                  \
			$(OBJ)\Window.Obj                               \
			$(OBJ)\Support.Obj                              \
			$(OBJ)\Stack.Obj                                \
			$(OBJ)\Message.Obj                              \
			$(OBJ)\Data.Obj
	$(LD) $(LFLAGS) @Apple.Lnk

$(OBJ)\Emulate.Obj:     $(SRC)\Emulate.Asm                              \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Emulate,$(OBJ)\Emulate;

$(OBJ)\Apple.Obj:       $(SRC)\Apple.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Apple,$(OBJ)\Apple;

$(OBJ)\Config.Obj:      $(SRC)\Config.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Config,$(OBJ)\Config;

$(OBJ)\Cpu.obj:         $(SRC)\Cpu.asm                                  \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Cpu,$(OBJ)\Cpu;

$(OBJ)\Device.Obj:      $(SRC)\Device.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Device,$(OBJ)\Device;

$(OBJ)\Memory.Obj:      $(SRC)\Memory.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Memory,$(OBJ)\Memory;

$(OBJ)\Video.Obj:       $(SRC)\Video.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Video,$(OBJ)\Video;

$(OBJ)\Cga.Obj:         $(SRC)\Cga.Asm                                  \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Cga,$(OBJ)\Cga;

$(OBJ)\Ega.Obj:         $(SRC)\Ega.Asm                                  \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Ega,$(OBJ)\Ega;

$(OBJ)\Hardware.Obj:    $(SRC)\Hardware.Asm                             \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Hardware,$(OBJ)\Hardware;

$(OBJ)\Keyboard.Obj:    $(SRC)\Keyboard.Asm                             \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Keyboard,$(OBJ)\Keyboard;

$(OBJ)\Timer.Obj:       $(SRC)\TIMER.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Timer,$(OBJ)\Timer;

$(OBJ)\Reset.Obj:       $(SRC)\Reset.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Reset,$(OBJ)\Reset;

$(OBJ)\Cassette.Obj:    $(SRC)\Cassette.Asm                             \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Cassette,$(OBJ)\Cassette;

$(OBJ)\Speaker.Obj:     $(SRC)\Speaker.Asm                              \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Speaker,$(OBJ)\Speaker;

$(OBJ)\Joystick.Obj:    $(SRC)\Joystick.Asm                             \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Joystick,$(OBJ)\Joystick;

$(OBJ)\Empty.Obj:       $(SRC)\Empty.asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Empty,$(OBJ)\Empty;

$(OBJ)\Floppy.Obj:      $(SRC)\Floppy.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Floppy,$(OBJ)\Floppy;

$(OBJ)\Language.Obj:    $(SRC)\Language.Asm                             \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.inc
	$(AS) $(AFLAGS) $(SRC)\Language,$(OBJ)\Language;

$(OBJ)\Cartrige.Obj:    $(SRC)\Cartrige.Asm                             \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Cartrige,$(OBJ)\Cartrige;

$(OBJ)\Serial.Obj:      $(SRC)\Serial.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Serial,$(OBJ)\Serial;

$(OBJ)\Int.Obj:         $(SRC)\Int.Asm                                  \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Int,$(OBJ)\Int;

$(OBJ)\Debug.Obj:       $(SRC)\Debug.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Debug,$(OBJ)\Debug;

$(OBJ)\Break.Obj:       $(SRC)\Break.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Break,$(OBJ)\Break;

$(OBJ)\Command.Obj:     $(SRC)\Command.Asm                              \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Command,$(OBJ)\Command;

$(OBJ)\Input.Obj:       $(SRC)\Input.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Input,$(OBJ)\Input;

$(OBJ)\Express.Obj:     $(SRC)\Express.Asm                              \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Express,$(OBJ)\Express;

$(OBJ)\Printf.Obj:      $(SRC)\Printf.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Printf,$(OBJ)\Printf;

$(OBJ)\Tty.Obj:         $(SRC)\Tty.Asm                                  \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Tty,$(OBJ)\Tty;

$(OBJ)\Window.Obj:      $(SRC)\Window.Asm                               \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Window,$(OBJ)\Window;

$(OBJ)\Support.Obj:     $(SRC)\Support.Asm                              \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc
	$(AS) $(AFLAGS) $(SRC)\Support,$(OBJ)\Support;

$(OBJ)\Stack.Obj:       $(SRC)\Stack.Asm                                \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Stack,$(OBJ)\Stack;

$(OBJ)\Message.Obj:     $(SRC)\Message.Asm
	$(AS) $(AFLAGS) $(SRC)\Message,$(OBJ)\Message;

$(OBJ)\Data.Obj:        $(SRC)\Data.Asm                                 \
			$(INC)\Macros.Inc                               \
			$(INC)\Equates.Inc                              \
			$(INC)\Strucs.Inc
	$(AS) $(AFLAGS) $(SRC)\Data,$(OBJ)\Data;
