Thanks,
I took your excellent clock function and a realtime input function from (I think RobK....I'll check) and combined them together to get it to work. Thankyou for all your help.
GLOBAL starttime AS INTEGER
starttime = TIMER()
`start time
GLOBAL clock_day AS INTEGER
clock_day = 1
GLOBAL clock_month AS INTEGER
clock_month = 1
GLOBAL clock_year AS INTEGER
clock_year = 2003
GLOBAL clock_hour AS INTEGER
clock_hour = 8
GLOBAL clock_min AS INTEGER
clock_min = 0
GLOBAL time_per_gameminute AS INTEGER
time_per_gameminute = 1000
DIM months$(12,2)
months$(1,1) = "Jan"
months$(2,1) = "Feb"
months$(3,1) = "Mar"
months$(4,1) = "Apr"
months$(5,1) = "May"
months$(6,1) = "Jun"
months$(7,1) = "Jly"
months$(8,1) = "Aug"
months$(9,1) = "Sep"
months$(10,1) = "Oct"
months$(11,1) = "Nov"
months$(12,1) = "Dec"
months$(1,2) = "31"
months$(2,2) = "28"
months$(3,2) = "31"
months$(4,2) = "30"
months$(5,2) = "31"
months$(6,2) = "30"
months$(7,2) = "31"
months$(8,2) = "31"
months$(9,2) = "30"
months$(10,2) = "31"
months$(11,2) = "30"
months$(12,2) = "31"
DO
CLS
PRINT BoxInput(200, 0, 0)
LOOP
FUNCTION BoxInput(Size AS INTEGER X AS INTEGER, Y AS INTEGER)
`x is x coordinate of typing, y is y coord of typing, size is max length of string
LOCAL Key AS STRING
LOCAL LastKey AS STRING
LOCAL CursorPos AS INTEGER
LOCAL CursorWidth AS INTEGER
LOCAL TextWidth AS INTEGER
LOCAL TextHeight AS INTEGER
LOCAL UserText AS STRING
LOCAL CursorTick AS INTEGER
LOCAL Tick AS INTEGER
CursorPos=LEN(UserText)
CursorWidth=TEXT WIDTH(" ")
TextWidth=CursorWidth*Size
TextHeight=TEXT HEIGHT(" ")
CursorTick=TIMER()+500
REPEAT
REPEAT
CLS
GameClock()
BOX X, Y, X+TextWidth, Y+TextHeight, 0, 0, 0, 0
TEXT X,Y,UserText
IF TIMER() > CursorTick
INC CursorTick,500
Tick=1-Tick
ENDIF
IF Tick
IF CursorPos < Size THEN LINE X+(CursorWidth*CursorPos), Y+TextHeight-1, X+(CursorWidth*(CursorPos+1)),Y+TextHeight-1
ENDIF
SYNC
Key=GetKey$()
IF Key = LastKey
Key=""
ELSE
LastKey=Key
ENDIF
UNTIL Key <> ""
IF LEN(Key) > 1 OR ASC(Key) < 32 OR ASC(Key) > 126
IF Key="delete" AND CursorPos < LEN(UserText)
UserText=LEFT$(UserText, CursorPos) + RIGHT$(UserText, LEN(UserText)-CursorPos-1)
ENDIF
IF Key="bs" AND CursorPos > 0
UserText=LEFT$(UserText, CursorPos-1) + RIGHT$(UserText, LEN(UserText)-CursorPos)
DEC CursorPos
ENDIF
IF Key="left" AND CursorPos > 0 THEN DEC CursorPos
IF Key="right" AND CursorPos < LEN(UserText) THEN INC CursorPos
IF Key="home" THEN CursorPos=0
IF Key="end" THEN CursorPos=LEN(UserText)
ELSE
IF LEN(UserText) < Size
UserText=LEFT$(UserText, CursorPos) + key + RIGHT$(UserText, LEN(UserText)-CursorPos)
INC CursorPos
ENDIF
ENDIF
UNTIL Key="enter"
ENDFUNCTION UserText
FUNCTION GetKey$()
LOCAL Key AS STRING
Key=INKEY$()
IF Key=""
Code=SCANCODE()
IF Code > 0
SELECT Code
CASE 200 : Key="up" : ENDCASE
CASE 203 : Key="left" : ENDCASE
CASE 208 : Key="down" : ENDCASE
CASE 205 : Key="right" : ENDCASE
CASE 199 : Key="home" : ENDCASE
CASE 207 : Key="end" : ENDCASE
CASE 211 : Key="delete" : ENDCASE
ENDSELECT
ENDIF
ELSE
SELECT ASC(Key)
CASE 8 : Key="bs" : ENDCASE
CASE 9 : Key="tab" : ENDCASE
CASE 13 : Key="enter" : ENDCASE
ENDSELECT
ENDIF
ENDFUNCTION Key
FUNCTION GameClock()
ctime = TIMER()
time = ctime - starttime
IF time > time_per_gameminute
` should correct for time between loops a little
starttime = starttime+time_per_gameminute
clock_min = clock_min + 1
IF clock_min = 60
clock_hour = clock_hour+1
IF clock_hour = 24
clock_day = clock_day+1
clock_hour = 0
ENDIF
IF months$(clock_month,2) = STR$((clock_day-1))
clock_day = 1
clock_month = clock_month+1
IF clock_month = 13
clock_year = clock_year+1
clock_month = 1
ENDIF
ENDIF
clock_min = 0
ENDIF
ENDIF
IF clock_min < 10
clock_dmin$ = "0" + STR$(clock_min)
ELSE
clock_dmin$ = STR$(clock_min)
ENDIF
IF clock_hour < 12
am_pm$ = "AM"
clock_hourtemp = clock_hour
ELSE
am_pm$ = "PM"
clock_hourtemp = clock_hour - 12
ENDIF
IF clocK_hourtemp = 0 THEN clock_hourtemp = 12
IF clock_hourtemp < 10
clock_dhour$ = "0" + STR$(clock_hourtemp)
ELSE
clock_dhour$ = STR$(clock_hourtemp)
ENDIF
INK darkblue, 0
SET TEXT SIZE 12
TEXT 854, 696, "Time"
SET TEXT SIZE 15
SET CURSOR 883, 724
PRINT months$(clock_month,1)," ",clock_day," ",clock_year," ",clock_dhour$,":",clock_dmin$," ",am_pm$
INK white, 0
ENDFUNCTION
Life is like a penis:
When it's soft you can't beat it, when it's hard you get screwed.