On the new release v.22-03-22, the speed optimisation is back.

Have Fun...
Code: Select all
#¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸
# VB81 XUR - ASM SCREEN SHOT.
#®®®®®®®®®®®®®®®®®®®®®®®®®®®®
#
#============================
#Encoder for screen compression
# by XAVSNAP
#Revised 09/15 BY GCH [Greg;GCHarder]
#============================
1 REM [HEX:\
76,76,E7,CD,92,0D,CD,F5,\
0B,68,61,CD,D8,09,01,05,\
00,09,EB,2A,0C,40,23,FD,\
36,7C,01,1A,CB,77,CB,B7,\
FD,77,7B,28,0A,13,1A,FD,\
77,7C,FE,01,CA,5B,00,ED,\
4B,7B,40,71,23,CB,76,28,\
01,23,10,F7,13,18,D8 ]
(...)
# Use 'USR 16516,' and the picture line number (Line 2 to 255).
50 FOR P=2 TO 2
51 PRINT USR 16516,P+SIN PI+SIN PI+SIN PI+SIN PI+SIN PI+SIN PI
53 NEXT P
Code: Select all
;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [Decoder.p] :
; REM line name: D=16514/16562 : H=4082/40B2
#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
EXTERR .equ $005B ; Basic Break function ! Ignore line instructions.
SPARE16 .equ $407B
ORG $4082 ; [@16514/@h4082]
Lb4082:
.db $76,$76
Lb4086:
RST 20H
CALL $0D92
CALL $0BF5
LD L,B
LD H,C
CALL $09D8 ; offset to HL
LD BC,5
ADD HL,BC
EX DE,HL
LD HL,(RAM_D_FILE) ; GET D-FILE
INC HL
Lb408D:
LD (IY+124),$01
LD A,(DE)
BIT 6,A
RES 6,A
LD (IY+123),A
JR Z, Lb40A4 ; [$40A4:16548]
INC DE
LD A,(DE)
LD (IY+124),A
CP $01 ; [1]
JP Z,EXTERR
Lb40A4:
LD BC,(SPARE16)
Lb40A7:
LD (HL),C
INC HL
BIT 6,(HL)
JR Z, Lb40AE ; [$40AE:16558]
INC HL
Lb40AE:
DJNZ Lb40A7 ; [$40A7:16551]
INC DE
JR Lb408D ; [$408D:16525]
.end