Have clock/ram drivers print at the bottom of the screen.

Trying this out. Might not stick with it.

Also added a PAUSE.SYSTEM that just waits a bit, if you want a delay
in your startup sequence to watch the log messages.
This commit is contained in:
Joshua Bell 2021-08-25 20:49:41 -07:00
parent 1a3aa1e8c6
commit 46aef091df
9 changed files with 97 additions and 25 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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"

38
pause/Makefile Normal file
View File

@ -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

30
pause/pause.system.s Normal file
View File

@ -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"
;;; ************************************************************

View File

@ -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