A 24x34 XXL Display... My Demo is ready!
Posted: Sat Jul 05, 2008 10:43 pm
Hi Retro-Programers on Zx81! (André*** try ->
My 24x34 demo is ready...
(Copy this code in a TXT or BAS file, and launch it using the "files"... "directory & Tape Explorer" window in XuR.)
Now include a Tool-kit ... CLS, a scrolling...
It use a new D-File offset, set on a S$ variable.
If you had to display somthing, just change the S$(2-25) value.
A Print AT equal :
S$(line,row to row+(string len))
or S$(line) to erase the current line
or s$(line, row TO) to print something to the end of the screen.
The old Dflie can be retrived using run/goto/gosub 6000 in the demo!
Have Fun.
Note: All is right in the Zedeeeex's world... thanks RWAP. the "P" Zipped file is in !
http://zx81.ordi5.free.fr/programmes/XXLDF-ASM.p
My 24x34 demo is ready...
(Copy this code in a TXT or BAS file, and launch it using the "files"... "directory & Tape Explorer" window in XuR.)
Now include a Tool-kit ... CLS, a scrolling...
Code: Select all
#
# 34 x 24 SCREEN RESOLUTION
# ¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸
#
# BY xAVsNAP
# 7/2008
# REM 34X24
# REM 34X24
1 REM [HEX:\
1F,20,3D,1E,20,76,76,16,\
4F,58,52,2A,0C,40,22,89,\
40,2A,12,40,01,21,00,09,\
3E,76,77,22,8B,40,22,0C,\
40,C9,2A,89,40,22,0C,40,\
C9,2A,89,40,ED,5B,8B,40,\
ED,52,F0,ED,53,0C,40,C9,\
2A,8B,40,3E,00,0E,18,06,\
22,23,77,10,FC,0D,20,F7,\
C9,2A,8B,40,23,01,22,00,\
09,54,5D,ED,42,EB,01,0E,\
03,ED,B0,EB,06,22,3E,00,\
77,23,10,FC,C9,06,18,C5,\
CD,CB,40,C1,10,F9,C9,2A,\
8B,40,0E,18,06,22,23,7E,\
EE,80,77,10,F9,0D,20,F4,\
C9,2A,12,40,06,22,7E,EE,\
80,77,23,10,F9,C9,2A,8B,\
40,54,5D,1B,D9,06,17,D9,\
13,13,23,23,01,21,00,1A,\
ED,B0,12,D9,10,F1,D9,C9,\
2A,8B,40,54,5D,13,D9,06,\
18,D9,11,21,00,19,54,5D,\
13,01,21,00,1A,ED,B8,12,\
11,22,00,19,D9,10,EA,D9,\
C9,2A,12,40,2B,54,5D,1B,\
D9,06,01,18,C2,2A,12,40,\
2B,54,5D,13,D9,06,01,18,\
D0 ]
# 00 buffer OLD D-FILE.
# 00 buffer OLD D-FILE.
# 00 buffer NEW D-FILE.
# 00 buffer NEW D-FILE.
# SAVE THE OLD DISPLAY OFFSET.
# 2A;0C;40 LD HL,($400C) ; GET D-FILE
# 22;XX;40 LD ($40XX),HL
# ASSIGN THE NEW DISPLAY AFFSET AND PREPARE IT.
# 2A;12;40 LD HL,($4012) ; GET DEST
# 22;XX;40 LD ($40XX),HL ; SAVE THE NEW D-FILE
# 01;21;00 LD BC,$0021
# 09 ADD HL,BC
# 3E;76 LD A,$76
# 77 LD (HL),A
# 22;0C;40 LD ($400C),HL ; SET D-FILE
# C9 RET
# RESTORE THE OLD D-FILE.
# 2A;XX;40 LD HL,($40XX)
# 22;0C;40 LD ($400C),HL ; SET D-FILE
# C9 RET
# RESERVE THE NEW D-FILE.
# THE STRING ARRAY CAN BE NAMED
# SCREEN$ ... FOR EXAMPLE.
# NOTE:
# THE FIST LINE S$(1) IS BLANK,
# IT USED TO PLACE THE FIRST 118
# IN THE DFILE. (DONT ERASE OR OVERWRITE IT)
10 DIM S$(25,34)
15 DIM N$(2)
# INIT FUNCTIONS
# INIT DFILE.(24X34)
16 LET INI=VAL "16525"
# CALL BACK OLD DFILE (BASIC).
# RETURN TO THE NORMAL MODE
17 LET END=VAL "16548"
# CALL BACK NEW DFILE(24X32).
18 LET RST=VAL "16555"
# CLEAR ALL SCREEN.
19 LET CLR=VAL "16570"
# SCROLL UP.
20 LET SCL=VAL "16587"
21 LET SCA=VAL "16615"
# ROTATE LEFT/RIGHT FULL SCREEN.
22 LET GL=VAL "16656"
23 LET GR=VAL "16682"
# ROTATE LEFT/RIGHT SINGLE LINE.(with s$ only)
24 LET GLL=VAL "16715"
25 LET GRL=VAL "16727"
# REVERSED CHARS.
# INVERT A LINE (with s$ only)
28 LET XRL=VAL "16643"
# INVERT THE SCREEN (the "" cant be reversed)
29 LET XRA=VAL "16625"
# INIT. THE NEW D-FILE ON S$ ARRAY.
# THE 30 LINE POINT THE DEST VALUE
# TO THE S$(1) MEMORY ADDRESS.
30 LET S$(1)=S$(1)
40 RAND USR INI
# THE FIRST LINE IS NOW S$ (2)
# THE LAST LINE IS NOW S$(25)
# PRINT TO THE HIDDEN BASIC SCREEN (BUFFERED)
45 PRINT AT 10,0;"<----- «my«basic«screen« ------>"
# DISPLAY THE BASIC SCREEN...
# ("RAND USR RST" CALL BACK THE 24X32 SCREEN)
46 RAND USR END
47 IF SQR SQR SQR SQR 1 THEN REM
48 LET S$(13,1 TO )="<------- MY 24X34 SCREEN -------->"
49 RAND USR RST
50 FOR A=1 TO 25
51 RAND USR END
53 RAND USR RST
54 NEXT A
55 LET A=2
60 LET D=1
70 LET B=25
80 FOR A=A TO B STEP D
90 LET N$=STR$ (A-1)
100 IF D=1 AND A>2 THEN LET S$(A-1)="Ž««««««««««««««««««««««««««««««««"
110 IF D=-1 AND A<25 THEN LET S$(A+1)="< >"
120 LET S$(A)=N$+"¸¸¸¸¸¸¸Ž--- 34 ROWS ---¸¸¸¸¸¸"+N$
130 NEXT A
140 IF SQR SQR SQR SQR 1 THEN REM
150 IF A=26 THEN GOTO 7000
160 LET G$="–«hello«zxŸ˜s«fans««we«can«display«in«š›’™›«resolution«now«––"
165 LET H$="–«please«press«a«key«to«return«to«the«basic«screen«or«goto«———«––"
170 LET F$=G$(1)
175 LET I$=H$(1)
180 LET D$=G$(2 TO )
185 LET E$=H$(2 TO )
190 LET G$=D$+F$
195 LET H$=E$+I$
200 LET S$(25)=H$
210 LET Z=(21*RND)+3
220 LET Y=(27*RND)+1
230 LET S$(Z,Y TO Y+6)="xAVsNAP"
240 LET S$(2)=G$
250 IF INKEY$="" THEN GOTO 170
255 FOR A=1 TO 34
260 LET S$(2)=S$(2)
270 RAND USR GL
275 NEXT A
277 IF SQR SQR SQR SQR 1 THEN REM
280 FOR A=1 TO 34
290 LET S$(2)=S$(2)
300 RAND USR GR
310 NEXT A
360 RAND USR SCA
370 IF SQR SQR SQR SQR 1 THEN REM
1000 LET G$="*O$"
1005 LET LK=16421
1010 LET X=16
1015 LET S$(2)=" <-œ OR nl(EXIT) OR Ÿ-> "
1018 IF SQR SQR SQR SQR SQR SQR 1 THEN REM
1020 RAND USR SCL
1025 IF S$(2,X+1)<>" " THEN GOTO 1110
1030 LET S$(2,X TO X+2)="¯v¼"
1035 LET Z=(33*RND)+1
1040 LET S$(25,Z TO Z)=G$((2*RND)+1)
1045 IF PEEK LK=255 THEN GOTO 1020
1050 IF PEEK LK=247 AND X>1 THEN LET X=X-1
1060 IF PEEK LK=239 AND X<32 THEN LET X=X+1
1070 IF PEEK LK=191 THEN GOTO 1190
1100 GOTO 1020
1110 LET S$(2,X TO X+2)="¿½¿"
1120 IF SQR SQR 1 THEN LET S$(2,X TO X+2)="¾¿¾"
1130 IF SQR SQR 1 THEN LET S$(2,X TO X+2)="¿:¿"
1190 LET S$(12,10 TO 24)="«««game«««over«««"
1195 IF SQR SQR SQR SQR 1 THEN REM
1200 IF SQR SQR SQR SQR 1 THEN RAND USR CLR
1210 LET S$(24)="in«text«adventure«game‰it†s«bett"
1220 LET S$(25)="er««««««««««««««««««««««««««««««"
1230 IF SQR SQR SQR SQR 1 THEN REM
1240 RAND USR SCL
1245 RAND USR SCL
1250 RAND USR SCL
1260 RAND USR SCL
1270 LET S$(25)="in«text«adventure«game‰it†s«better"
1280 RAND USR SCL
1290 LET S$(25)="IS BETTER . IS BETTER . IS BETTER."
1291 FOR A=1 TO 34
1292 LET S$(25)=S$(25)
1293 RAND USR GLL
1294 NEXT A
1295 FOR A=1 TO 34
1296 LET S$(25)=S$(25)
1297 RAND USR GRL
1298 NEXT A
1300 IF SQR SQR SQR SQR 1 THEN REM
4300 IF SQR SQR SQR SQR 1 THEN RAND USR SCA
4310 LET S$(12,10 TO 24)="xor«full«screen"
4320 IF SQR SQR SQR 1 THEN RAND USR XRA
4325 LET S$(4,10 TO 27)="inverse«characters"
4330 IF SQR SQR SQR 1 THEN RAND USR XRA
4335 LET S$(8,10 TO 27)="inverse«characters"
4340 IF SQR SQR SQR 1 THEN RAND USR XRA
4345 LET S$(16,10 TO 27)="inverse«characters"
4350 IF SQR SQR SQR 1 THEN RAND USR XRA
4355 LET S$(20,10 TO 27)="inverse«characters"
4360 IF SQR SQR SQR 1 THEN RAND USR XRA
4365 LET S$(24,10 TO 27)="inverse«characters"
4370 IF SQR SQR SQR 1 THEN RAND USR XRA
4380 LET S$(12,10 TO 24)="««xor«by«line««"
4400 FOR A=2 TO 25
4410 LET S$(A)=S$(A)
4420 RAND USR XRL
4430 NEXT A
4440 FOR A=25 TO 2 STEP -1
4450 LET S$(A)=S$(A)
4460 RAND USR XRL
4470 NEXT A
4475 IF SQR SQR SQR SQR 1 THEN RAND USR SCA
4900 LET S$(12,10 TO 24)="«««have««fun«««"
4910 IF SQR SQR SQR SQR 1 THEN REM
6000 RAND USR END
6500 STOP
7000 LET A=B
7005 LET B=2
7010 LET D=-1
7050 GOTO 80
8000 STOP
# XUR TEXT SAVING.
9990 SAVE "XXL-ASM.TXt"
9992 STOP
# SAVE THE DEMO.
9995 SAVE "XXLDF-ASM"
9999 RUN
If you had to display somthing, just change the S$(2-25) value.
A Print AT equal :
S$(line,row to row+(string len))
or S$(line) to erase the current line
or s$(line, row TO) to print something to the end of the screen.
The old Dflie can be retrived using run/goto/gosub 6000 in the demo!
Have Fun.
Note: All is right in the Zedeeeex's world... thanks RWAP. the "P" Zipped file is in !
http://zx81.ordi5.free.fr/programmes/XXLDF-ASM.p