ZX81 France, les fichiers...

Modérateur : XavierSnp

Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

Bonne année 2022.

Message non lu par XavierSnp »

Joyeuse et heureuse année 2022.
2022.jpg
Fichier "p":
2022.zip
(916 Octets) Téléchargé 141 fois
Avatar du membre
Fredo_L
Scientifique dans l'âme !
Messages : 6880
Enregistré le : 26-12-2001 13:02
Localisation : Paris
Contact :

Re: ZX81 France, les fichiers...

Message non lu par Fredo_L »

Sympa !

Bonne année !
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

Refonte de la carte Store Demonstrator.

Message non lu par XavierSnp »

Salut à tous,

Je vous presente la refonte de la carte "Store Demonstrator" qui est une curiosité car elle permet de stocker un programme Basic en ROM... et de l'executer.

Le montage est présenté ici : https://www.sinclairzxworld.com/viewtop ... 974a8bb0f4

La ROM est une 27C64 de 8Kb, qui possède les caractèristiques de PINs actuels (et non de l'ancienne, inversion du pin 2 et 27).

StoreDemo_0.jpg
StoreDemo_1.jpg
StoreDemo_2.jpg
schema.jpg

Projet Kicad et fichiers Gerber (projet non testé et conforme au schéma donné):
http://zx81.ordi5.free.fr/CartesZx81/Ti ... onstrator/

Amusez-vous bien...
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

Serveur de ROMs 8k...

Message non lu par XavierSnp »

Salut,

Voici un projet de "commutateur de ROM" 4 ROM de 8 K en mémoire basse pour le projet en 27C64. Et une avec une 27C512 qui sélectionne 8 ROMs de 8K à l'aide d'une IRQ pilotée dans un menu.
ServeurEEprom_1.42.jpg
ServeurEEprom.jpg

à voir ici:
https://forum.system-cfg.com/viewtopic. ... 23#p161923
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

[Mini-Routines] Le scrolling...

Message non lu par XavierSnp »

Salut,
Une aide précieuse pour le Basic, ces mini-routines à ajouter à vos programmes.

Code : Tout sélectionner

 # Mini routines mageco scroll 
 #  inversion video de Dale MCLoughlin


 # Scroll up 16514
1 REM [HEX:\
2A,0C,40,E5,E5,11,B6,02,19,22,0E,40,3E,21,FD,77,\
39,3E,03,FD,77,3A,E1,11,21,00,19,D1,01,D6,02,ED,\
B0,C9 ]

 # Scroll right 16554
2 REM [HEX:\
2A,0C,40,11,20,00,19,11,40,00,0E,16,06,1F,7E,F5,\
2B,7E,23,77,2B,10,F9,F1,77,19,0D,20,EF,C9 ]

 # Scroll left 16590
3 REM [HEX:\
2A,0C,40,0E,\
16,23,7E,06,1F,F5,23,7E,2B,77,23,10,F9,F1,77,23,\
0D,20,EE,C9 ]

 # Scroll down 16620
4 REM [HEX:\
2A,0C,40,E5,E5,E5,11,D6,02,19,EB,01,B5,02,E1,09,\
ED,B8,E1,06,20,23,36,00,10,FB,E1,23,22,0E,40,3E,\
21,32,39,40,3E,01,32,3A,40,C9 ]

 # Invert screen 16668
5 REM [HEX:\
2A,0C,40,ED,5B,10,40,44,4D,A7,ED,52,C8,60,69,7E,\
FE,76,28,03,C6,80,77,23,18,ED,F5,10,FB,E5,06,20,\
36,00,2B,10,FB,0E,14,06,00,10,FE,0D,20,F9,E1,06,\
20,F1,77,2B,10,FB,0E,00,06,0A,10,FE,0D,20,F9,15,\
20,D4,C9 ]


6 PRINT AT 10,14;"HELLO"
8 RAND USR 16668
10 RAND USR 16514
15 RAND USR 16514
20 RAND USR 16620
30 RAND USR 16554
40 RAND USR 16554
50 RAND USR 16590
Fichier P:
TOOLS.zip
(528 Octets) Téléchargé 93 fois
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

[Mini-Routines] Toolkit #1

Message non lu par XavierSnp »

ZX-81 TOOLKITS
by Michael Fox & Dale McLoughlin
from Your Computer, November 1982

These two articles, the first by Michael Fox and the
second by Dale McLoughlin, set out handy machine-
code routines, with a variety of uses.


Michael Fox

MANY USERS WHO have no knowledge of machine code may, nevertheless,
want to use it in their Basic programs to enhance speed and
presentation. But most machine-code routines lead only to the
development of one game or objective. The utility machine-code
routines in this article are for the ZX-81, but they can also be used
on a ZX-80 with 8K ROM. The effect on the last routine will be lost on
the ZX-80 because of the lack of a Slow mode.

The routines contain no absolute addresses, except subroutine calls,
so that you can stack them on top of another routine that does use
absolute addresses, or on top of each other and they can be called
individually.

The routines need a 16K RAM because they all manipulate the display
file. There are four routines and I have also supplied a comprehensive
loader program. The four routines are;
* A screen fill
* A downward scroll
* A text-window system
* A super-cursor

Line 1 of the machine-code loader program should contain the number of
Qs needed for the machine code plus a few extra - just in case. It is
best to use line 1, although any number will do as long as it is the
first line. Line 1 is best because there is no risk of putting a line
before it - the ZX-81 has no line 0. The length of the line can be
checked by
PRINT (PEEK 16511)-2
or PRINT (PEEK 16511 + 256*PEEK 16512)-2
if the length of the line contains more than 254 Qs.

To enter the machine code, run the program and enter the start
location of the machine code, which is usually 16514. Now start
entering the values in the third column. If you make a mistake or
enter a wrong value - it has a safeguard against entering an empty
string - then enter R for repeat and the program will re-input a value
for the last byte address. If you find a discrepancy in the addresses
or some such fault, type L to list the code. The program will input a
new start location and list from that point onwards. If at any time
you want to pause while you are checking the copy, just hold down any
key - other than R - or Space and Break, and the listing will stop
until the key is released.

If you press R, the program will return to loading mode and input a
new start location. Whenever the location you broke out from is to be
retained, enter A and it will carry on from where it left off.

It may be a good idea to type in a large line 1 and then Save the
program on tape, rather than typing it in every time it is needed. To
stack two or three machine-code routines in one Rem statement, the
best way is to type them in one after the other and note the starting
address of each routine. This is the address you should Rand USR to
call the sub- routine - all subroutines, when on their own, should be
called by
RAND USR 16516
Also note that only in the first routine should the two 118s Newline
appear. These disable the listing of the Rem statement but should only
appear at the start. You will find that on listing only 1 Rem appears,
the rest of the Basic program can be listed by List 2, or the number
of any other Basic line. To avoid this problem Poke 16419 with the
number of the lowest line below 255; then list that line.

Listing 1 is the screen-fill routine which fills the screen with any
CHR$ except tokens and 118 which will crash the system. It works by
filling the line, looking ahead one square for a Newline and when it
finds one it jumps over that square.

It counts the number of Newlines and after a specified number it
returns to Basic. This number - the number of lines filled can be
Poked into location 16517 - is set at 22. Do not Poke it with more
than 24 or with 0 for there are only 24 lines on the screen and 0 will
be decremented to 255 which is above 24 and so will cause a crash. The
character printed is at location 16528; it is set as a black square in
the listing.

The second listing, listing 2, is a downward scroll. It works by
starting at the bottom of the display file and going up loading the
accumulator with what is on the screen, copies HL into DE, adds 33 to
DE. This is equivalent to moving it down a line. Then it puts the
contents of the accumulator in that location and goes on to the next
square.

It also looks ahead for a Newline, counts the number of the Newlines
found - the number of lines scrolled - and after 22 it returns to
Basic. The number of lines scrolled can be altered by Poking location
16520 with the number of lines - 1. If it is less than 21, the lines
scrolled will be at the bottom of the screen. When you move the bottom
of the screen location and reduce the number of lines scrolled, it
will only scroll the top lines of the screen.

The top line of the display should be only background as this is what
is copied. It must not be used after computer scrolling but can be
used before. Values higher than 21 and value 0 should not be used for
the number of lines.

To set the bottom of the display file the program must contain these
four lines:
LET P=1+PEEK 16396+256*PEEK 16397
LET P=P+(22*33)-2
POKE 16517,P-256*INT(P/256)
POKE 16518,INT (P/256)

The number 22 in the second of these lines is the number of lines to
move down. If you move the bottom of the display file as mentioned,
this number should be altered accordingly. It does not upset the
display file as the computer's upward scroll does.

After seeing Timothy Gilbert's article on how to protect lines at the
bottom of the screen by creating a text window at the top in the
February issue of Your Computer, I decided to write a routine to
produce a text window at the bottom of the display, thereby protecting
the top of the screen.

The program works by finding the start of the display file and then
moving down to the top of the text window. It then moves each square
on the screen up a line, looking ahead for Newlines and counting them.
When it has scrolled the correct number of lines, it sets the next
print position to the bottom scrolled line and sets the column number
to 21. This number in the window is at location 16517 and is set at 5.
Location 16519 should be Poked with 23 minus the number of lines.

The bottom line of the window is left clear after a scroll because it
scrolls the top line of the bottom part of the screen which is always
blank. Input does not affect the routine and vice versa. When using it
in a program, rather than using scroll, use
RAND USR 16516
but do not type this in every time it is needed - it is quicker to
type in the program and make a list on paper of all the scroll lines.
Then, after typing in the rest of the program, insert a
RAND USR 16516
then edit it and change the line number to produce the other Rand USRs
needed as this is quicker and easier on the fingers.

The routine can also be used to generate windows at any height
anywhere on the screen. To do this, Poke 16517 with the number of
lines and 16519 with the number of lines down to the top line of the
window. Then use the routine as normal but you will have to leave a
blank line below the window and, because it looks better, a blank line
above as well. This enables two protected, separate and unmoving
pictures or text to be displayed above and below a window.

The fourth and final listing is a Super Cursor. It runs a vertical
line from left to right across the screen leaving a clear screen
behind it. This is very impressive and the only routine which contains
absolute addresses. They are in the form of subroutine calls, so if
you stack the routines on top of each other; this one would have to be
placed at location 16514.

The routine sets itself for the first line and calls a subroutine to
draw the line. It then draws another line which clears the first and
moves on in this manner across the screen looking for the end of the
line. When found, it clears the last line and returns to Basic.

The location of the first cursor line CHR$ is at 16521 and is set to
8; the location of the main cursor line CHR$ is at 16532 and is also
set to 8. The location of the trail left is at location 16538 and the
last trail line is at 16547.



HANDY HINTS
Dale McLoughlin

THE ZX-81 instruction set offers very little in the way of
screen-controlling commands. To make up for this deficiency, these
machine- code routines provide a variety of functions including
flashing single characters or whole lines, a fast CLS, reverse
scrolling and much more.

By far the easiest method of using machine code is to store it in a
Rem statement at the beginning of a Basic program. Program 1 enables
you to enter a group of machine-code instructions into the first line
of the program, which can then be Saved, Loaded and used as part of
longer Basic routines. Lines 10 to 80 can be removed once all the
machine code has been entered - but under no circumstances should the
Rem line be edited as this can remove vital instructions from the
machine code.

Each routine can be used on its own since each is totally independent
of the others, or they could all be entered together to form one large
toolkit to be called at various points throughout a long Basic program.

Some of the routines require a Poke of some data before they are
called - a line number to be deleted - and where this is necessary it
is assumed that the data has already been checked for validity. For
example, you cannot delete line 25 since it will cause the system to crash.

Most of the routines are called by the Basic
RAND USR 16514
where it is the first or only routine in the Rem line. If you intend
to use more than one at a time you will have to calculate the
appropriate calling address by adding the length of previous routines
to 16514.

As a convention I have used the label Start to indicate the calling
point of each routine, and any bytes to be Poked are shown in relation
to this. For example:
POKE START+5;
if
START=16514
then
POKE 16519

To enter the machine code, type in program 1, counting carefully the
number of Xs in line 1 - it may be best to enter them in Fast mode -
and Run it. Then input the machine code in manageable blocks. Use the
hex codes and watch carefully as you do it as mistakes are difficult
to locate afterwards. When the code is finished enter S to stop the
program.

These routines are for the ZX-81 with expanded display file - that is,
with more than 3.25K of RAM - and they apply to the later ROM design.
If some of them do not work it is because your ZX-81 is an early model
and consequently you should change all occurrences of CD1D15 to
CD1915. Additionally, if Scroll has been used to create the display
then it must be cleared with CLS to recreate the expanded file, since
Scroll collapses the display as if there were less than 3.25K present.
Routine 10 will of course work with any memory size.

Routine 1 will fill the whole screen with a specified character if you
POKE START+21
with the code of that character. It must be a non-expanded one - that
is not
RND, PI, INPUT, etc

Repeatedly calling routine 2 - for example with a For-Next loop -
appears to flash the whole screen. The following Basic program would
flash the screen until a key is pressed:
100 RAND USR 16514
110 IF INKEY$<>"" THEN GOTO 130
120 GO TO 100
130 rest of program

Code : Tout sélectionner

# REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     0  REM [HEX:\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D ]


# REM ZX-81 TOOLS                  BY 
#     MICHAEL FOX                FROM
     2  REM [HEX:\
3F,3D,16,24,1D,00,39,34,\
34,31,38,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,27,3E,00,\
32,2E,28,2D,26,2A,31,00,\
2B,34,3D,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,2B,37,34,32,00,\
3E,34,3A,37,00,28,34,32,\
35,3A,39,2A,37,1A,00,33,\
34,3B,1B,24,1E ]


# REM TO AVOID HAVING LOTS OFLITTLE FI
#     LES I"VE WRITTEN AN    ALTERNAT
     3  REM [HEX:\
39,34,00,26,3B,34,2E,29,\
00,2D,26,3B,2E,33,2C,00,\
31,34,39,38,00,34,2B,31,\
2E,39,39,31,2A,00,2B,2E,\
31,2A,38,00,2E,0B,3B,2A,\
00,3C,37,2E,39,39,2A,33,\
00,26,33,00,00,00,00,26,\
31,39,2A,37,33,26,39,2E,\
3B,2A,00,31,34,26,29,2A,\
37,00,3C,2D,2E,28,2D,00,\
31,34,26,29,38,00,00,26,\
00,38,2A,31,2A,28,39,2A,\
29,00,37,34,3A,39,2E,33,\
2A,00,2B,37,34,32,00,26,\
00,38,39,37,2E,33,2C,2F,\
3A,38,39,00,37,2A,32,34,\
3B,2A,00,39,2D,2A,00,37,\
2A,32,00,39,34,30,2A,33,\
00,2B,37,34,32,00,00,3C,\
2D,2E,28,2D,2A,3B,2A,37,\
00,31,2E,33,2A,00,3E,34,\
3A,00,3C,26,33,39,00,39,\
34,00,39,37,3E,1B,00,39,\
3E,35,2A,00,37,26,33,29,\
00,3A,38,37,00,1D,22,21,\
1D,22,00,39,34,00,37,3A,\
33,00,26,00,00,00,00,37,\
34,3A,39,2E,33,2A,00,34,\
33,28,2A,00,2E,39,00,2D,\
26,38,00,27,2A,2A,33,00,\
31,34,26,29,2A,29,1B,10,\
2F,2E,32,1B,2C,11 ]


# REM SEE THE ACCOMPANYING   FILE ZXTO
#     OL1.TXT FOR MORE INFO.
     4  REM [HEX:\
38,2A,2A,00,39,2D,2A,00,\
26,28,28,34,32,35,26,33,\
3E,2E,33,2C,00,00,00,2B,\
2E,31,2A,00,3F,3D,39,34,\
34,31,1D,1B,39,3D,39,00,\
2B,34,37,00,32,34,37,2A,\
00,2E,33,2B,34,1B ]

    10  REM CREEN FILL


# REM _C$="118118006022042012064035126
#     2541180400040541280242460162442
    11  REM [HEX:\
F1,28,0D,14,0B,1D,1D,24,\
1D,1D,24,1C,1C,22,1C,1E,\
1E,1C,20,1E,1C,1D,1E,1C,\
22,20,1C,1F,21,1D,1E,22,\
1E,21,20,1D,1D,24,1C,20,\
1C,1C,1C,20,1C,21,20,1D,\
1E,24,1C,1E,20,1E,20,22,\
1C,1D,22,1E,20,20,1E,1C,\
1D,0B ]

    20  REM DOWNWARD SCROLL


# REM _C$="118118033000000014021126254
#     1180400110840930060330190162530
    21  REM [HEX:\
F1,28,0D,14,0B,1D,1D,24,\
1D,1D,24,1C,1F,1F,1C,1C,\
1C,1C,1C,1C,1C,1D,20,1C,\
1E,1D,1D,1E,22,1E,21,20,\
1D,1D,24,1C,20,1C,1C,1D,\
1D,1C,24,20,1C,25,1F,1C,\
1C,22,1C,1F,1F,1C,1D,25,\
1C,1D,22,1E,21,1F,1C,1D,\
24,1C,20,1F,1C,1E,20,1E,\
20,1C,1C,20,1F,1C,1D,1F,\
1E,1C,1C,1C,1E,20,1E,1F,\
21,0B ]

    30  REM TEXT WINDOW


# REM _C$="118118014005022018042012064
#     0350060330350162530210322481262
    31  REM [HEX:\
F1,28,0D,14,0B,1D,1D,24,\
1D,1D,24,1C,1D,20,1C,1C,\
21,1C,1E,1E,1C,1D,24,1C,\
20,1E,1C,1D,1E,1C,22,20,\
1C,1F,21,1C,1C,22,1C,1F,\
1F,1C,1F,21,1C,1D,22,1E,\
21,1F,1C,1E,1D,1C,1F,1E,\
1E,20,24,1D,1E,22,1E,21,\
20,1D,1D,24,1C,20,1C,1C,\
1D,1D,1C,24,20,1C,25,1F,\
1C,1C,22,1C,1F,1F,1C,1E,\
23,1C,1D,22,1E,21,1F,1C,\
1D,24,1C,1F,21,1C,1E,20,\
1E,20,1C,1C,1F,21,1C,1D,\
1F,1C,1F,1E,1E,1F,23,1C,\
1C,22,1C,1F,1E,1C,1E,23,\
1C,1D,22,1E,21,1F,1E,1F,\
23,1C,24,1F,1C,1D,20,1C,\
22,20,1C,1F,1F,1C,21,24,\
1C,22,20,1C,21,20,1C,1E,\
1D,1E,1C,1D,0B ]

    40  REM SUPER CURSOR


# REM _C$="118118042012064035062008205
#     1680640351262541180400140620082
    41  REM [HEX:\
F1,28,0D,14,0B,1D,1D,24,\
1D,1D,24,1C,20,1E,1C,1D,\
1E,1C,22,20,1C,1F,21,1C,\
22,1E,1C,1C,24,1E,1C,21,\
1D,22,24,1C,22,20,1C,1F,\
21,1D,1E,22,1E,21,20,1D,\
1D,24,1C,20,1C,1C,1D,20,\
1C,22,1E,1C,1C,24,1E,1C,\
21,1D,22,24,1C,22,20,1C,\
20,1F,1C,22,1E,1C,1C,1C,\
1E,1C,21,1D,22,24,1C,22,\
20,1C,1F,21,1C,1E,20,1E,\
1F,22,1C,20,1F,1C,22,1E,\
1C,1C,1C,1E,1C,21,1D,22,\
24,1C,22,20,1E,1C,1D,1D,\
1D,25,1C,1D,20,1C,1E,1D,\
1C,24,20,1C,25,1F,1C,1C,\
22,1C,1F,1F,1C,1D,25,1C,\
1D,22,1E,21,1F,1C,1D,24,\
1C,1D,1F,1C,1F,1E,1E,20,\
23,1E,1C,1D,0B ]

   100 LET A=16514
   110 FOR B=1 TO LEN C$ STEP 3
   120 POKE A,VAL C$(B TO B+2)
   125 LET A=A+1
   130 NEXT B

TK1.ZIP
(14.9 Kio) Téléchargé 91 fois
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

[Mini-Routines] Toolkit #2

Message non lu par XavierSnp »

Code : Tout sélectionner


# REM 5  T__0_______B:E£__-?_47__(___4
#     Q F(_:=_ (_$4___4__F(_: __(_$4_
     0  REM [HEX:\
21,00,00,39,ED,5B,1C,40,\
ED,52,44,4D,C9,CD,A7,0E,\
2A,0C,40,09,16,0F,06,20,\
23,7E,F5,10,FB,E5,06,20,\
36,00,2B,10,FB,0E,14,06,\
00,10,FE,0D,20,F9,E1,06,\
20,F1,77,2B,10,FB,0E,00,\
06,0A,10,FE,0D,20,F9,15,\
20,D4,C9,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D,3D,\
3D,3D,3D,3D,3D,3D,3D ]


# REM ZX-81 TOOLKITS               BY 
#     DALE MCLOUGHLIN            FROM
     2  REM [HEX:\
3F,3D,16,24,1D,00,39,34,\
34,31,30,2E,39,38,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,27,3E,00,\
29,26,31,2A,00,32,28,31,\
34,3A,2C,2D,31,2E,33,00,\
00,00,00,00,00,00,00,00,\
00,00,00,2B,37,34,32,00,\
3E,34,3A,37,00,28,34,32,\
35,3A,39,2A,37,1A,00,33,\
34,3B,1B,24,1E ]


# REM I WROTE THIS SELECTION ROUTINE R
#     ATHER THAN SAVE EACH   ROUTINE 
     3  REM [HEX:\
2E,00,3C,37,34,39,2A,00,\
39,2D,2E,38,00,38,2A,31,\
2A,28,39,2E,34,33,00,37,\
34,3A,39,2E,33,2A,00,37,\
26,39,2D,2A,37,00,39,2D,\
26,33,00,38,26,3B,2A,00,\
2A,26,28,2D,00,00,00,37,\
34,3A,39,2E,33,2A,00,39,\
34,00,26,00,38,2A,35,26,\
37,26,39,2A,00,31,2E,39,\
39,31,2A,00,00,00,00,2B,\
2E,31,2A,1B,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
10,2F,2E,32,1B,2C,11 ]

     5 LET START=16514
     6 DIM S$(32)
    10 PRINT AT 2,0;" 0 QUIT                          1 FAST CLEAR SCREEN             2 INVERT SCREEN                 3 DRAW A BORDER                 4 CLEAR SINGLE LINES            5 SCROLL A LINE TO LEFT         6 CLEAR DOWN FROM A GIVEN LINE"
    11 PRINT " 7 SCROLL BOTTOM 12 LINES        8 FLASH A SINGLE CHARACTER      9 FLASH A SINGLE LINE          10 REMAINING MEMORY             11 REVERSE SCROLL               12 FLASH A LINE IN INVERSE"
    20 LET O$="000012OPTION"
    21 GOSUB 9000
    23 IF NOT OPT THEN STOP 
    30 LET DONE=0
    50 GOSUB OPT*100
    60 IF NOT DONE THEN RAND USR START
    65 LET P$="PRESS A KEY"
    66 GOSUB 3000
    70 IF INKEY$<>"" THEN GOTO 70
    71 IF INKEY$="" THEN GOTO 71
    98 CLS 
    99 GOTO 10
   100 LET C$="2A0C40ED5B1040444DA7ED52C860697EFE76280236002318EE"
   110 GOSUB 2000
   190 RETURN 
   200 LET C$="2A0C40ED5B1040444DA7ED52C860697EFE762803C680772318ED"
   210 GOSUB 2000
   290 RETURN 
   300 LET C$="3E002A0C400620237710FC0614232377111F00197710F6230620237710FCC9"
   310 GOSUB 2000
   320 LET O$="000021CHARACTER CODE"
   330 GOSUB 9000
   340 POKE START+1,OPT+(117 AND OPT>10)
   390 RETURN 
   400 LET C$="3E00CD1D153E21CD1D15EF0434CDA70E2A0C4009062023360010FBC9"
   410 GOSUB 2000
   420 LET O$="000021LINE NUMBER"
   430 GOSUB 9000
   440 POKE START+1,OPT
   490 RETURN 
   500 LET C$="3E00CD1D153E21CD1D15EF0434CDA70E2A0C400923545D7E23011F00EDB02B77C9"
   510 GOTO 410
   600 LET C$="3E00FD7740FD363900CD1D153E21CD1D15EF0434CDA70E2A0C4009220E40FD340EED5B104023444DA7ED52C860697EFE7628F2360018EE"
   610 GOTO 410
   700 LET C$="014A012A0C4009EB016B012A0C4009EDB006202B360010FB011500C9"
   710 GOSUB 2000
   720 PRINT AT 21,0;S$;AT USR START,0;" UP TO 32 CHARACTERS "
   730 LET DONE=1
   790 RETURN 
   800 LET C$="3E00CD1D153E21CD1D15EF0434CDA70E2A0C4009230100000916007E36000E00060010FE0D20F9770E00060010FE0D20F91520E8C9"
   810 GOSUB 2000
   820 LET O$="000021LINE NUMBER"
   821 GOSUB 9000
   822 POKE START+1,OPT
   830 LET O$="000031COLUMN NUMBER"
   831 GOSUB 9000
   832 POKE START+22,OPT
   840 LET O$="000255NUMBER OF FLASHES"
   841 GOSUB 9000
   842 POKE START+26,OPT
   850 LET O$="000255TIME OFF"
   851 GOSUB 9000
   852 POKE START+33,OPT
   860 LET O$="000255TIME ON"
   861 GOSUB 9000
   862 POKE START+43,OPT
   890 RETURN 
   900 LET C$="3E00CD1D153E21CD1D15EF0434CDA70E2A0C400916000620237EF510FBE5062036002B10FB0E00060010FE0D20F9E10620F1772B10FB0E00060010FE0D20F91520D4C9"
   910 GOSUB 2000
   920 LET O$="000021LINE NUMBER"
   921 GOSUB 9000
   922 POKE START+1,OPT
   930 LET O$="000255NUMBER OF FLASHES"
   931 GOSUB 9000
   932 POKE START+21,OPT
   940 LET O$="000255TIME OFF"
   941 GOSUB 9000
   942 POKE START+38,OPT
   950 LET O$="000255TIME ON"
   951 GOSUB 9000
   952 POKE START+57,OPT
   990 RETURN 
  1000 LET C$="21000039ED5B1C40ED52444DC9"
  1010 GOSUB 2000
  1020 LET P$="FREE MEMORY = "+STR$ USR START+"  (KEY)"
  1030 GOSUB 3000
  1040 IF INKEY$<>"" THEN GOTO 1040
  1041 IF INKEY$="" THEN GOTO 1041
  1050 LET DONE=1
  1090 RETURN 
  1100 LET C$="2A0C4011D60219EB2A0C4001B50209EDB801002023360010FBC9"
  1110 GOTO 710
  1200 LET C$="3E00CD1D153E21CD1D15EF0434CDA70E2A0C400916000620237EC6807710F90E00060010FE0D20F906207EC680772B10F90E00060010FE0D20F91520D9C9"
  1210 GOSUB 2000
  1220 LET O$="000021LINE NUMBER"
  1221 GOSUB 9000
  1222 POKE START+1,OPT
  1230 LET O$="000255NUMBER OF FLASHES"
  1231 GOSUB 9000
  1232 POKE START+21,OPT
  1240 LET O$="000255TIME OFF"
  1241 GOSUB 9000
  1242 POKE START+34,OPT
  1250 LET O$="000255TIME ON"
  1251 GOSUB 9000
  1252 POKE START+52,OPT
  1290 RETURN 
  2000 LET A=START
  2002 LET P$="POKING ..."
  2003 GOSUB 3000
  2010 FOR B=1 TO LEN C$ STEP 2
  2020 POKE A,16*CODE C$(B)+CODE C$(B+1)-476
  2030 LET A=A+1
  2040 NEXT B
  2090 RETURN 
  3000 PRINT AT 21,0;P$;S$( TO 32-LEN P$)
  3010 RETURN 
  9000 LET P$="ENTER "+O$(7 TO )+" ("+STR$ (VAL O$( TO 3))+"-"+STR$ (VAL O$(4 TO 6))+")"
  9002 GOSUB 3000
  9010 INPUT OPT
  9020 IF OPT<VAL O$( TO 3) OR OPT>VAL O$(4 TO 6) OR OPT<>INT OPT THEN GOTO 9010
  9030 RETURN 
[Inclus dans le zip du message précédent]
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

Re: ZX81 France, les fichiers...

Message non lu par XavierSnp »

Salut à tous,

Voici une reconstruction de la carte son "ZON X-81" pour Zx81 & SPECTRUM de la marque BI-PAK:
Bi-Pack_ZONX_1.jpg
Bi-Pack_ZONX_2.jpg

Fichiers GERBER de fabrication:
Gerber_ZonX81_BI_PAK.zip
(35.49 Kio) Téléchargé 41 fois

Projet Kicad v6:
http://abandon.pcbs.free.fr//BI-PAK/ZON ... k_ZONX.zip
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

Re: ZX81 France, les fichiers...

Message non lu par XavierSnp »

Bonjour à tous,

Voici un jeu d'aventure de 1983-85 de loriciels, sorti sur Oric puis Amstrad.
le-mystere-de-kikekankoi.jpg
Afin de nourrir votre ZX81 64K, ici 32ko suffisent, je vous soumet une version du jeu.

POKE 16388,255
POKE 16389,191
NEW
LOAD""


Au format "P" pour la ZXpand et SDcards (WAV en Fast-Load : 40 secondes) , ressources incluses:
update 23-01-2024 (corrections cosmétiques)
KiKeKanKoi_ZX81.zip
(398.01 Kio) Téléchargé 32 fois

Amusez-vous bien.
En association avec Brutal Deluxe Software, qui a sorti il y a peu une version Apple ][...
Ici: https://www.brutaldeluxe.fr/products/apple2/kikekankoi/
Avatar du membre
XavierSnp
Legendary
Messages : 749
Enregistré le : 22-02-2012 08:00
Contact :

Re: ZX81 France, les fichiers...

Message non lu par XavierSnp »

Bonjour à tous,

Voici un jeu d'aventure de Laurent Benes édité par Loriciels, et sorti sur Oric en Août 1984 .


Image
Screen_1.jpg
Screen_2.jpg



Afin de nourrir votre ZX81 64K, ici 32ko suffisent, je vous soumet une version du jeu.

POKE 16388,255
POKE 16389,191
NEW
LOAD""


Au format "P" pour la ZXpand et SDcards (WAV en Fast-Load : 40 secondes) , ressources incluses:

update 06-03-2024 (r1.3)
http://zx81.ordi5.free.fr/xavsnap/Retou ... 81_32k.zip

- Modification du mode d'utilisation de l'ascenceur moléculaire... (ajout à la version originale!)

Logiciel en BASIC/Assembleur plus rapide que les versions précédentes...
Pour des raison de facilité de programmation, le programme reste accessible en BASIC pour vos adaptations futures.

Amusez-vous bien.
En association avec Brutal Deluxe Software, qui a sorti il y a peu une version Apple ][...
Ici: https://www.brutaldeluxe.fr/products/ap ... rdrgenius/
Répondre