A 24x34 XXL Display... My Demo is ready!

Anything Sinclair ZX Basic related; history, development, tips - differences between BASIC on the ZX80 and ZX81
Post Reply
User avatar
XavSnap
Posts: 1940
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

A 24x34 XXL Display... My Demo is ready!

Post by XavSnap »

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...

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 

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
Last edited by XavSnap on Fri Jul 11, 2008 10:24 am, edited 1 time in total.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
User avatar
XavSnap
Posts: 1940
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: A 24x34 XXL Display... My Demo is ready! (updated Again!)

Post by XavSnap »

The new release is available

http://zx81.ordi5.free.fr/programmes/XXLDF-ASM.p

- RND fixed.
- One line to init the dest variable!
LET S$(1)=usr ini (the ASM code now break the LET command and dont set S$)

Have Fun !
Attachments
34x24_Kit.zip
34x24 coders Kit + Demo
(4.98 KiB) Downloaded 472 times
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
User avatar
yerzmyey
Posts: 1240
Joined: Thu May 15, 2008 10:11 am
Location: Rubber Planet
Contact:

Re: A 24x34 XXL Display... My Demo is ready!

Post by yerzmyey »

Wow, impressive stuff!
IN NIHILUM REVERTERIS - a big text-adventure game for ZX81: http://tiny.pl/g2m6m
"MONOCHROME" issue 5 - (Spring 2014) free paper/PDF magazine about ZX81: http://tiny.pl/q2m44
ZX81 COMPETITIONS 2007/2009: http://zx81.republika.pl/
sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: A 24x34 XXL Display... My Demo is ready!

Post by sirmorris »

Yep very nice. I'm just disassembling it now :P
sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: A 24x34 XXL Display... My Demo is ready!

Post by sirmorris »

So let me get this straight - you have simply redirected the dfile to be inside a string var??

Genious!

Big congrats xav :)
User avatar
XavSnap
Posts: 1940
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: A 24x34 XXL Display... My Demo is ready!

Post by XavSnap »

Genious!
Just Simple !

The Let function print the screen !!!
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
AndrewH7
Posts: 6
Joined: Thu Oct 15, 2015 1:47 pm

Re: A 24x34 XXL Display... My Demo is ready!

Post by AndrewH7 »

I got a 33rd character on screen of my ZX81 by poking end-of-line 1+ something else, & always wondered if more than 32= possible.
AndrewH7
Posts: 6
Joined: Thu Oct 15, 2015 1:47 pm

Re: A 24x34 XXL Display... My Demo is ready!

Post by AndrewH7 »

Just wondering if 40 across possible? or is it that the ZX81 not that fast? I was reading about ZX80 @ hotel & now know that in the same village some 1'd SuperBrain computer, which has 40 across, but @ the time I didn't've £1000+ to buy 1.
dr beep
Posts: 2060
Joined: Thu Jun 16, 2011 8:35 am
Location: Boxmeer

Re: A 24x34 XXL Display... My Demo is ready!

Post by dr beep »

One of my first meetings with the screen was someone who altered the ROM-routine and added at least 4 characters to the display.
User avatar
Buka
Posts: 33
Joined: Sun May 12, 2013 2:51 pm
Location: Russia

Re: A 24x34 XXL Display... My Demo is ready!

Post by Buka »

40 characters were doing for a Prestel network.

Image

It would be possible to get this ROM...
"The Earth is just too small and fragile a basket for the human race to keep all its eggs in." ― Robert Anson Heinlein
Elektronika MK61, Psion series 5mx have now. Many years ago had Spectrum 48, 128k/TRDOS and Amiga A600 ...
Post Reply