ok now i got another problem when i compile i get 2345 errors or some number around there heres the code if you wouldnt mind explaining to me whats goin wrong
Code:
'$INCLUDE: 'qb.bi'
DECLARE SUB zoomchange ()
DECLARE SUB mouse ()
DECLARE SUB load (filename$)
DECLARE SUB savepic ()
DECLARE SUB save ()
up$ = CHR$(0) + CHR$(72): down$ = CHR$(0) + CHR$(80): lft$ = CHR$(0) + CHR$(75)
rght$ = CHR$(0) + CHR$(77)
ON ERROR GOTO errorhandler
DIM SHARED in AS RegTypeX, outr AS RegTypeX
DIM SHARED prev(1000)
DIM SHARED x
DIM SHARED y
DIM SHARED lx
DIM SHARED ly
DIM SHARED sx
DIM SHARED sy
DIM SHARED file
DIM SHARED zoom
DIM SHARED filename$
DIM SHARED errorcode
DIM SHARED col(140, 107)
DIM SHARED mspeed
mspeed = 5
x = 1: y = 1
sx = 1: sy = 1
1
SCREEN 13
in.ax = 0: mouse
CLS
COLOR 10: PRINT "Picture Maker"
COLOR 11: PRINT "1) Get started"
COLOR 12: PRINT "2) Controls"
COLOR 13: PRINT "3) Load"
COLOR 14: PRINT "4) Quit"
COLOR 7
a$ = "0"
DO UNTIL VAL(a$) <= 4 AND VAL(a$) >= 1: a$ = INKEY$: LOOP
SELECT CASE VAL(a$)
CASE 1
GOTO prompt
CASE 2
GOTO controls
CASE 3
GOTO loadpic
CASE 4
END
END SELECT
controls:
PRINT "Controls:"
PRINT "Arrow keys to move cursor"
PRINT "Press the numbers to change colors"
PRINT "Press S to go to the save prompt"
PRINT "When in save press S at any time to exit to edit mode"
PRINT "When in save select the part in the picture that you want to save"
PRINT "then press tab to save type a file name to save it"
SLEEP
GOTO 1
prompt:
INPUT "Select the zoom of the picture (0-10) ", zoom
CLS
GOTO start
loadpic:
INPUT "What is the name of the file? ", filename$
INPUT "What zoom would you like? ", zoom
IF zoom = 0 THEN zoom = 1
filename$ = filename$ + ".pic"
load filename$
zoom = zoom - 1
IF errorcode = 64 OR errorcode = 53 THEN GOTO 1
start:
GET (x, y)-(x + zoom, y + zoom), prev
color1 = 0
in.ax = 3: mouse
oldx = outr.cx
oldy = outr.dx
' set mouse pos at 1,1
in.ax = 4
in.cx = 1
in.dx = 1: mouse
'in.ax = 1: mouse
DO
'if the mouse is all the way to the right bring it back to 1
in.ax = 3: mouse
IF outr.cx >= 639 THEN
in.ax = 4: in.cx = 1: mouse
oldx = in.cx
END IF
'if the mouse is at the bottom bring it to the top
IF outr.dx >= 199 THEN
in.ax = 4: in.dx = 1: mouse
oldy = in.dx
END IF
'if its <= 1 then move it back to the right
IF outr.cx <= 1 THEN
in.ax = 4: in.cx = 600: mouse
oldx = in.cx
END IF
IF outr.dx <= 5 THEN
in.ax = 4: in.dx = 170: mouse
oldy = in.dx
END IF
a$ = INKEY$
IF a$ = CHR$(27) THEN END
IF color1 = 0 THEN color1 = 11
LINE (x, y)-(x + zoom, y + zoom), color1, BF
SELECT CASE UCASE$(a$)
CASE "+"
IF zoom < 10 THEN
CLS
zoom = zoom + 2
zoomchange
zoom = zoom - 1
GOTO start
END IF
CASE "-"
IF zoom > 1 THEN
CLS
zoom = zoom - 1
zoomchange
zoom = zoom - 1
GOTO start
END IF
CASE "S"
save
'checks for up down left or right
CASE up$
IF y > 1 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
y = y - (zoom + 1)
sy = sy - 1
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE down$
IF y <= 144 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
sy = sy + 1
y = y + (zoom + 1)
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE rght$
IF x <= 280 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
sx = sx + 1
x = x + (zoom + 1)
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE lft$
IF x > 1 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
x = x - (zoom + 1)
sx = sx - 1
GET (x, y)-(x + zoom, y + zoom), prev
END IF
'clears blocks
CASE "C"
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
col(sx, sy) = 0
GET (x, y)-(x + zoom, y + zoom), prev
END SELECT
in.ax = 3: mouse
IF outr.bx = 1 THEN
a$ = "1"
END IF
IF outr.bx = 2 THEN
a$ = "4"
END IF
'changes colors of blocks
IF VAL(a$) <= 9 AND VAL(a$) >= 1 THEN
b = VAL(a$)
color1 = b
col(sx, sy) = b
LINE (x, y)-(x + zoom, y + zoom), b, BF
GET (x, y)-(x + zoom, y + zoom), prev
END IF
in.ax = 3: mouse
IF outr.cx > oldx + mspeed THEN
IF x <= 280 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
sx = sx + 1
x = x + (zoom + 1)
GET (x, y)-(x + zoom, y + zoom), prev
oldx = outr.cx
END IF
END IF
IF outr.cx < oldx - mspeed THEN
IF x > 1 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
x = x - (zoom + 1)
sx = sx - 1
GET (x, y)-(x + zoom, y + zoom), prev
oldx = outr.cx
END IF
END IF
IF outr.dx > oldy + mspeed THEN
IF y <= 144 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
sy = sy + 1
y = y + (zoom + 1)
GET (x, y)-(x + zoom, y + zoom), prev
oldy = outr.dx
END IF
END IF
IF outr.dx < oldy - mspeed THEN
IF y > 1 THEN
color1 = 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (x, y), prev
y = y - (zoom + 1)
sy = sy - 1
GET (x, y)-(x + zoom, y + zoom), prev
oldy = outr.dx
END IF
END IF
LOOP
END
errorhandler:
errorcode = ERR
RESUME NEXT
SUB load (filename$)
CLS
errorcode = 0
OPEN filename$ FOR INPUT AS #1
IF errorcode = 64 OR errorcode = 53 THEN
PRINT "Bad file name"
SLEEP
EXIT SUB
END IF
INPUT #1, lx, ly
FOR sy = 1 TO ly
FOR sx = 1 TO lx
INPUT #1, col(sx, sy)
NEXT
NEXT
CLOSE #1
ay = 0
FOR y = 1 TO ly * zoom STEP zoom
ay = ay + 1
bx = 0
FOR x = 1 TO lx * zoom STEP zoom
bx = bx + 1
LINE (x, y)-(x + zoom, y + zoom), col(bx, ay), BF
NEXT
NEXT
x = 1
y = 1
sx = 1
sy = 1
END SUB
SUB mouse
CALL INTERRUPTX(&H33, in, outr)
END SUB
SUB save
up$ = CHR$(0) + CHR$(72): down$ = CHR$(0) + CHR$(80): lft$ = CHR$(0) + CHR$(75)
rght$ = CHR$(0) + CHR$(77)
DIM prevy(16383)
DIM prevx(16383)
GET (0, y)-(x, y), prevy
GET (x, 0)-(x, y), prevx
DO
a$ = INKEY$
color2 = 11
LINE (x, y)-(x + zoom, y + zoom), color2, BF
'draws a straight line from the wall to the block so the user
'knows what he is saving
LINE (0, y)-(x, y), 9
LINE (x, 0)-(x, y), 9
SELECT CASE UCASE$(a$)
'gets rid of lines and exits sub
CASE "S"
LINE (0, y)-(x, y), 0
PUT (0, y), prevy
LINE (x, 0)-(x, y), 0
PUT (x, 0), prevx
EXIT SUB
'checks witch direction then clears the line
'puts back what was there and moves the cursor
CASE up$
IF y >= 1 THEN
LINE (0, y)-(x, y), 0
LINE (x, 0)-(x, y), 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (0, y), prevy
PUT (x, 0), prevx
color1 = 0
PUT (x, y), prev
sy = sy - 1
y = y - (zoom + 1)
GET (0, y)-(x, y), prevy
GET (x, 0)-(x, y), prevx
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE down$
IF y <= 144 THEN
LINE (0, y)-(x, y), 0
LINE (x, 0)-(x, y), 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (0, y), prevy
PUT (x, 0), prevx
color1 = 0
PUT (x, y), prev
sy = sy + 1
y = y + (zoom + 1)
GET (0, y)-(x, y), prevy
GET (x, 0)-(x, y), prevx
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE rght$
IF x <= 180 THEN
LINE (0, y)-(x, y), 0
LINE (x, 0)-(x, y), 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (0, y), prevy
PUT (x, 0), prevx
color1 = 0
PUT (x, y), prev
sx = sx + 1
x = x + (zoom + 1)
GET (0, y)-(x, y), prevy
GET (x, 0)-(x, y), prevx
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE lft$
IF x >= 1 THEN
LINE (0, y)-(x, y), 0
LINE (x, 0)-(x, y), 0
LINE (x, y)-(x + zoom, y + zoom), 0, BF
PUT (0, y), prevy
PUT (x, 0), prevx
color1 = 0
PUT (x, y), prev
sx = sx - 1
x = x - (zoom + 1)
GET (0, y)-(x, y), prevy
GET (x, 0)-(x, y), prevx
GET (x, y)-(x + zoom, y + zoom), prev
END IF
CASE CHR$(9)
savepic
END SELECT
LOOP
END SUB
SUB savepic
CLS
a = 1
SCREEN 1
INPUT "Save name:", filename$
filename$ = filename$ + ".pic"
PRINT filename$; " saved"
SCREEN 13
cx = sx
cy = sy
OPEN filename$ FOR OUTPUT AS #1
WRITE #1, cx, cy
FOR cy = 1 TO sy
FOR cx = 1 TO sx
WRITE #1, col(cx, cy)
NEXT
NEXT
CLOSE #1
CLS
IF a = 1 THEN END
EXIT SUB
END SUB
SUB zoomchange
ay = 0
FOR y = 1 TO 200 * zoom STEP zoom
ay = ay + 1
bx = 0
FOR x = 1 TO 320 * zoom STEP zoom
bx = bx + 1
LINE (x, y)-(x + zoom, y + zoom), col(bx, ay), BF
NEXT
NEXT
x = 1
y = 1
sx = 1
sy = 1
END SUB