- плагин доделан, описание/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.
424 lines
7.9 KiB
Plaintext
424 lines
7.9 KiB
Plaintext
|
||
; 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:
|