; LAST UPDATE: 15.07.2025 savelij include macros.a80 include fn_const.a80 include fn_macros.a80 include macros_sp.a80 include dss_sp.a80 HDR_FLX "-DATE" JP PluginEntry db "Date preferences plug-in for Flex Navigator",0 db "2003 (c) Mac Buster",0 db "$VER: 1.0 15-Jul-2003",0 PluginEntry: .L1 MAKEWINDOW WINSUBOBJ.STORE W_MAIN 152,96,336,66 W_FILL 4,2,328,10,COLORI.BLACK W_TEXT 6,3,COLORI.WHITE," Date preferences v1.0" W_HORIZLINE 1,13,336 W_HORIZLINE 17,28,304 W_HORIZLINE 17,46,304 W_TEXT 18,34,COLORP.HIGHGRAY,"Day" aDay: EQU $ - STRLEN("Day") - 2 W_BORDER 38,33,56,10 W_ICONDOWNARROW 60,34 W_ICONUPARROW 76,34 W_TEXT 100,34,COLORP.HIGHGRAY,"Month" aMonth: EQU $ - STRLEN("Month") - 2 W_BORDER 133,33,92,10 W_ICONDOWNARROW 191,34 W_ICONUPARROW 207,34 W_TEXT 230,34,COLORP.HIGHGRAY,"Year" aYear: EQU $ - STRLEN("Year") - 2 W_BORDER 254,33,64,10 W_ICONDOWNARROW 285,34 W_ICONUPARROW 301,34 W_BUTTONTEXT 18,51,64,11,COLORP.HIGHGRAY," " W_BUTTONTEXT 86,51,64,11,COLORP.HIGHGRAY," " W_BUTTONTEXT 254,51,64,11,COLORP.HIGHGRAY," " ; W_TEXT 202,149,COLORP.HIGHGRAY,"Set" ; W_TEXT 270,149,COLORP.HIGHGRAY,"Reset" ; W_TEXT 438,149,COLORP.HIGHGRAY,"Quit" ; W_TEXT 320,114,COLORP.HIGHGRAY,"Today:" W_END ld ix,64 ld hl,aSet ; "Set" ld de,202 ld bc,149 ld a,COLORP.HIGHGRAY;80h call JUMPS.PrnRangPathC ld hl,aReset ; "Reset" ld de,270 ld bc,149 ld a,COLORP.HIGHGRAY;80h call JUMPS.PrnRangPathC ld hl,aQuit ; "Quit" ld de,438 ld bc,149 ld a,COLORP.HIGHGRAY;80h call JUMPS.PrnRangPathC call GetSysTime call InitDate ld ix,320 ld hl,aToday ; "Today:" ld de,320 ld bc,114 ld a,COLORP.HIGHGRAY;80h call JUMPS.PrnRangPathC call sub_C2B7 call PrintMonth call PrintYear call JUMPS.ResFire _plugin_loop: ld ix,PluginMouseTab call JUMPS.TestCoords halt SPDSS DSSF.SCANKEY jr z,_plugin_loop ld a,b or a jr nz,_plugin_loop ld a,e cp 1Bh jr nz,_plugin_loop PluginExit: WINDOWCLOSE and a ret IncDay: ld a,(max_date) ld b,a ld a,(Day) cp b jr nz,loc_C198 ld a,0 loc_C198: inc a ld (Day),a PrintDay: ld a,(Day) ld l,a ld h,0 add hl,hl add hl,hl ld de,Days0 add hl,de ld ix,14h ld de,0C3h ld bc,82h ld a,80h call JUMPS.PrnRangPathL ret DecDay: ld a,(max_date) ld b,a ld a,(Day) cp 1 jr nz,loc_C1C5 ld a,b inc a loc_C1C5: dec a ld (Day),a jr PrintDay IncMonth: ld a,(Month) or a ret z dec a ld (Month),a call sub_C268 call sub_C2B7 PrintMonth: ld hl,asc_C374 call sub_C1F3 ld a,(Month) ld c,a ld b,0FFh ld hl, asc_C374+0Dh ; "" loc_C1E9: ld a,(hl) inc hl or a jr nz,loc_C1E9 inc b ld a,c cp b jr nz,loc_C1E9 sub_C1F3: ld ix,40h ; '@' ld de,13Ah ld bc,82h ld a,80h call JUMPS.PrnRangPathC ret DecMonth: ld a,(Month) cp 0Bh ret z inc a ld (Month),a call sub_C268 call sub_C2B7 jr PrintMonth IncYear: ld hl, a0+4 ; " " ld c,'0' ld a,'9' cp (hl) jr nz,loc_C230 ld (hl),c dec hl cp (hl) jr nz,loc_C230 ld (hl),c dec hl cp (hl) jr nz,loc_C230 ld (hl),c dec hl cp (hl) jr nz,loc_C230 ld (hl),c dec (hl) loc_C230: inc (hl) PrintYear: ld ix,1Ah ld hl, a0+1 ; " " ld de,1A7h ld bc,82h ld a,80h call JUMPS.PrnRangPathC call sub_C268 call sub_C2B7 ret DecYear: ld hl, a0+4 ; " " ld c,'9' ld a,'0' cp (hl) jr nz,loc_C265 ld (hl),c dec hl cp (hl) jr nz,loc_C265 ld (hl),c dec hl cp (hl) jr nz,loc_C265 ld (hl),c dec hl cp (hl) jr nz,loc_C265 ld (hl),c inc (hl) loc_C265: dec (hl) jr PrintYear sub_C268: ld a,(Month) cp 1 jr z,loc_C285 cp 3 jr z,loc_C27F cp 5 jr z,loc_C27F cp 0Ah jr z,loc_C27F ld a,1Fh jr loc_C281 loc_C27F: ld a,1Eh loc_C281: ld (max_date),a ret loc_C285: ld de, a0+1 ; " " call JUMPS.ConvTxtNum16 push hl pop bc ld de,190h push bc call JUMPS.Divis16X16 pop bc ld a,h or l jr z,loc_C2AF ld de,4 push bc call JUMPS.Divis16X16 pop bc ld a,h or l jr nz,loc_C2B3 ld de,64h ; 'd' call JUMPS.Divis16X16 ld a,h or l jr z,loc_C2B3 loc_C2AF: ld a,1Dh jr loc_C281 loc_C2B3: ld a,1Ch jr loc_C281 sub_C2B7: ld a,(Day) ld b,a ld a,(max_date) cp b jr nc,loc_C2C4 ld (Day),a loc_C2C4: call PrintDay ret SetDate: ld de, a0+1 ; " " call JUMPS.ConvTxtNum16 push hl SPDSS DSSF.GETTIME,0 ld a,(Day) ld d,a ld a,(Month) inc a ld e,a pop ix SPDSS DSSF.SETTIME call InitDate jr loc_C2E9 ReadDate: call GetSysTime loc_C2E9: call PrintDay call PrintMonth call PrintYear ret GetSysTime: SPDSS DSSF.GETTIME,0 ld a,d ld (Day),a ld a,e dec a ld (Month),a push ix ld hl,a0 ; "0 " ld b,5 loc_C307: ld (hl),30h ; '0' inc hl djnz loc_C307 pop hl ld de, a0+1 ; " " call JUMPS.ConvNumTxt16 InitDate: ld hl, aToday+6 ; "" ld b,' ' loc_C318: ld (hl),0 inc hl djnz loc_C318 ld a,(Day) ld l,a ld h,0 add hl,hl add hl,hl ld de,Days0 add hl,de ld de, aToday+6 ; "" ldi ldi ldi ex de,hl ld (hl),' ' inc hl push hl ld a,(Month) ld c,a ld b,0FFh ld hl, asc_C374+0Dh ; "" loc_C340: ld a,(hl) inc hl or a jr nz,loc_C340 inc b ld a,c cp b jr nz,loc_C340 pop de loc_C34B: ld a,(hl) or a jr z,loc_C354 ld (de),a inc hl inc de jr loc_C34B loc_C354: ex de,hl ld (hl),20h ; ' ' inc hl ex de,hl ld hl, a0+1 ; " " ldi ldi ldi ldi ret aSet: db "Set",0 aReset: db "Reset",0 aQuit: db "Quit",0 asc_C374: db " ",0 aJanuary: db "January",0 aFebruary: db "February",0 aMarch: db "March",0 aApril: db "April",0 aMay: db "May",0 aJune: db "June",0 aJuly: db "July",0 aAugust: db "August",0 aSeptember: db "September",0 aOctober: db "October",0 aNovember: db "November",0 aDecember: db "December",0 aToday: db "Today:",0 DB 31 DUP 0 Day: db 12h Month: db 5 max_date: db 1Eh a0: db "0 ",0 Days0: DB 4 DUP 0 ; Лишние 4 нуля,чтоб не отнимать 1 от номера дня Days: db " 01",0 db " 02",0 db " 03",0 db " 04",0 db " 05",0 db " 06",0 db " 07",0 db " 08",0 db " 09",0 db " 10",0 db " 11",0 db " 12",0 db " 13",0 db " 14",0 db " 15",0 db " 16",0 db " 17",0 db " 18",0 db " 19",0 db " 20",0 db " 21",0 db " 22",0 db " 23",0 db " 24",0 db " 25",0 db " 26",0 db " 27",0 db " 28",0 db " 29",0 db " 30",0 db " 31",0 PluginMouseTab: dw 212,228,130,138,1,0,DecDay,0 dw 228,244,130,138,1,0,IncDay,0 dw 342,358,130,138,1,0,DecMonth,0 dw 358,374,130,138,1,0,IncMonth,0 dw 437,453,130,138,1,0,DecYear,0 dw 453,469,130,138,1,0,IncYear,0 dw 238,302,147,158,1,0,ReadDate,0 dw 170,234,147,158,1,0,SetDate,0 dw 406,470,147,158,33,0,PluginExit,0 dw 0x8000 PluginEnd: