- DCS 7 Clock in TI-BASIC
- 16 Sep 2020 11:36:59 am Permalink
- Last edited by TIny_Hacker on 14 Sep 2022 02:11:01 pm; edited 1 time in total

I've been working on making a clock for Doors CS that self edits the Icon when ran to display the current hour in twelve-hour time. So far, the project is almost done, but I ran into two weird bugs that I wondered if anyone would know how to fix. The first one happens every time the program is run and results in a Syntax error at a spot where there is clearly no syntax issue. The second is that when I use the linewrite function from the Celtic-DCSB libs, It just inserts a new line rather than writing over the line I selected (it could be I am just using the command improperly, please let me know if that is the issue). Here is the code: (Note that the header is formatted to DCS6 for a 16x16 Icon)

Edit: I ported this to the CE using the (Currently in progress) Celtic CE! Here's a download to the CE version when it's public: http://ceme.tech/DL2303

**SourceCoder 3 (CLOCK) wrote:**

::DCS6

:"0000000000000000000000000000000000000000000000000000000000000000" //The Icon defaults to nothing

::

:getTmFmt

:Ans->theta

:setTmFmt(24

:getTime

:Ans(1)->T

:

:If T=1 or T=13

:"00007E786618661866186618661866187E7E"->Str1

:

:If T=2 or T=14

:"00007E7E660666066606667E666066607E7E"->Str1

:

:If T=3 or T=15

:"00007E7E66066606663E6606660666067E7E"->Str1

:

:If T=4 or T=16

:"00007E7E66606660667E6606660666067E7E"->Str1

:

:If T=5 or T=17

:"00007E7E66606660667E6606660666067E7E"->Str1

:

:If T=6 or T=18

:"00007E7E66606660667E6666666666667E7E"->Str1

:

:If T=7 or T=19

:"00007E7E660666066606660C660C660C7E0C"->Str1

:

:If T=8 or T=20

:"00007E7E66666666667E6666666666667E7E"->Str1

:

:If T=9 or T=21

:"00007E7E66666666667E6606660666067E7E"->Str1

:

:If T=10 or T=22

:"0000787E1866186618661866186618667E7E"->Str1

:

:If T=11 or T=23

:"00007E786618661866186618661866187E7E"->Str1

:

:If T=12 or T=0

:"00007E7E660666066606667E666066607E7E"->Str1

:

:If T<=12:Then

: "00000C8812D81EA8128812880000"->Str2 //First added the Hour, then AM or PM

: Str1+Str2->Str1

:End

:

:If T>=13:Then //Here is where the Syntax Error appears at

: "00001C8812D81CA8108810880000"->Str2

: Str1+Str2->Str1

:End

:

:det(6,"CLOCK",Str1,2

:det(7,"CLOCK",3

:

:setTmFmt(theta

:DelVar TDelVar thetaDelVar Str1DelVar Str2

:"0000000000000000000000000000000000000000000000000000000000000000" //The Icon defaults to nothing

::

:getTmFmt

:Ans->theta

:setTmFmt(24

:getTime

:Ans(1)->T

:

:If T=1 or T=13

:"00007E786618661866186618661866187E7E"->Str1

:

:If T=2 or T=14

:"00007E7E660666066606667E666066607E7E"->Str1

:

:If T=3 or T=15

:"00007E7E66066606663E6606660666067E7E"->Str1

:

:If T=4 or T=16

:"00007E7E66606660667E6606660666067E7E"->Str1

:

:If T=5 or T=17

:"00007E7E66606660667E6606660666067E7E"->Str1

:

:If T=6 or T=18

:"00007E7E66606660667E6666666666667E7E"->Str1

:

:If T=7 or T=19

:"00007E7E660666066606660C660C660C7E0C"->Str1

:

:If T=8 or T=20

:"00007E7E66666666667E6666666666667E7E"->Str1

:

:If T=9 or T=21

:"00007E7E66666666667E6606660666067E7E"->Str1

:

:If T=10 or T=22

:"0000787E1866186618661866186618667E7E"->Str1

:

:If T=11 or T=23

:"00007E786618661866186618661866187E7E"->Str1

:

:If T=12 or T=0

:"00007E7E660666066606667E666066607E7E"->Str1

:

:If T<=12:Then

: "00000C8812D81EA8128812880000"->Str2 //First added the Hour, then AM or PM

: Str1+Str2->Str1

:End

:

:If T>=13:Then //Here is where the Syntax Error appears at

: "00001C8812D81CA8108810880000"->Str2

: Str1+Str2->Str1

:End

:

:det(6,"CLOCK",Str1,2

:det(7,"CLOCK",3

:

:setTmFmt(theta

:DelVar TDelVar thetaDelVar Str1DelVar Str2

Edit: I ported this to the CE using the (Currently in progress) Celtic CE! Here's a download to the CE version when it's public: http://ceme.tech/DL2303