; Library: ZSLIB ; Version: 2.1 ; Module: ZSPRDAT1 ; Version: 1.1 ; Author: Carson Wilson ; Date: February 2, 1990 ; Changes: Shortened code. No longer tests for invalid date/time. ; Version: 1.0 ; Author: Carson Wilson ; Date: February 16, 1989 ; Changes: Now uses day to validate stamps (for CP/M Plus). ; Version: 0.1 ; Author: Carson Wilson ; Date: August 9, 1988 ; Purpose: Print date in long form. ; PUBLIC PRDAT1 EXTRN PSTR,COUT,PA2HC ; SYSLIB EXTRN PAFHC ; ZSLIB ; ; PRDAT1 - Print long form of date, e.g., "March 2, 1988" ; ; Entry: - points to date as BCD yy mm dd. ; Exit: - Date printed. ; Uses: - none. ; PRDAT1: push hl push de push bc push af ld c,(hl) ; Save year inc hl ld b,(hl) ; Save month inc hl ; Test day ld a,(hl) push af ; Save day ; Print month xor a ; Clear carry for DAA ld hl,MONTHS ld a,b ; Get month NXTMTH: ld e,(hl) inc hl ld d,(hl) inc hl dec a daa ; Decimal adjust jr nz,NXTMTH ex de,hl call PSTR ; Month to console call SPACE ; Print day pop af ; Get day call PAFHC ld a,',' call COUT call SPACE ; Print year ld a,c ; Get year cp 78h ld a,19h jr nc,TWENTY ; 20th century ld a,20h TWENTY: call PAFHC ; Century ld a,c call PA2HC ; Year EXIT: pop af pop bc pop de pop hl ret ; ------------------- ; ; Subroutines ; SPACE: ld a,' ' jp COUT ; -------------------- ; ; 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 ZSPRDAT1.Z80