]> git.sur5r.net Git - cc65/commitdiff
Merge pull request #78 from groessler/something_to_pull
authorOliver Schmidt <ol.sc@web.de>
Thu, 30 Jan 2014 08:20:53 +0000 (00:20 -0800)
committerOliver Schmidt <ol.sc@web.de>
Thu, 30 Jan 2014 08:20:53 +0000 (00:20 -0800)
change mouse drivers to be more "floppy access" friendly

Makefile
libsrc/Makefile
libsrc/apple2/crt0.s
libsrc/apple2/exec.s
libsrc/apple2/reboot.s
src/Makefile

index d5a5228718928a6be3ea7d6f2c9cf1c6f9e0a3ef..b4882cc31543f283068667bc0deaef0589a8c480 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-all mostlyclean clean:
+all mostlyclean clean install:
        @$(MAKE) -C src    --no-print-directory $@
        @$(MAKE) -C libsrc --no-print-directory $@
 
@@ -14,6 +14,6 @@ lib:
 %:
        @$(MAKE) -C libsrc --no-print-directory $@
 
-.PHONY: all mostlyclean clean avail unavail bin lib
+.PHONY: all mostlyclean clean install avail unavail bin lib
 
 .SUFFIXES:
index fb716067be822a3c93c112ebfe355d9db17dad33..cbc778f11eb1bc071f8561c4c03d2e8306d505ac 100644 (file)
@@ -50,10 +50,18 @@ endif
 
 .SUFFIXES:
 
-.PHONY: all lib $(TARGETS) mostlyclean clean
+.PHONY: all lib $(TARGETS) mostlyclean clean install
 
 ifndef TARGET
 
+datadir = $(prefix)/share/cc65
+
+INSTALLDIRS = ../asminc ../cfg ../include \
+              $(filter-out $(wildcard ../include/*.*),$(wildcard ../include/*)) \
+              ../lib ../targetutil $(addprefix ../,$(DRVTYPES))
+
+INSTALL = install
+
 all lib: $(TARGETS)
 
 $(TARGETS):
@@ -65,6 +73,21 @@ mostlyclean:
 clean:
        $(call RMDIR,../wrk ../lib ../targetutil $(addprefix ../,$(DRVTYPES)))
 
+install:
+       $(foreach dir,$(INSTALLDIRS),$(INSTALL_recipe))
+
+##########
+
+define INSTALL_recipe
+
+$(if $(prefix),,$(error variable `prefix' must be set))
+$(INSTALL) -d $(subst ..,$(DESTDIR)$(datadir),$(dir))
+$(INSTALL) -m644 $(dir)/* $(subst ..,$(DESTDIR)$(datadir),$(dir))
+
+endef
+
+##########
+
 else # TARGET
 
 CA65FLAGS =
index 27c44f016dced102309cbe7af2b79a41dfa3a7e5..a140a7249041c74863dc69328d2688e4eb83d24b 100644 (file)
@@ -107,7 +107,7 @@ exit:   ldx     #$02
         txs                     ; Re-init stack pointer
 
         ; We're done
-        jmp     (done)
+        jmp     done
 
         .segment        "INIT"
 
@@ -148,8 +148,8 @@ init:   ldx     #zpspace-1
         ; No BASIC.SYSTEM so quit to ProDOS dispatcher instead
         lda     #<quit
         ldx     #>quit
-        sta     done
-        stx     done+1
+        sta     done+1
+        stx     done+2
         
         ; No BASIC.SYSTEM so use addr of ProDOS system global page
         lda     #<$BF00
@@ -202,8 +202,8 @@ q_param:.byte   $04             ; param_count
 
         .data
 
-        ; Location to jump to when we're done
-done:   .addr   DOSWARM
+        ; Final jump when we're done
+done:   jmp     DOSWARM         ; Potentially patched at runtime
 
         .segment        "ZPSAVE"
 
index 914e10c50e0e70666dcd84ae770ac7d8c3ccf1cb..c486306bbde88873de31b77251d05c5a25e39632 100644 (file)
@@ -161,8 +161,8 @@ setbuf: lda     #$00            ; Low byte
         ; Call loader stub after C libary shutdown
         lda     #<target
         ldx     #>target
-        sta     done
-        stx     done+1
+        sta     done+1
+        stx     done+2
 
         ; Initiate C libary shutdown
         jmp     _exit
index 89c34bdf0f43b1fc1ffbc8e50f8a0a5ea9eb3399..8ee1ba0670fead5e8432a72475f2da272012c2ca 100644 (file)
@@ -16,6 +16,6 @@ initreboot:
         ; Quit to PWRUP
         lda     #<$FAA6
         ldx     #>$FAA6
-        sta     done
-        stx     done+1
+        sta     done+1
+        stx     done+2
         rts
index 7e6964579080335696a9e195755a665ae0871aca..051c7eb1fe952cfd93bcc8294f088e620909dbba 100644 (file)
@@ -12,19 +12,14 @@ PROGS = ar65  \
         sim65 \
         sp65
 
-ifdef prefix
-  CA65_INC = $(prefix)/lib/cc65/asminc
-  CC65_INC = $(prefix)/lib/cc65/include
-  LD65_LIB = $(prefix)/lib/cc65/lib
-  LD65_OBJ = $(prefix)/lib/cc65/lib
-  LD65_CFG = $(prefix)/lib/cc65/cfg
-else
-  CA65_INC := $(abspath ../asminc)
-  CC65_INC := $(abspath ../include)
-  LD65_LIB := $(abspath ../lib)
-  LD65_OBJ := $(abspath ../lib)
-  LD65_CFG := $(abspath ../cfg)
-endif
+bindir  := $(prefix)/bin
+datadir := $(if $(prefix),$(prefix)/share/cc65,$(abspath ..))
+
+CA65_INC = $(datadir)/asminc
+CC65_INC = $(datadir)/include
+LD65_LIB = $(datadir)/lib
+LD65_OBJ = $(datadir)/lib
+LD65_CFG = $(datadir)/cfg
 
 CFLAGS += -MMD -MP -O -std=c89 -I common \
           -Wall -Wextra -Wno-char-subscripts -Werror $(USER_CFLAGS) \
@@ -33,9 +28,11 @@ CFLAGS += -MMD -MP -O -std=c89 -I common \
 
 LDLIBS += -lm
 
+INSTALL = install
+
 .SUFFIXES:
 
-.PHONY: all bin $(PROGS) mostlyclean clean avail unavail
+.PHONY: all bin $(PROGS) mostlyclean clean install avail unavail
 
 all bin: $(PROGS)
 
@@ -45,6 +42,11 @@ mostlyclean:
 clean:
        $(RM) -r ../wrk ../bin
 
+install:
+       $(if $(prefix),,$(error variable `prefix' must be set))
+       $(INSTALL) -d $(DESTDIR)$(bindir)
+       $(INSTALL) ../bin/* $(DESTDIR)$(bindir)
+
 avail:
        $(foreach prog,$(PROGS),$(AVAIL_recipe))