'$DYNAMIC 'current library-diskvoic.qlb DEFINT A-Z DECLARE SUB setmodex () DECLARE SUB copypage (BYVAL page1, BYVAL page2) DECLARE SUB setvispage (BYVAL page) DECLARE SUB drawsprite (pic(), pal(), BYVAL po, BYVAL x, BYVAL y, BYVAL page) DECLARE SUB loadsprite (pic(), BYVAL x, BYVAL y, BYVAL w, BYVAL h, BYVAL page) DECLARE SUB stosprite (pic(), BYVAL x, BYVAL y, BYVAL page) DECLARE SUB fadeto (palbuff(), BYVAL red, BYVAL green, BYVAL blue) DECLARE SUB fadetopal (pal(), palbuff()) DECLARE SUB setpal (pal()) DECLARE SUB clearpage (BYVAL page) DECLARE SUB loadpage (buf(), fil$, BYVAL p) DECLARE SUB setkeys () DECLARE SUB setfont (f()) DECLARE SUB printstr (s$, BYVAL x, BYVAL y, BYVAL p) DECLARE SUB textcolor (BYVAL f, BYVAL b) DECLARE SUB setitup (fil$, buff(), BYVAL p) DECLARE SUB resetdsp DECLARE SUB playsnd (BYVAL n, BYVAL f) DECLARE SUB closefile DECLARE FUNCTION Keyseg () DECLARE FUNCTION keyoff () DECLARE FUNCTION keyval (BYVAL a) DECLARE FUNCTION getkey () TYPE Regtype ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER ds AS INTEGER es AS INTEGER END TYPE DIM SHARED regs AS Regtype regs.ax = &H3509: CALL interruptx(&H21, regs, regs) off9 = regs.bx: seg9 = regs.es DEFINT A-Z DIM font(1024), text$(8000), l(400), x(400), y(400), who(400), w(400), phr$(40), px(400), py(400) setmodex setvispage 0 DEF SEG = VARSEG(font(0)): BLOAD "data\font1.bob", VARPTR(font(0)) setfont font() textcolor 5, 17 u$ = CHR$(0) + CHR$(72) r$ = CHR$(0) + CHR$(77) d$ = CHR$(0) + CHR$(80) l$ = CHR$(0) + CHR$(75) cur = 1 printstr "Text set number?", 0, 0, 0 f$ = INPUT$(1) OPEN "data\text" + f$ + ".bob" FOR INPUT AS #1 FOR i = 1 TO 118 * 20 INPUT #1, text$(i) NEXT i CLOSE #1 DEF SEG = VARSEG(l(0)): BLOAD "data\textl" + f$ + ".bob", VARPTR(l(0)) DEF SEG = VARSEG(w(0)): BLOAD "data\textw" + f$ + ".bob", VARPTR(w(0)) DEF SEG = VARSEG(x(0)): BLOAD "data\textx" + f$ + ".bob", VARPTR(x(0)) DEF SEG = VARSEG(y(0)): BLOAD "data\texty" + f$ + ".bob", VARPTR(y(0)) DEF SEG = VARSEG(px(0)): BLOAD "data\textpx" + f$ + ".bob", VARPTR(px(0)) DEF SEG = VARSEG(py(0)): BLOAD "data\textpy" + f$ + ".bob", VARPTR(py(0)) DEF SEG = VARSEG(who(0)): BLOAD "data\textwh" + f$ + ".bob", VARPTR(who(0)) clearpage 0 textedit: printstr "edit phrase number:" + STR$(cur), 0, 0, 0 printstr "X:" + STR$(x(cur)), 0, 10, 0 printstr "Y:" + STR$(y(cur)), 0, 20, 0 printstr "lines:" + STR$(l(cur)), 0, 30, 0 printstr "width:" + STR$(w(cur)), 0, 40, 0 printstr "Speaker:" + STR$(who(cur)), 0, 50, 0 FOR i = 1 TO l(cur): printstr text$(((cur - 1) * 20) + i), 2, 50 + (i * 8), 0: NEXT tx1: w$ = "": w$ = INKEY$: IF w$ = "" THEN GOTO tx1 IF w$ = CHR$(27) THEN GOTO finish IF w$ = CHR$(13) THEN clearpage 0: GOSUB writetext IF w$ = l$ AND cur > 1 THEN cur = cur - 1 IF w$ = r$ AND cur < 117 THEN cur = cur + 1 clearpage 0 GOTO textedit writetext: FOR i = 1 TO 20: phr$(i) = "": NEXT i IF l(cur) = 0 THEN l(cur) = 1 IF w(cur) = 0 THEN w(cur) = 1 FOR i = 1 TO l(cur) phr$(i) = text$(((cur - 1) * 20) + i) NEXT i csr = 1 GOSUB drawbox wtext: FOR i = 1 TO l(cur) IF i = csr THEN textcolor 4, 0 printstr phr$(i), x(cur) + 16, y(cur) + (i * 8) + 8, 0 IF i = csr THEN textcolor 17, 0 NEXT i wt1: t$ = "": t$ = INKEY$: IF t$ = "" THEN GOTO wt1 IF t$ = CHR$(27) THEN textcolor 5, 17: FOR i = 1 TO l(cur): text$(((cur - 1) * 20) + i) = phr$(i): NEXT i: RETURN IF t$ = CHR$(0) + CHR$(81) AND csr < l(cur) THEN csr = csr + 1: GOTO wtext IF t$ = CHR$(0) + CHR$(73) AND csr > 1 THEN csr = csr - 1: GOTO wtext IF t$ = u$ AND l(cur) > 1 THEN l(cur) = l(cur) - 1: GOSUB drawbox: GOTO wtext IF t$ = d$ AND l(cur) < 18 THEN l(cur) = l(cur) + 1: GOSUB drawbox: GOTO wtext IF t$ = l$ AND w(cur) > 1 THEN w(cur) = w(cur) - 1: GOSUB drawbox: GOTO wtext IF t$ = r$ AND w(cur) < 35 THEN w(cur) = w(cur) + 1: GOSUB drawbox: GOTO wtext IF t$ = CHR$(0) + CHR$(59) THEN GOSUB movebox: GOTO wtext IF t$ = CHR$(0) + CHR$(60) THEN GOSUB movepic: GOTO wtext IF t$ = CHR$(8) AND LEN(phr$(csr)) > 0 THEN phr$(csr) = LEFT$(phr$(csr), LEN(phr$(csr)) - 1): GOSUB drawbox: GOTO wtext IF LEN(t$) > 1 THEN t$ = RIGHT$(t$, 1) IF LEN(phr$(csr)) < w(cur) THEN phr$(csr) = phr$(csr) + t$ GOTO wtext movebox: mb1: z$ = "": z$ = INKEY$: IF z$ = "" THEN GOTO mb1 IF z$ = u$ AND y(cur) > 0 THEN y(cur) = y(cur) - 1 IF z$ = r$ AND x(cur) + (w(cur) * 8) < 300 THEN x(cur) = x(cur) + 1 IF z$ = d$ AND y(cur) + (l(cur) * 8) < 200 THEN y(cur) = y(cur) + 1 IF z$ = l$ AND x(cur) > 0 THEN x(cur) = x(cur) - 1 IF z$ = "8" AND y(cur) > 0 THEN y(cur) = y(cur) - 8 IF z$ = "6" AND x(cur) + (w(cur) * 8) < 300 THEN x(cur) = x(cur) + 8 IF z$ = "2" AND y(cur) + (l(cur) * 8) < 200 THEN y(cur) = y(cur) + 8 IF z$ = "4" AND x(cur) > 0 THEN x(cur) = x(cur) - 8 GOSUB drawbox IF z$ = CHR$(0) + CHR$(59) THEN RETURN GOTO movebox movepic: mp1: z$ = "": z$ = INKEY$: IF z$ = "" THEN GOTO mp1 IF z$ = "," AND who(cur) > 0 THEN who(cur) = who(cur) - 1 IF z$ = "." AND who(cur) < 4 THEN who(cur) = who(cur) + 1 IF z$ = u$ AND py(cur) > 0 THEN py(cur) = py(cur) - 1 IF z$ = r$ AND px(cur) < 300 THEN px(cur) = px(cur) + 1 IF z$ = d$ AND py(cur) < 200 THEN py(cur) = py(cur) + 1 IF z$ = l$ AND px(cur) > 0 THEN px(cur) = px(cur) - 1 IF z$ = "8" AND py(cur) > 0 THEN py(cur) = py(cur) - 8 IF z$ = "6" AND px(cur) < 300 THEN px(cur) = px(cur) + 8 IF z$ = "2" AND py(cur) < 200 THEN py(cur) = py(cur) + 8 IF z$ = "4" AND px(cur) > 0 THEN px(cur) = px(cur) - 8 GOSUB drawbox IF z$ = CHR$(0) + CHR$(60) THEN RETURN GOTO movepic drawbox: clearpage 0 textcolor 15, 0 b$ = CHR$(22) FOR o = 0 TO w(cur) + 1 b$ = b$ + CHR$(23) NEXT o: b$ = b$ + CHR$(24) printstr b$, x(cur), y(cur), 0 FOR i = 0 TO l(cur) + 1 b$ = CHR$(25) FOR o = 0 TO w(cur) + 1 b$ = b$ + CHR$(30) NEXT o: b$ = b$ + CHR$(26) printstr b$, x(cur), y(cur) + (8 * i) + 8, 0 NEXT i b$ = CHR$(27) FOR o = 0 TO w(cur) + 1 b$ = b$ + CHR$(28) NEXT o: b$ = b$ + CHR$(29) printstr b$, x(cur), y(cur) + (l(cur) * 8) + 24, 0 textcolor 4, 0 printstr STR$(who(cur)), px(cur) - 8, py(cur), 0 printstr "X", px(cur) + 42, py(cur), 0 printstr "X", px(cur), py(cur) + 42, 0 printstr "X", px(cur) + 42, py(cur) + 42, 0 textcolor 17, 0 RETURN finish: clearpage 0 printstr "Saving...", 0, 0, 0 OPEN "data\text" + f$ + ".bob" FOR OUTPUT AS #1 FOR i = 1 TO 118 * 20 WRITE #1, text$(i) NEXT i CLOSE #1 DEF SEG = VARSEG(l(0)): BSAVE "data\textl" + f$ + ".bob", VARPTR(l(0)), 800 DEF SEG = VARSEG(w(0)): BSAVE "data\textw" + f$ + ".bob", VARPTR(w(0)), 800 DEF SEG = VARSEG(x(0)): BSAVE "data\textx" + f$ + ".bob", VARPTR(x(0)), 800 DEF SEG = VARSEG(y(0)): BSAVE "data\texty" + f$ + ".bob", VARPTR(y(0)), 800 DEF SEG = VARSEG(px(0)): BSAVE "data\textpx" + f$ + ".bob", VARPTR(px(0)), 800 DEF SEG = VARSEG(py(0)): BSAVE "data\textpy" + f$ + ".bob", VARPTR(py(0)), 800 DEF SEG = VARSEG(who(0)): BSAVE "data\textwh" + f$ + ".bob", VARPTR(who(0)), 800 SYSTEM