• show current Month's calendar in 256 bytes

    From Kerr-Mudd, John@21:1/5 to All on Wed May 11 11:11:56 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    DOS prog to display current month - parm of capital 'M' starts week at Monday, defaults to Sunday.
    uses int 21 fn 2A for getting current date and fn 09 for display. 254 bytes.

    d 100 l100
    1632:0100 BE 82 00 80-3C 4D 75 01-43 BF 24 09-57 B4 2A CD ....<Mu.C.$.W.*. 1632:0110 21 51 28 C2-BD 30 30 BE-D8 01 A5 B9-06 00 B0 20 !Q(..00........ 1632:0120 F3 AA 88 F1-49 01 CE 01-CE 01 CE A5-A4 AA 58 50 ....I.........XP 1632:0130 B1 64 52 99-F7 F1 D4 0A-86 E0 09 E8-AB 92 D4 0A .dR............. 1632:0140 86 E0 09 E8-AB 5A BE C8-01 A5 01 DE-01 DE B0 20 .....Z......... 1632:0150 B1 07 38 D9-75 03 BE CA-01 A5 AA E2-F5 BE C8 01 ..8.u........... 1632:0160 A5 F6 DB 00-D3 80 C3 06-88 F0 B2 1C-2C 02 74 10 ............,.t. 1632:0170 79 02 04 0C-91 B8 B5 06-D3 E8 80 D2-02 59 EB 07 y............Y.. 1632:0180 59 80 E1 03-75 01 42 88-D8 BE 0A 0D-B9 07 00 D4 Y...u.B......... 1632:0190 07 98 74 0D-28 C1 51 91-B0 20 AA AA-AA E2 FB 58 ..t.(.Q.. .....X 1632:01A0 91 40 38 C2-72 16 50 D4-0A 86 E0 3C-00 75 02 B0 .@8.r.P....<.u.. 1632:01B0 10 31 E8 AB-B0 20 AA 58-E2 E7 B1 07-96 AB 96 73 .1... .X.......s 1632:01C0 E0 5A 89 D0-AA CD 21 C3-0D 0A 53 75-4D 6F 54 75 .Z....!...SuMoTu 1632:01D0 57 65 54 68-46 72 53 61-0D 0A 4A 61-6E 46 65 62 WeThFrSa..JanFeb 1632:01E0 4D 61 72 41-70 72 4D 61-79 4A 75 6E-4A 75 6C 41 MarAprMayJunJulA 1632:01F0 75 67 53 65-70 4F 63 74-4E 6F 76 44-65 63 00 00 ugSepOctNovDec..

    --
    Bah, and indeed Humbug.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kerr-Mudd, John@21:1/5 to John" on Fri May 13 14:45:01 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    On Wed, 11 May 2022 11:11:56 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    DOS prog to display current month - parm of capital 'M' starts week at Monday, defaults to Sunday.
    uses int 21 fn 2A for getting current date and fn 09 for display. 254 bytes.

    d 100 l100
    1632:0100 BE 82 00 80-3C 4D 75 01-43 BF 24 09-57 B4 2A CD ....<Mu.C.$.W.*. 1632:0110 21 51 28 C2-BD 30 30 BE-D8 01 A5 B9-06 00 B0 20 !Q(..00........ 1632:0120 F3 AA 88 F1-49 01 CE 01-CE 01 CE A5-A4 AA 58 50 ....I.........XP 1632:0130 B1 64 52 99-F7 F1 D4 0A-86 E0 09 E8-AB 92 D4 0A .dR............. 1632:0140 86 E0 09 E8-AB 5A BE C8-01 A5 01 DE-01 DE B0 20 .....Z......... 1632:0150 B1 07 38 D9-75 03 BE CA-01 A5 AA E2-F5 BE C8 01 ..8.u........... 1632:0160 A5 F6 DB 00-D3 80 C3 06-88 F0 B2 1C-2C 02 74 10 ............,.t. 1632:0170 79 02 04 0C-91 B8 B5 06-D3 E8 80 D2-02 59 EB 07 y............Y.. 1632:0180 59 80 E1 03-75 01 42 88-D8 BE 0A 0D-B9 07 00 D4 Y...u.B......... 1632:0190 07 98 74 0D-28 C1 51 91-B0 20 AA AA-AA E2 FB 58 ..t.(.Q.. .....X 1632:01A0 91 40 38 C2-72 16 50 D4-0A 86 E0 3C-00 75 02 B0 .@8.r.P....<.u.. 1632:01B0 10 31 E8 AB-B0 20 AA 58-E2 E7 B1 07-96 AB 96 73 .1... .X.......s 1632:01C0 E0 5A 89 D0-AA CD 21 C3-0D 0A 53 75-4D 6F 54 75 .Z....!...SuMoTu 1632:01D0 57 65 54 68-46 72 53 61-0D 0A 4A 61-6E 46 65 62 WeThFrSa..JanFeb 1632:01E0 4D 61 72 41-70 72 4D 61-79 4A 75 6E-4A 75 6C 41 MarAprMayJunJulA 1632:01F0 75 67 53 65-70 4F 63 74-4E 6F 76 44-65 63 00 00 ugSepOctNovDec..

    N.B. Warranty expires 31st Jan 2100.

    --
    Bah, and indeed Humbug.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Frank Kotler@21:1/5 to John on Fri May 13 23:57:38 2022
    On 05/13/2022 09:45 AM, Kerr-Mudd, John wrote:
    On Wed, 11 May 2022 11:11:56 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:
    ...
    N.B. Warranty expires 31st Jan 2100.

    Wolfgang tried to reply to this and had a problem.

    I just had a problem, too!

    Lemme try just CLAX...

    It is an imperfect world. I try to do my part. :)

    Best,
    Frank

    .

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Frank Kotler@21:1/5 to Frank Kotler on Sat May 14 00:51:39 2022
    On 05/13/2022 11:57 PM, Frank Kotler wrote:
    On 05/13/2022 09:45 AM, Kerr-Mudd, John wrote:
    On Wed, 11 May 2022 11:11:56 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:
    ...
    N.B. Warranty expires 31st Jan 2100.

    Wolfgang tried to reply to this and had a problem.

    I just had a problem, too!

    Lemme try just CLAX...

    It is an imperfect world. I try to do my part. :)

    Best,
    Frank

    Unknown problem.

    Sleep first. Think later.

    Best
    Frank

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kerr-Mudd, John@21:1/5 to John" on Sat May 14 09:25:20 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    On Fri, 13 May 2022 14:45:01 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    On Wed, 11 May 2022 11:11:56 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    DOS prog to display current month - parm of capital 'M' starts week at Monday, defaults to Sunday.
    uses int 21 fn 2A for getting current date and fn 09 for display. 254 bytes.


    []

    N.B. Warranty expires 31st Jan 2100.

    d 100 l100
    16AB:0100 BE 82 00 80-3C 4D 75 01-43 BF 24 09-57 B4 2A CD ....<Mu.C.$.W.*. 16AB:0110 21 51 28 C2-28 DA 80 C2-06 BD 30 30-BE DA 01 A5 !Q(.(.....00.... 16AB:0120 B9 06 00 B0-20 F3 AA 88-F1 49 01 CE-01 CE 01 CE .... ....I...... 16AB:0130 A5 A4 AA 58-B1 64 52 99-F7 F1 52 08-D2 75 02 88 ...X.dR...R..u.. 16AB:0140 C2 D4 0A 86-E0 09 E8 AB-58 D4 0A 86-E0 09 E8 AB ........X....... 16AB:0150 BE CA 01 A5-01 DE 01 DE-B0 20 B1 07-38 D9 75 03 ......... ..8.u. 16AB:0160 BE CC 01 A5-AA E2 F5 BE-CA 01 A5 5B-88 F8 B7 1C ...........[.... 16AB:0170 2C 02 74 0F-79 02 04 0C-91 B8 B5 06-D3 E8 80 D7 ,.t.y........... 16AB:0180 02 EB 07 80-E2 03 75 02-FE C7 92 BE-0A 0D B9 07 ......u......... 16AB:0190 00 D4 07 98-74 0D 28 C1-51 91 B0 20-AA AA AA E2 ....t.(.Q.. .... 16AB:01A0 FB 58 91 40-38 C7 72 16-50 D4 0A 86-E0 3C 00 75 .X.@8.r.P....<.u 16AB:01B0 02 B0 10 31-E8 AB B0 20-AA 58 E2 E7-B1 07 96 AB ...1... .X...... 16AB:01C0 96 73 E0 5A-89 D0 AA CD-21 C3 0D 0A-53 75 4D 6F .s.Z....!...SuMo 16AB:01D0 54 75 57 65-54 68 46 72-53 61 0D 0A-4A 61 6E 46 TuWeThFrSa..JanF 16AB:01E0 65 62 4D 61-72 41 70 72-4D 61 79 4A-75 6E 4A 75 ebMarAprMayJunJu 16AB:01F0 6C 41 75 67-53 65 70 4F-63 74 4E 6F-76 44 65 63 lAugSepOctNovDec

    New! Improved! 256 bytes. Warranty expires Dec 31st 9999. (code is OK to y32k, but it won't display 5 digit year)

    Thanks for taking a peek Wolfgang, don't get hung up on the DOS interrupt, focus on the leap year test and month length array...

    --
    Bah, and indeed Humbug.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Frank Kotler@21:1/5 to John on Sat May 14 20:10:38 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    On 05/14/2022 04:25 AM, Kerr-Mudd, John wrote:
    On Fri, 13 May 2022 14:45:01 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:
    New! Improved! 256 bytes. Warranty expires Dec 31st 9999. (code is OK to y32k, but it won't display 5 digit year)

    Thanks for taking a peek Wolfgang, don't get hung up on the DOS interrupt, focus on the leap year test and month length array...
    Tempurary problem? I hope!
    Try again Wolfgang. You too, Steve.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Frank Kotler@21:1/5 to John on Sat May 14 20:19:32 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    On 05/14/2022 04:25 AM, Kerr-Mudd, John wrote:
    On Fri, 13 May 2022 14:45:01 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    ...
    Thanks for taking a peek Wolfgang, don't get hung up on the DOS interrupt, focus on the leap year test and month length array...


    Temporary problem? I hope!

    Try again Wolfgang and Steve.

    Best,
    Frank

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kerr-Mudd, John@21:1/5 to John" on Mon May 16 17:15:53 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    On Sat, 14 May 2022 09:25:20 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    On Fri, 13 May 2022 14:45:01 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    On Wed, 11 May 2022 11:11:56 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    DOS prog to display current month - parm of capital 'M' starts week at Monday, defaults to Sunday.
    uses int 21 fn 2A for getting current date and fn 09 for display.
    []

    New! Improved! 256 bytes. Warranty expires Dec 31st 9999. (code is OK to y32k, but it won't display 5 digit year)

    Thanks for taking a peek Wolfgang, don't get hung up on the DOS interrupt, focus on the leap year test and month length array...

    244 bytes:

    d 100 l100
    1636:0100 A0 82 00 3C-4D 75 01 43-BF 24 09 57-B4 2A CD 21 ...<Mu.C.$.W.*.! 1636:0110 51 28 C2 28-DA 80 C2 06-BE CE 01 A5-B9 06 00 B0 Q(.(............ 1636:0120 20 F3 AA 88-F1 49 01 CE-01 CE 01 CE-A5 A4 AA 58 ....I.........X 1636:0130 B1 64 52 99-F7 F1 52 08-D2 75 02 88-C2 83 E2 03 .dR...R..u...... 1636:0140 4A F6 D6 FE-CE B1 0A F6-F1 0D 30 30-AB 58 F6 F1 J.........00.X.. 1636:0150 0D 30 30 AB-BE BE 01 56-A5 01 DE 01-DE B0 20 B1 .00....V...... . 1636:0160 07 38 D9 75-03 BE C0 01-A5 AA E2 F5-5E A5 5B 80 .8.u........^.[. 1636:0170 FF 02 74 01-99 88 F9 BD-B5 06 D3 ED-80 D6 1E 93 ..t............. 1636:0180 BE 0A 0D B1-07 D4 07 74-0D 28 C1 51-88 C1 93 AA .......t.(.Q.... 1636:0190 AA AA E2 FB-91 59 40 38-C6 72 17 50-D4 0A 86 E0 .....Y@8.r.P.... 1636:01A0 3C 00 75 02-B0 10 35 30-30 AB B0 20-AA 58 E2 E6 <.u...500.. .X.. 1636:01B0 B1 07 96 AB-96 73 DF 5A-89 D0 AA CD-21 C3 0D 0A .....s.Z....!... 1636:01C0 53 75 4D 6F-54 75 57 65-54 68 46 72-53 61 0D 0A SuMoTuWeThFrSa.. 1636:01D0 4A 61 6E 46-65 62 4D 61-72 41 70 72-4D 61 79 4A JanFebMarAprMayJ 1636:01E0 75 6E 4A 75-6C 41 75 67-53 65 70 4F-63 74 4E 6F unJulAugSepOctNo 1636:01F0 76 44 65 63-20 20 20 20-20 20 20 20-20 20 20 20 vDec


    y2k code slimmed down; still a bit clunky I feel:
    actual code for those not keen to convert hex dumps:

    ;PrtYear: I: ax=year ; O: dh=Febadj
    mov cl,100d ; ch 0 still
    push dx ; hi=mth lo=StrtDayOff
    ; xor dx,dx
    cwd ; prog no good after y32k! but [-1]
    div cx ; ax=CC, dx=YY ; bad disp after 10k
    push dx
    ;; lpyrcalc I: dl=YY, al=CC; O: dh=Febadj [14]
    or dl,dl ; YY=0? [2]
    jnz notcent
    mov dl,al ; so check CC

    notcent: ; lpyr notlpyr
    and dx,3 ; 0 nz [3]
    dec dx ; dh=FFFF dh=0
    not dh ; 0 -1 [2]
    dec dh ; -1, -2 [2]

    mov cl,10 ; lth prt [13]
    putnumal ; CC (6)
    pop ax
    putnumal ; YY
    ;;ah nz

    [omitted header print]


    pop bx ; hi=mth lo=StrtDayOff

    ;; calc mthlth I: bh=mth, dl=Febadj; O: dl=mthlth [17+10=27], dl lost
    ;; uses cl, bp. al untouched

    ;; lpyr check earlier

    cmp bh,2 ; [3]
    je IsFeb ; retain dh Febadj
    cwd ; dh=0 for non Feb mths any year
    IsFeb:
    mov cl,bh ; DNOSAJJMAMFJ
    mov bp,0x06B5 ; 101011010101; default feb to 30
    shr bp,cl
    adc dh,30 ; this mth lth [16]


    [omitted rtn to print day numbers offset to correct column, stop at dh]




    --
    Bah, and indeed Humbug.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kerr-Mudd, John@21:1/5 to John" on Tue May 17 08:03:34 2022
    XPost: alt.lang.asm, comp.os.msdos.programmer

    On Mon, 16 May 2022 17:15:53 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    On Sat, 14 May 2022 09:25:20 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    On Fri, 13 May 2022 14:45:01 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    On Wed, 11 May 2022 11:11:56 +0100
    "Kerr-Mudd, John" <admin@nospicedham.127.0.0.1> wrote:

    DOS prog to display current month - parm of capital 'M' starts week at Monday, defaults to Sunday.
    uses int 21 fn 2A for getting current date and fn 09 for display.
    []

    New! Improved! 256 bytes. Warranty expires Dec 31st 9999. (code is OK to y32k, but it won't display 5 digit year)

    Thanks for taking a peek Wolfgang, don't get hung up on the DOS interrupt, focus on the leap year test and month length array...

    244 bytes:

    []


    y2k code slimmed down; still a bit clunky I feel:
    actual code for those not keen to convert hex dumps:

    ;PrtYear: I: ax=year ; O: dh=Febadj
    mov cl,100d ; ch 0 still
    push dx ; hi=mth lo=StrtDayOff
    ; xor dx,dx
    cwd ; prog no good after y32k! but [-1]
    div cx ; ax=CC, dx=YY ; bad disp after 10k
    push dx
    ;; lpyrcalc I: dl=YY, al=CC; O: dh=Febadj [14]
    or dl,dl ; YY=0? [2]
    jnz notcent
    mov dl,al ; so check CC

    notcent: ; lpyr notlpyr
    and dx,3 ; 0 nz [3]
    dec dx ; dh=FFFF dh=0

    ; not dh ; 0 -1 [2]
    ; dec dh ; -1, -2 [2]

    Better: (but only by 1)
    or dh,-2 ; -1, -2 [3]




    mov cl,10 ; lth prt [13]
    putnumal ; CC (6)
    pop ax
    putnumal ; YY
    ;;ah nz

    [omitted header print]


    pop bx ; hi=mth lo=StrtDayOff

    ;; calc mthlth I: bh=mth, dl=Febadj; O: dl=mthlth [17+10=27], dl lost
    ;; uses cl, bp. al untouched

    ;; lpyr check earlier

    cmp bh,2 ; [3]
    je IsFeb ; retain dh Febadj
    cwd ; dh=0 for non Feb mths any year
    IsFeb:
    mov cl,bh ; DNOSAJJMAMFJ
    mov bp,0x06B5 ; 101011010101; default feb to 30
    shr bp,cl
    adc dh,30 ; this mth lth [16]


    [omitted rtn to print day numbers offset to correct column, stop at dh]


    --
    Bah, and indeed Humbug.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)