flex_nav/plugins/date/date.a80
savelij13 881739653b CDplayer.flx 1.1:
- плагин доделан, описание/history в cdplayer.txt рядом с плагином.
FE 1.09
- исправлено: при выходе из редактора с несохраненным файлом и запросе на сохранение
  клавиша Enter теперь работает как подтверждение сохранения.
FN 1.16
- встроенный editor переехал в плагин откуда и запускается по F4, из FN удален.
- встроенный viewer переехал в плагин откуда и запускается по F3, из FN удален.
- встроенный help переехал в плагин откуда и запускается при нажатии F1, из FN удален.
- загрузка плагина отделена от запуска, теперь можно запускать плагины не
  только из панели FN.
- добавлен макрос формирования заголовка для плагинов.
- добавлена поддержка работы плагинов в адреса 0x4000-0x7FFF (окно 1) в дополнение
  к старым 0xC000-0xBFFF (окно 3), пока используется в плагине cdplayer.
- в окнах с ошибкой переделан на 2 типа окон вместо многих под каждую ошибку.
- исправлена потеря цвета при печати текста по указанному адресу.
- текстовым файлам вернул кодировку CP866, readme.md оставлен в кодировке UTF8.
2025-07-25 16:01:19 +03:00

424 lines
7.9 KiB
Plaintext
Raw Permalink Blame History

; 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 ; <20><><EFBFBD> 4 <20><><EFBFBD><EFBFBD>,<2C><20><> <20><EFBFBD><E2ADA8><EFBFBD><EFBFBD> 1 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
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: