рд╕рд┐рдВрдХреНрд▓реЗрдпрд░ zx80 / тАЛтАЛzx81 рдЕрдиреБрдХрд░рдг

рдЫрд╡рд┐

рдХрдИ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдЙрднрд░рддреЗ рд╣реБрдП COVID-19 рдорд╣рд╛рдорд╛рд░реА рдиреЗ рдЖрдИрдЯреА рд╕рдореБрджрд╛рдп рдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рдЕрдВрдзреЗрд░реЗ рдкрдЯреНрдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдкреНрд░рдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рдорд╛рд░реНрдЪ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рдкреНрд░рд╕рд┐рджреНрдз рдбреЗрдореЛрдкрд╛рд░реНрдЯреА рдлреЙрд░рдПрд╡рд░ 2020 рдХреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рд╢рд░рдж рдЛрддреБ рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд░рджреНрджреАрдХрд░рдг рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЖрдпреЛрдЬрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреАред рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрд░реЗ рдПрдХ рдХрд╛рдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдпрд╣ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдХрд┐ рдХреЛрдИ Apple II рдирд╣реАрдВ рдерд╛, рдФрд░ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрд╛рдо рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛:
Amstrad CPC, Thomson, PMD-85, MSX, ZX81, рд╕реИрдо рдХреВрдк, рд╕рднреА рдЧреИрд░-рд╕реА = 64 8-рдмрд┐рдЯ рдХрдореЛрдбреЛрд░ рдпрд╛ рдХреЛрдИ рднреА 8-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо

рдореИрдВ ZX81 рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдВрдкреНрдпреВрдЯрд░ рд╕реАрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред

рд╢реЛрдз рдореЗрд░реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реБрдЖ:

рдПрдореБрд▓реЗрдЯрд░


рдореИрдВрдиреЗ рдЪреБрдирд╛ EightyOne
рдиреЗ 1.6.1 рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдпрд╛ред рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбрд┐рдмрдЧрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбрд▓ рдХрд╛ рдЕрдиреБрдХрд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - ZX80, рдмрд╛рдж рдореЗрдВ рдореБрдЭреЗ рдПрдХ рдФрд░ рдирд┐рд░реНрдорд╛рдг 3.7 рдорд┐рд▓рд╛ред

рдХреНрд░реЙрд╕ рдХрд╛ рдорддрд▓рдм рд╣реИ


рдЦреЛрдЬ FASM (рдПрдХ рдХреЗ рд▓рд┐рдП рд▓рд╛рдпрд╛ рдордВрдЪ рдкрд░ рд╡рд┐рд╖рдп рдордВрдЪ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдХрд▓рд┐рдд рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдореИрдВ рдЕрдиреНрдп рдХреЛрдбрд╛рдВрддрд░рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА -редред Pasmo рдФрд░ рджреВрд╕рд░реЛрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдХрд╛рдо рдХрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд▓рд╛рдВрдЧ рдЦреЛрдЬреЗрдВ рдПрдХ рд▓рд╛рдпрд╛ рдореБрджреНрд░рдг рдХрд╛ рдЙрджрд╛рд╣рд░рдг Hello, world!

, рдЪрдорддреНрдХрд╛рд░! рдпрд╣ рдирд┐рдХрд▓рд╛! рдЕрдм рддреАрд╕рд░реЗ рдПрдкрд┐рд╕реЛрдб рдХреА рдмрд╛рд░реА рдЖрдИ рд╣реИред

рдкреНрд░рд▓реЗрдЦрди


рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ ред
Disassembler ROM рдпрд╣рд╛рдБред

рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб:

0000-1FFF - ROM
2000-3FFF - Shadow ROM.   ,   Interface 1
4000-7FFF -  16

рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╕рд┐рд╕реНрдЯрдо рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 16509 рдкрд░, рдмреЗрд╕рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░ рдЗрд╕рдХреЗ рдЪрд░ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реИрдВред

BASIC рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рд╢рд╛рдорд┐рд▓ рд╣реИ:

2      big endian
2   
...  
1  ($76) -  

рдХреИрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ BASIC рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реА рд╕рдВрднрд╡ рд╣реИрдВ; рдпрд╣ рд╡рд┐рдзрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдереА:

1 REM (    )
2 RANDOMIZE USR(16514) -    ,   REM

рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдЪрд░ D_FILE рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдХреЗрддрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

D_FILE:     defw    display_file

display_file:   defb    _NL
        defs    32
...
        defs    32
        defb    _NL

рдкрд╣рд▓реА рдмрд╛рдЗрдЯ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ, рдлрд┐рд░ 32 рдмрд╛рдЗрдЯреНрд╕ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВред

рдпрд╣ 24 рд░реЗрдЦрд╛рдПрдБ рдирд┐рдХрд▓реАрдВ, рдЬреЛ рднрд╛рд░реА рджрд┐рдЦ рд░рд╣реА рдереАрдВред

рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЬреЛ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛:

рдЫрд╡рд┐

;compile with sjasmplus
	device zxspectrum128

p_start:    org 0x4009
begin

VERSN:      defb    0
E_PPC:      defw    20      ; BASIC line number of line with cursor.
D_FILE:     defw    display_file2
DF_CC:      defw    display_file2+1
VARS:       defw    variables
DEST:       defw    0
E_LINE:     defw    edit_line
CH_ADD:     defw    p_end-1
X_PTR:      defw    0
STKBOT:     defw    p_end
STKEND:     defw    p_end
BERG:       defb    0
MEM:        defw    MEMBOT
SPARE1:     defb    0
DF_SZ:      defb    2       ; Number of lines in lower part of screen.
S_TOP:      defw    10      ; BASIC line number of line at top of screen.
LAST_K:     defw    0xffff
DB_ST:      defb    0
MARGIN:     defb    55      ; Blank lines above/below TV picture: US = 31, UK = 55.
NXTLIN:     defw    display_file    ; Memory address of next program line to be executed.
OLDPPC:     defw    0
FLAGX:      defb    0
STRLEN:     defw    0
T_ADDR:     defw    0x0c8d
SEED:       defw    0
FRAMES:     defw    0       ; Updated once for every TV frame displayed.
COORDS:     defw    0
PR_CC:      defb    0xbc
S_POSN:     defb    0x21,0x18
CDFLAG:     defb    0x40
PRBUF:      defs    0x20
        defb    _NL
MEMBOT:     defs    0x1e
SPARE2:     defw    0

; Start of the BASIC area for user programs.

basic_0001: defb    0,1     ; 1 REM
        defw    basic_0010-basic_0001-4
        defb    _REM

; Start of user machine code program
mem_16514:
	ld hl,p_end;display_file2
	push hl
;cls
	ld c,25
c1:
	ld b,32
	ld (hl),$76:inc hl
c2:
	ld (hl),0:inc hl
	djnz c2
	dec c
	jr nz,c1

	pop hl
	push hl
	ld c,$0
ylp:
	ld (hl),$76
	inc hl
	ld b,32
xlp:
	ld (hl),c
	inc hl
	inc c

	bit 6,c
	jr nz,endp;ret nz
	djnz xlp
	jr ylp
endp:
	pop hl
	ld (D_FILE),hl
	jr $
display_file2:
 dup 25
 defb _NL
 edup


end
	display /d,end-begin
	savebin "prb.p",begin,end-begin

рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ ред

рдПрдХ рдЦрд╛рдореА: рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдЪрд▓рд╛ рд░реЗрдЦрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рдЦрд╛рд▓реА рд╣реИрдВред рдореИрдиреБрдЕрд▓ рдХреЛ рдкрдврд╝рдирд╛ рдПрдХ рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ:

NXTLIN:     defw    basic_0010 ;    

рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд░рд▓ рдЪрд╛рд▓ рдирд┐рдХрд▓рд╛: рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЖрд░рдпреВрдПрди рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЦреБрдж рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛: рдкрд╣рд▓реЗ рдореЙрдбрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдореЗрдВ рднрд░рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб" рдореЗрдВ рдерд╛, рдлрд┐рд░ рдХреЛрдб 00-63 рдХреЗ рд╕рд╛рде рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рднрд░рдирд╛ред

рдЫрд╡рд┐

рдкрд╣рд▓реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЧрд▓рддреА рдХреА рдФрд░ рдХреЛрдб 00-255 рдХреЗ рд╕рд╛рде рд╡рд░реНрдгреЛрдВ рдХреЛ рднрд░рдирд╛ рд▓рд┐рдЦрд╛, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢реЛрдз рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗрд░ рдХрд╛ рдХрд╛рдо рдерд╛ , рдЬреЛ рдирд┐рд░реНрдмрд╛рдз рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрд╡рдпрдВ рдПрдХ рдмрдбрд╝реА рдЙрдкрд▓рдмреНрдзрд┐ рд╣реИред

рдФрд░ рдкреНрд░рдЬрд╛рддрдВрддреНрд░ рд╕реЗ рдкрд╣рд▓реЗ, 1k рдирд╛рдорд╛рдВрдХрди рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдкрд░ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

ZX80 рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдЪрд░

рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдХреНрд░рдо рд╣реИред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдпрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ ред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдФрд░ рдбрд┐рдмрдЧрд░ рдореЗрдВ рджреЗрдЦрд╛:

рдЫрд╡рд┐

рдпрд╣рд╛рдВ рдереЛрдбрд╝реА рд╕реА рд╕реАрдорд╛ рд╣реИ - 1k рдореЗрдореЛрд░реА, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИред

рд╢рд╛рдпрдж рдХрд┐рд╕реА рджрд┐рди рд▓рд┐рдЦреВрдВрдЧрд╛ред

All Articles