diff --git a/Makefile b/Makefile index 9d0630a..c0a0a88 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -targets := ns.clock cricket dclock selectors ram.drv quit +targets := ns.clock cricket dclock selectors ram.drv quit pause .PHONY: all $(targets) package diff --git a/cricket/cricket.system.s b/cricket/cricket.system.s index 79b49c8..e7c2bff 100644 --- a/cricket/cricket.system.s +++ b/cricket/cricket.system.s @@ -116,8 +116,8 @@ cricket_not_found: not_found: ;; Show failure message - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Not Found." + jsr log_message + scrcode PRODUCT, " - Not Found." .byte 0 rts @@ -205,8 +205,8 @@ loop: lda driver,y lda ROMIN2 ;; Display success message - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Installed " + jsr log_message + scrcode PRODUCT, " - " .byte 0 ;; Display the current date @@ -234,7 +234,6 @@ loop: lda driver,y pla ; year jsr cout_number - jsr CROUT rts ; done! .endproc diff --git a/dclock/dclock.system.s b/dclock/dclock.system.s index 151c579..3b21502 100644 --- a/dclock/dclock.system.s +++ b/dclock/dclock.system.s @@ -75,8 +75,8 @@ DATA := SLOT4IO+3 ; Slinky data byte bcc InstallDriver ;; Show failure message - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Not Found." + jsr log_message + scrcode PRODUCT, " - Not Found." .byte 0 done: rts @@ -125,8 +125,8 @@ loop: lda driver,y lda ROMIN2 ;; Display success message - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Installed " + jsr log_message + scrcode PRODUCT, " - " .byte 0 ;; Display the current date @@ -154,7 +154,6 @@ loop: lda driver,y pla ; year jsr cout_number - jsr CROUT rts ; done! .endproc diff --git a/inc/driver_preamble.inc b/inc/driver_preamble.inc index 42081b9..2da68cc 100644 --- a/inc/driver_preamble.inc +++ b/inc/driver_preamble.inc @@ -66,7 +66,7 @@ load: lda src,y ; self-modified ;; -------------------------------------------------- ;; Identify the name of this SYS file, which should be present at ;; $280 with or without a path prefix. Search pathname buffer - ;; backwards for '/', then copy name into |self_name|. + ;; backwards for '/', then copy name into `self_name`. ;; Find '/' (which may not be present, prefix is optional) ldx PATHNAME @@ -80,7 +80,7 @@ load: lda src,y ; self-modified dex bne :- - ;; Copy name into |self_name| buffer + ;; Copy name into `self_name` buffer copy_name: cpy #0 beq no_name @@ -135,7 +135,6 @@ self_name: .res 16 jsr INIT jsr SETVID jsr SETKBD - jsr HOME ;; Update System Bit Map ldx #BITMAP_SIZE-1 @@ -398,6 +397,15 @@ found_self_flag: ;;; Common Routines ;;; ============================================================ +;;; ------------------------------------------------------------ +;;; Use this for logging the result of a driver. Uses `zstrout`. + +.proc log_message + jsr CROUT + jsr CROUT + ;; fall through +.endproc + ;;; ------------------------------------------------------------ ;;; Output a high-ascii, null-terminated string. ;;; String immediately follows the JSR. diff --git a/ns.clock/ns.clock.system.s b/ns.clock/ns.clock.system.s index e899a6e..22f8d59 100644 --- a/ns.clock/ns.clock.system.s +++ b/ns.clock/ns.clock.system.s @@ -127,8 +127,8 @@ not_found: bpl :- ;; Show failure message - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Not Found." + jsr log_message + scrcode PRODUCT, " - Not Found." .byte 0 rts @@ -181,8 +181,8 @@ loop: lda driver,y lda ROMIN2 ;; Display success message - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Installed " + jsr log_message + scrcode PRODUCT, " - " .byte 0 ;; Display the current date @@ -210,7 +210,6 @@ loop: lda driver,y pla ; year jsr cout_number - jsr CROUT rts ; done! .endproc diff --git a/package.sh b/package.sh index 0b4feda..26a105e 100755 --- a/package.sh +++ b/package.sh @@ -26,6 +26,7 @@ add_file "cricket/out/test.BIN" "test#062000" "/$VOLNAME add_file "dclock/out/dclock.system.SYS" "dclock.system#FF0000" "/$VOLNAME" add_file "ns.clock/out/ns.clock.system.SYS" "ns.clock.system#FF0000" "/$VOLNAME" add_file "quit/out/quit.system.SYS" "quit.system#FF0000" "/$VOLNAME" +add_file "pause/out/pause.system.SYS" "pause.system#FF0000" "/$VOLNAME" add_file "ram.drv/out/ram.drv.system.SYS" "ram.drv.system#FF0000" "/$VOLNAME" add_file "selectors/out/bbb.system.SYS" "bbb.system#FF0000" "/$VOLNAME" add_file "selectors/out/buhbye.system.SYS" "buhbye.system#FF0000" "/$VOLNAME" diff --git a/pause/Makefile b/pause/Makefile new file mode 100644 index 0000000..ccfec40 --- /dev/null +++ b/pause/Makefile @@ -0,0 +1,38 @@ + +CAFLAGS = --target apple2enh --list-bytes 0 +LDFLAGS = --config apple2-asm.cfg + +OUTDIR = out + +HEADERS = $(wildcard *.inc) $(wildcard ../inc/*.inc) + +TARGETS = \ + $(OUTDIR)/pause.system.SYS + +# For timestamps +MM = $(shell date "+%-m") +DD = $(shell date "+%-d") +YY = $(shell date "+%-y") +DEFINES = -D DD=$(DD) -D MM=$(MM) -D YY=$(YY) + +XATTR := $(shell command -v xattr 2> /dev/null) + +.PHONY: clean all +all: $(OUTDIR) $(TARGETS) + +$(OUTDIR): + mkdir -p $(OUTDIR) + +clean: + rm -f $(OUTDIR)/*.o + rm -f $(OUTDIR)/*.list + rm -f $(TARGETS) + +$(OUTDIR)/%.o: %.s $(HEADERS) + ca65 $(CAFLAGS) $(DEFINES) --listing $(basename $@).list -o $@ $< + +$(OUTDIR)/%.SYS: $(OUTDIR)/%.o + ld65 $(LDFLAGS) -o $@ $< +ifdef XATTR + xattr -wx prodos.AuxType '00 20' $@ +endif diff --git a/pause/pause.system.s b/pause/pause.system.s new file mode 100644 index 0000000..70cf18c --- /dev/null +++ b/pause/pause.system.s @@ -0,0 +1,30 @@ + + .setcpu "6502" + .linecont + + .feature string_escapes + + .include "apple2.inc" + .include "apple2.mac" + + .include "../inc/apple2.inc" + .include "../inc/macros.inc" + .include "../inc/prodos.inc" + .include "../inc/ascii.inc" + +;;; ************************************************************ + .include "../inc/driver_preamble.inc" +;;; ************************************************************ + + +.proc maybe_install_driver + ldx #4 +: lda #$FF + jsr $FCA8 ; WAIT + dex + bne :- + rts +.endproc + +;;; ************************************************************ + .include "../inc/driver_postamble.inc" +;;; ************************************************************ diff --git a/ram.drv/ram.drv.system.s b/ram.drv/ram.drv.system.s index 652f156..0f69d20 100644 --- a/ram.drv/ram.drv.system.s +++ b/ram.drv/ram.drv.system.s @@ -409,9 +409,8 @@ finish: bit ROMIN2 install_success: sta ALTZPOFF - jsr HOME - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - " + jsr log_message + scrcode PRODUCT, " - " .byte 0 ;; Initialize Applesoft zero page locations required by LINPRNT @@ -433,9 +432,8 @@ install_success: install_failure: sta ALTZPOFF - jsr HOME - jsr zstrout - scrcode "\r\r\r", PRODUCT, " - Not Installed" + jsr log_message + scrcode PRODUCT, " - Not Found" .byte 0 rts