[Zx81:Type-Ins] "Your Computer" campaign...

Discussion about ZX80 / ZX81 Software
User avatar
XavSnap
Posts: 1940
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 12/81


"Code Machine Tips"

/ASM tool/

Contributor : Antipontifex.

Code: Select all

1 REM [DEC: \
33,124,64,17,0,0,35,237,75,12,\
64,167,237,66,200,9,6,10,19,16,\
253,114,35,115,35,78,35,70,9,24,\
231 ]
2 CLS
3 LIST
4 RAND USR 16514
5 PRINT
6 LIST

Code: Select all

;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [MCREMUM.P] :
; REM   line   name: 1 REM:    31 Bytes@4082-40A0

#define ORG  .org       ; TASM cross-assembler definitions
#define equ  .equ
;-----------------------------------

;------------------------------------
;-Basic sub-routine entry.          -
;+----------------------------------+
; Lb4082  ;  <- USR Basic Enty.
;+----------------------------------+

;------- Rom and Ram Symbols -------
RAM_D_FILE equ $400C


ORG $4082 ; [@16514/@h4082]
Lb4082: ; <- USR Basic Enty.
	LD HL,$407C 
	LD DE,$0000 
Lb4088:
	INC HL 
	LD BC,(RAM_D_FILE) ; GET D-FILE
	AND A 
	SBC HL,BC 
	RET Z 
	ADD HL,BC 
	LD B,$0A 
Lb4094:
	INC DE 
	DJNZ Lb4094 ; [$4094:16532]
	LD (HL),D 
	INC HL 
	LD (HL),E 
	INC HL 
	LD C,(HL) 
	INC HL 
	LD B,(HL) 
	ADD HL,BC 
	JR Lb4088 ; [$4088:16520]
.end
MCREMUM.P
(990 Bytes) Downloaded 166 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 05/82


"Winning Sequence"

/Basic game/

Contributor : XavSnap.

Code: Select all

1 REM sequence BY   JOHN M. LEWIS, 1981 
2 PRINT "\
COMPLETE THE SEQUENCE OF NUMBERS\
YOU ARE ABOUT TO SEE" 
3 SLOW
4 PAUSE 200
5 CLS 
10 LET B=INT(RND*10)+1 
20 LET C=INT(RND*10)+1
30 LET D=INT(RND*10)+1
100 FOR A=0 TO INT(RND*6)+4
110 PRINT B 
115 LET B=B+(B+C)-D*B
120 NEXT A
125 FAST
130 INPUT X
140 IF X=B THEN PRINT AT 12,8;"CORRECT, IT WAS ";B 
150 IF X<>B THEN PRINT AT 12,8;"WRONG, IT WAS ";B 
160 GOTO 3 
SEQUENCE.P
(1.29 KiB) Downloaded 172 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 12/81


"Security number"

/ASM Tool/

Contributor : XavSnap.

Code: Select all

0 REM [DEC:\
205,187,2,44,32,250,205,187,2,\
68,77,81,20,40,247,205,189,7,\
126,201,205,130,64,254,44,40,\
3,205,0,0,201 ]
1 RAND USR 16534
9995 STOP
9999 SAVE "SECURITY" CODE="G"
SECURITY.P
(1001 Bytes) Downloaded 185 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 05/83


"SAVEd"


/ASM Tool/

Contributor : XavSnap.

Code: Select all

0 REM [HEX:\
76,76,\
CD,23,0F,37,CB,12,CB,0A,\
CD,91,40,18,FB,0E,01,06,\
00,3E,7F,DB,FE,D3,FF,1F,\
38,05,CD,2B,0F,CF,0C,17,\
17,38,34,10,EC,F1,CD,91,\
40,79,17,30,F9,21,09,40,\
CD,91,40,11,79,40,A7,E5,\
ED,52,E1,38,04,79,BE,20,\
11,23,ED,5B,14,40,A7,E5,\
ED,52,E1,20,E3,CD,2B,0F,\
CF,FF,CD,2B,0F,CF,0D,D5,\
1E,94,06,1A,1D,DB,FE,17,\
CB,7B,7B,38,F5,10,F5,D1,\
20,04,FE,56,30,A1,3F,CB,\
11,30,9C,C9,2A,04,40,01,\
0D,00,09,22,8D,40,22,AB,\
40,22,B5,40,21,84,40,ED,\
5B,04,40,01,74,00,ED,B0,\
CD,C3,03 ]
10 GOTO 110
100 SAVE"EXAMPLE"
110 PRINT "REWIND TAPE TO START OF EXAMPLE"
120 PRINT "THEN PRESS PLAY ON TAPE RECORDER"
130 PRINT "PRESS G KEY WHEN YOU HAVE DONE  THIS"
140 IF INKEY$<>"G" THEN GOTO 140
150 RAND USR 16516

Code: Select all

;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [EXAMPLE.P] : SAVE"EXAMPLE" Line 100
; REM   line   name: 0 REM:   149 Bytes@4082-4116

#define ORG  .org       ; TASM cross-assembler definitions
#define equ  .equ
;-----------------------------------

;------------------------------------
;-Basic sub-routine entry.          -
;+----------------------------------+
; Lb4084  ;  <- USR Basic Enty.
;+----------------------------------+

;------- Rom and Ram Symbols -------
FAST equ $0F23
SLOW equ $0F2B
RAM_E_LINE equ $4014
RAM_RAMTOP equ $4004
NEW equ $03C3


ORG $4082 ; [@16514/@h4082]
	HALT 
	HALT 
Lb4084: ; <- USR Basic Enty.
	CALL FAST ; [FAST]
	SCF 
	RL D 
	RRC D 
Lb408C:
	CALL Lb4091 ; [16529]
	JR Lb408C ; [$408C:16524]
Lb4091:
	LD C,$01 
Lb4093:
	LD B,$00 
Lb4095:
	LD A,$7F 
	IN A,($FE) ; Keyboard Port.
	OUT ($FF),A ; Zx81 Display/Tape port
	RRA 
	JR C, Lb40A3 ; [$40A3:16547]
	CALL SLOW ; [SLOW]
	RST 08H 
.db	$0C ; RST8 Arg: Error Code:'D'
Lb40A3:
	RLA 
	RLA 
	JR C, Lb40DB ; [$40DB:16603]
	DJNZ Lb4095 ; [$4095:16533]
	POP AF 
Lb40AA:
	CALL Lb4091 ; [16529]
	LD A,C 
	RLA 
	JR NC, Lb40AA ; [$40AA:16554]
	LD HL,$4009 
Lb40B4:
	CALL Lb4091 ; [16529]
	LD DE,$4079 
	AND A 
	PUSH HL 
	SBC HL,DE 
	POP HL 
	JR C, Lb40C5 ; [$40C5:16581]
	LD A,C 
	CP (HL) 
	JR NZ, Lb40D6 ; [$40D6:16598]
Lb40C5:
	INC HL 
	LD DE,(RAM_E_LINE) ; GET E-LINE
	AND A 
	PUSH HL 
	SBC HL,DE 
	POP HL 
	JR NZ, Lb40B4 ; [$40B4:16564]
	CALL SLOW ; [SLOW]
	RST 08H 
.db	$FF ; RST8 Arg: Error Code: ???
Lb40D6:
	CALL SLOW ; [SLOW]
	RST 08H 
.db	$0D ; RST8 Arg: Error Code:'E'
Lb40DB:
	PUSH DE 
	LD E,$94 
Lb40DE:
	LD B,$1A 
Lb40E0:
	DEC E 
	IN A,($FE) ; Keyboard Port.
	RLA 
	BIT 7,E 
	LD A,E 
	JR C, Lb40DE ; [$40DE:16606]
	DJNZ Lb40E0 ; [$40E0:16608]
	POP DE 
	JR NZ, Lb40F2 ; [$40F2:16626]
	CP $56 ; [86]
	JR NC, Lb4093 ; [$4093:16531]
Lb40F2:
	CCF 
	RL C 
	JR NC, Lb4093 ; [$4093:16531]
	RET ; ==========================

Lb40F8:    ; <<< Uncharted Entry ]

	LD HL,(RAM_RAMTOP) ; GET RAM-TOP
	LD BC,$000D 
	ADD HL,BC 
	LD (Lb408C+1),HL 
	LD (Lb40AA+1),HL 
	LD (Lb40B4+1),HL 
	LD HL, Lb4084 
	LD DE,(RAM_RAMTOP) ; GET RAM-TOP
	LD BC,$0074 
	LDIR 
	CALL NEW ; [NEW]
.end
EXAMPLE.P
(1.23 KiB) Downloaded 175 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 10/83


"Rotating display"

/ASM Tool/

Contributor : XavSnap.

Code: Select all

0 REM [HEX: \
76,76,E1,7E,23,E5,FE,FF,\
C8,CD,06,08,18,F4,06,05,\
11,FF,FF,21,32,37,19,38,\
FD,10,F8,C9 ]
10 LET A=16542
11 LET G=0

#(NEXT PAGE NOT SCANNED)
ROTATING.P
(979 Bytes) Downloaded 183 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 11/81


"Moving graphics"


/Basic tutorials/

Contributor : XavSnap.

Code: Select all

10 LET L=10 
20 LET C=15 
30 PRINT AT L,C;"\::" 
40 LET L=L+(INKEY$ ="6")-(INKEY$ ="7")
50 LET L=L-(L<0)-(L>21)
60 LET C=C+(INKEY$ ="8")-(INKEY$ ="5")
70 LET C=C+(C<0)-(C>31) 
80 CLS 
90 GOTO 30

Code: Select all

10 LET H=1
20 LET V=1
30 LET X=31
40 LET Y=21 
50 PLOT X,Y 
60 LET H=(X=0)-(X=63)+H*(X>0 AND X<63)
70 LET V=(Y=0)-(Y=43)+V*(Y>0 AND Y<63)
80 LET X=X+H
90 LET Y=Y+V
100 CLS 
110 GOTO 50 

Code: Select all

10 RAND 
20 LET L = 10
30 LET C = 15
40 LET H = 1
50 LET V = 1
60 POKE 16437,255 
70 POKE 16436,183
80 FOR I = 0 TO 25 
90 LET M = INT(RND*22) 
100 LET D = INT(RND*32) 
110 CLS 
120 PRINT AT L,C;"\''";AT M,D;"0"
130 IF L=M AND C=D THEN NEXT I
140 IF INKEY$="" THEN GOTO 190
150 LET L = L + (INKEY$="6") - (INKEY$="7")
160 LET L = L + (L<0) - (L>21)
170 LET C = C + (INKEY$="8") - (INKEY$="5")
180 LET C = C + (C<0) - (C>31)
190 LET H = (D=0) - (D=31) + H*(D>0 AND D<31)
200 LET V = (M=0) - (M=21) + V*(M>0 AND M<21)
210 LET D = D + H 
220 LET M = M + V
230 IF PEEK 16437<>243 THEN GOTO 110
240 PRINT AT 3,13;I 
P1.P
(1.07 KiB) Downloaded 175 times
P2.P
(1.11 KiB) Downloaded 174 times
P3.P
(1.45 KiB) Downloaded 182 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 09/82


"Automatic REM"

/Basic tool/

Contributor : XavSnap.

Code: Select all

1 REM EXPANDER 
9000 PRINT "HOW MANY BYTES REQUIRED?"
9010 INPUT N 
9020 LET L1=PEEK 16511+256*PEEK 16512
9030 LET L2=PEEK (L1+16515)+256*PEEK(L1+16516) 
9040 LET L3=L1+L2+4 
9050 LET X = INT(L3/256)
9060 POKE 16511,L3-256*X 
9070 POKE 16512,X 
9080 POKE L1+16512,0
9090 IF L1+L2+2<N THEN GOTO 9020 
9100 POKE 16514,118 
9110 POKE 16515,118
9120 PRINT "REM LENGTH =";L3-2;" BYTES"
9900 STOP
9999 SAVE "AUTOREM"
AUTOREM.P
(1.3 KiB) Downloaded 170 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 09/82


"REM memory"

/Basic tool/

Contributor : XavSnap.

Code: Select all

1 REM ..
2 REM ....
10 LET TL1=256*PEEK 16512+PEEK 16511
20 LET LL1= 4+TL1
30 LET PTL2 = 16508+LL1+3
40 LET TL2=256*PEEK(PTL2+1)+PEEK PTL2 
50 LET NTL=TL1+4+TL2
60 POKE 16512,INT (NTL/256)
70 POKE 16511,(NTL-256*PEEK 16512)
80 POKE (16508+LL1),128
90 PRINT (NTL-2);"AVAILABLE BYTES IN LINE 1"
100 PAUSE 200
110 CLS
120 LIST 
REMMEMORY.P
(1.25 KiB) Downloaded 157 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 06/83

"Quick Load"

/ASM tool/

Contributor : XavSnap.

Code: Select all

0 REM [HEX: \
CD,E7,02,21,\
A0,0F,10,FE,\
3E,7F,DB,FE,\
1F,30,3D,2B,\
7C,B5,20,F2,\
21,0A,40,4E,\
37,CB,11,28,\
21,9F,E6,03,\
C6,02,5F,D3,\
FF,06,22,10,\
FE,3E,7F,DB,\
FE,1F,30,1C,\
06,20,10,FE,\
1D,20,EC,06,\
6E,A7,10,FD,\
18,DB,23,EB,\
2A,14,40,37,\
ED,52,EB,30,\
CE,C3,07,02,\
3E,FF,32,27,\
40,FD,CB,3B,\
86,CF,0C,FD,\
CB,09,CE,18,\
04,FD,CB,09,\
8E,CD,E7,02,\
FD,CB,09,86,\
18,1D,0E,01,\
06,00,3E,7F,\
DB,FE,D3,FF,\
1F,30,47,17,\
17,38,67,10,\
F1,F1,FD,CB,\
09,46,20,49,\
21,0A,40,11,\
0F,41,D5,18,\
DD,FD,CB,09,\
C6,FD,CB,09,\
4E,28,04,79,\
BE,20,3B,71,\
23,EB,2A,14,\
40,37,ED,52,\
EB,30,E0,22,\
14,40,36,76,\
23,36,7F,23,\
36,76,23,22,\
1A,40,22,1C,\
40,C3,07,02,\
18,AE,FD,CB,\
09,46,28,88,\
FD,CB,09,4E,\
20,82,C3,E5,\
03,FD,CB,09,\
4E,CA,E5,03,\
CF,1A,E5,11,\
7D,40,B7,ED,\
52,E1,38,BC,\
CF,1A,1E,00,\
06,16,1C,DB,\
FE,17,38,F8,\
10,F8,7B,FE,\
24,38,C9,FE,\
5A,3F,CB,11,\
30,C2,C9 ]
10 PRINT"*** QUICK LOAD ***",,,
20 PRINT " save : USR 16514",,
30 PRINT "verify: USR 16601",,
40 PRINT " load : USR 16607"
#50 FOR A=0 TO 250
#60 POKE 32512+A,PEEK (16514+A)
#70 NEXT A
QUICKLOAD.P
(1.31 KiB) Downloaded 196 times
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: [Type-Ins] "Your Computer" campaign...

Post by XavSnap »

"Your computer" 07/82

"Plotter-Planner"

/Basic tool/

Contributor : XavSnap.

Code: Select all

500 CLS
505 LET B$=E$
510 GOTO 520+60*(CODE B$(1)>=128)
520 FOR J=CODE B$(2) TO CODE B$(3) STEP SGN(CODE B$(3)-CODE B$(2))+1*(B$(2)=B$(3))
530 PLOT J,CODE B$(1)
540 NEXT
550 LET B$=B$(4 TO )
560 GOTO 510+120*(B$="")
580 FOR J=CODE B$(2) TO CODE B$(3) STEP SGN(CODE B$(3)-CODE B$(2))+1*(B$(2)=B$(3))
590 PLOT CODE B$(1)-128,J
600 NEXT J
610 GOTO 550
630 IF R=1 THEN RETURN
635 POKE 16418,0
640 PRINT AT 23,0;"ÀUÀ TO UNPLOT OR ANY KEY"
650 POKE 16418,2
660 IF INKEY$="" THEN GOTO 660
665 IF INKEY$="U" THEN GOTO 1315 
670 GOTO 1010
999 REM PLOTTER PLANNER
1000 LET E$=""
1010 CLS
1015 LET R=0 
1020 PRINT AT 8,0;"PLOTTER PLANNER (X/Y,T,N,E)"
1025 PRINT AT 10,0;"FIXED CO-ORDINATE eg x%5%4";
1030 INPUT C$
1035 IF C$="" THEN GOTO 1030
1040 IF C$(1)="T" THEN GOTO 500+510*(E$="") 
1045 IF C$(1)="N" THEN GOTO 1000
1050 IF C$(1)="E" THEN STOP
1060 IF NOT (C$(1)="X" OR C$(1)="Y") THEN GOTO 1010
1065 LET D$=C$
1070 LET M1=43+20*(D$(1)="X")
1080 LET FP=VAL D$(2 TO )
1085 IF FP<0 OR FP>M1 THEN GOTO 1220
1100 PRINT AT 10,18;D$;"    "
1110 LET P$=CHR$(61+1*(D$(1)="X"))
1115 PRINT ,,P$;"1  ";
1120 INPUT P1
1130 PRINT P1;"  ";P$;"2 ";
1140 INPUT P2
1150 PRINT P2
1155 PRINT ,,"ÀCÀ IF OK",,"ANY OTHER TO RE-DO"
1160 IF INKEY$="" THEN GOTO 1160
1165 IF NOT INKEY$="C" THEN GOTO 1010
1175 LET M1=43+20*(D$(1)="Y")
1180 IF P1<0 OR P2<0 OR P2>M1 THEN GOTO 1250
1190 LET E$=E$+CHR$ (FP+128*(D$(1)="X"))+CHR$ P1+CHR$ P2
1210 GOTO 1010
1220 PRINT ,,,"**FIXED POINTS WRONG FOR ";D$(1)
1230 LET L=RND**RND**RND
1240 GOTO 1010
1250 PRINT ,,"**MOVING POINTS WRONG FOR ";D$(1)
1260 GOTO 1230
1315 POKE 16418,0 
1320 PRINT AT 23,0;">>>> WAIT <<<<              "
1325 POKE 16675,252 
1330 POKE 16652,252
1332 LET R=1
1335 LET B$=E$(LEN E$-2 TO LEN E$)
1340 GOSUB 510 
1350 POKE 16675,246
1360 POKE 16852,246
1370 LET E$=E$( TO LEN E$-3) 
1390 GOTO 635
9998 SAVE"PLOTTER"
9999 GOTO 1000
PLOTTER.P
(2.71 KiB) Downloaded 164 times
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Post Reply