09-03-2002, 07:01 PM
Oh - Nobody even tried... Here's my sollution
The input routine needs much improvement as it doesn't still support all the keys nor CAPS / ALT+GR combinations, but, oh well, I coded this straight from scratch in ten minutes... Don't ask me more
The input routine needs much improvement as it doesn't still support all the keys nor CAPS / ALT+GR combinations, but, oh well, I coded this straight from scratch in ten minutes... Don't ask me more
Code:
DECLARE SUB myLocate (xx%, yy%)
DECLARE FUNCTION myInput$ ()
DECLARE SUB NL ()
DECLARE SUB myPrint (a$)
DECLARE SUB myCls ()
DECLARE SUB ScrollScreen ()
' Write an INPUT "what's your name";a$:PRINT "Hello "+a$ program without
' using INPUT nor PRINT nor INKEY$
DIM SHARED myPrintX%, myPrintY%
DIM SHARED kc$(127) ' Far from complete
DIM SHARED MaxKey%
myCls
tecladata:
kc$(1) = CHR$(27)
kc$(2) = "1"
kc$(3) = "2"
kc$(4) = "3"
kc$(5) = "4"
kc$(6) = "5"
kc$(7) = "6"
kc$(8) = "7"
kc$(9) = "8"
kc$(10) = "9"
kc$(11) = "0"
kc$(12) = "-"
kc$(13) = "+"
kc$(14) = CHR$(8)
kc$(15) = CHR$(9)
kc$(16) = "q"
kc$(17) = "w"
kc$(18) = "e"
kc$(19) = "r"
kc$(20) = "t"
kc$(21) = "y"
kc$(22) = "u"
kc$(23) = "i"
kc$(24) = "o"
kc$(25) = "p"
kc$(26) = "{"
kc$(27) = "}"
kc$(28) = CHR$(13)
kc$(29) = CHR$(0)
kc$(30) = "a"
kc$(31) = "s"
kc$(32) = "d"
kc$(33) = "f"
kc$(34) = "g"
kc$(35) = "h"
kc$(36) = "j"
kc$(37) = "k"
kc$(38) = "l"
kc$(39) = ":"
kc$(40) = CHR$(34)
kc$(41) = "~"
kc$(42) = CHR$(0)
kc$(43) = "|"
kc$(44) = "z"
kc$(45) = "x"
kc$(46) = "c"
kc$(47) = "v"
kc$(48) = "b"
kc$(49) = "n"
kc$(50) = "m"
kc$(51) = "<"
kc$(52) = ">"
kc$(53) = "?"
kc$(54) = CHR$(0)
kc$(55) = "*"
kc$(56) = CHR$(0)
kc$(57) = " "
kc$(58) = CHR$(0)
kc$(59) = "F1"
kc$(60) = "F2"
kc$(61) = "F3"
kc$(62) = "F4"
kc$(63) = "F5"
kc$(64) = "F6"
kc$(65) = "F7"
kc$(66) = "F8"
kc$(67) = "F9"
kc$(68) = "F10"
kc$(69) = CHR$(0)
kc$(70) = CHR$(0)
kc$(71) = "7"
kc$(72) = "8"
kc$(73) = "9"
kc$(74) = "-"
kc$(75) = "4"
kc$(76) = "5"
kc$(77) = "6"
kc$(78) = "+"
kc$(79) = "1"
kc$(80) = "2"
kc$(81) = "3"
kc$(82) = "0"
kc$(83) = "."
kc$(84) = "END!"
MaxKey% = 84
myPrint "Enter your name: "
a$ = myInput
NL
myPrint "Hello, " + a$ + "!"
SUB myCls
myPrintX% = 1
myPrintY% = 1
CLS
END SUB
FUNCTION myInput$
t% = 0
o$ = ""
x% = myPrintX%
y% = myPrintY%
myLocate x%, y%
myPrint ">"
x% = x% + 1
WHILE NOT t%
' Clear buffer
DEF SEG = &H40
POKE &H1A, PEEK(&H1C) ' Head = Tail so clear :)
DEF SEG
' Inp:
k% = INP(&H60)
IF k% < MaxKey% THEN
ch$ = kc$(k%)
SELECT CASE ch$
CASE CHR$(8):
IF LEN(o$) > 0 THEN
o$ = LEFT$(o$, LEN(o$) - 1)
END IF
CASE CHR$(13):
t% = -1
CASE ELSE
o$ = o$ + ch$
END SELECT
WHILE INP(&H60) = k%: WEND ' Depress
END IF
myLocate x%, y%
myPrint o$ + "_ "
WEND
myInput$ = o$
END FUNCTION
SUB myLocate (xx%, yy%)
myPrintX% = xx%
myPrintY% = yy%
END SUB
SUB myPrint (a$)
DEF SEG = &HB800
FOR i% = 1 TO LEN(a$)
m$ = MID$(a$, i%, 1)
POKE (myPrintX% - 1) * 2 + (myPrintY% - 1) * 160, ASC(m$)
myPrintX% = myPrintX% + 1
IF myPrintX% = 81 THEN
myPrintX% = 1
myPrintY% = myPrintY% + 1
IF myPrintY% = 26 THEN
ScrollScreen
myPrintY% = 25
END IF
END IF
NEXT i%
DEF SEG
END SUB
SUB NL
' CRLF :)
myPrintX% = 1
myPrintY% = myPrintY% + 1
IF myPrintY% = 26 THEN
ScrollScreen
myPrintY% = 25
END IF
END SUB
SUB ScrollScreen
DEF SEG = &HB800
FOR y% = 1 TO 24
FOR x% = 0 TO 79
POKE (y% - 1) * 160 + x% * 2, PEEK(y% * 160 + x% * 2)
NEXT x%, y%
FOR x% = 0 TO 79
POKE 25 * 160 + x% * 2, 32
NEXT x%
DEF SEG
END SUB
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i