; Library: ZSLIB ; Version: 2.1 ; Module: ZSMDAT1 ; Version: 1.1 ; Author: Carson Wilson ; Date: February 2, 1990 ; Changes: No longer tests for invalid date/time. ; Version: 1.0 ; Author: Carson Wilson ; Date: January 6, 1990 ; Purpose: Store date in long form to memory. ; PUBLIC MDAT1 EXTRN MA2HC ; SYSLIB EXTRN MSTR,MAFHC,MOUT ; ZSLIB ; ; MDAT1 - Store long form of date, e.g., "March 2, 1988" to memory at DE ; ; Entry: - points to date as BCD yy mm dd. ; - points to memory (18 bytes max.) ; Exit: - points to byte after output. ; Uses: - . ; MDAT1: push hl push bc push af ld c,(hl) ; Save year inc hl ld b,(hl) ; Save month inc hl ld a,(hl) push af ; Save day ; Store month xor a ; Clear carry for DAA ld hl,MONTHS ld a,b ; Get month push de ; Save memory NXTMTH: ld e,(hl) inc hl ld d,(hl) inc hl dec a daa ; Decimal adjust jr nz,NXTMTH ex de,hl ; HL --> month pop de ; Restore memory call MSTR ; Month to memory call SPACE ; Store day pop af ; Get day call MAFHC ld a,',' call MOUT call SPACE ; Store year ld a,c ; Get year cp 78h ld a,19h jr nc,TWENTY ; 20th century ld a,20h TWENTY: call MAFHC ; Century ld a,c call MA2HC ; Year pop af pop bc pop hl ret ; ------------------- ; ; Subroutines ; SPACE: ld a,' ' jp MOUT ; -------------------- ; ; Initialized Data ; MONTHS: dw JAN dw FEB dw MAR dw APR dw MAY dw JUN dw JUL dw AUG dw SEP dw OCT dw NOV dw DEC JAN: db 'January',0 FEB: db 'February',0 MAR: db 'March',0 APR: db 'April',0 MAY: db 'May',0 JUN: db 'June',0 JUL: db 'July' ,0 AUG: db 'August',0 SEP: db 'September',0 OCT: db 'October',0 NOV: db 'November',0 DEC: db 'December',0 end ; End ZSMDAT1.Z80