DATE: Mask off hour/minute in case of extra bits

This commit is contained in:
Joshua Bell 2018-08-05 11:09:44 -07:00
parent f6e359cfb7
commit feaac6d4fc
1 changed files with 40 additions and 1 deletions

41
date.s
View File

@ -12,6 +12,42 @@
start:
PRODOS_CALL MLI_GET_TIME, 0
;;; Standard format:
;;;
;;; 49041 ($BF91) 49040 ($BF90)
;;; 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;; DATE: | year | month | day |
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;;
;;; 49043 ($BF93) 49042 ($BF92)
;;; 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;; TIME: |0 0 0| hour | |0 0| minute |
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;;
;;; Extended format (ProDOS 2.5):
;;; https://groups.google.com/d/topic/comp.sys.apple2/6MwlJSKTmQc/discussion
;;;
;;; 49039 ($BF8F) 49038 ($BF8E)
;;; 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;; xTIME: | xSeconds | xMilliseconds |
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;;
;;; 49041 ($BF91) 49040 ($BF90)
;;; 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;; DATE: | year | month | day |
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;;
;;; 49043 ($BF93) 49042 ($BF92)
;;; 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;;; TIME: |xYear| hour | |0 0| minute |
;;; +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
;; Date
lda DATELO+1 ; month
@ -37,7 +73,8 @@ start:
jsr COUT
pla ; year
jsr cout_number
;; TODO: Shift in xYear bits
jsr cout_number ; TODO: Support 16-bit numbers
lda #HI(' ')
jsr COUT
@ -46,12 +83,14 @@ start:
;; Time
lda TIMELO+1 ; hour
and #%00011111
jsr cout_number
lda #HI(':') ; ':'
jsr COUT
lda TIMELO ; minute
and #%00111111
jsr cout_number
jsr CROUT