wbc - wbc

Ответить
Аватара пользователя
AAA
Сообщения: 41030
Зарегистрирован: 08 июл 2016, 23:04
Откуда: Москва
Контактная информация:

wbc - wbc

Сообщение AAA »

Аватара пользователя
AAA
Сообщения: 41030
Зарегистрирован: 08 июл 2016, 23:04
Откуда: Москва
Контактная информация:

Re: wbc - Stardust

Сообщение AAA »

Код: Выделить всё

/ absolutely no ideas lol
// but here we go :D
//
// greets: nyuk.sq.pator.bfox.enfys.alexwinston.n1k-o.rook
// robat.a64.kuvo.totettmatt.ps (you def would like that :D).
// shatalspine.dart.adamych.frongy.natt.nihirash (we miss you!)
// and all at multimatograf2024 !

// --artemka o2.o5.2o25 at multimatograf 2025

// and of course this is powered by the almighty:
/*                |                     |    o
   ,---.,   ..   .|__/ ,---.,--.--.,---.|--- .,---.
   |   ||   ||   ||  \ |   ||  |  |,---||    ||
   `   '`---|`---'`   ``---'`  '  '`---^`---'``---'
        `---'              :.by..stardust..2025.:   */

; default org = $6000 (any address within $6000..$ff00 is fine)
; esc: toggle editor | f1: options | f5: recompile | f12: reset

sintab equ 0x8000

	org $6000

	ld ix, sintab
	call gen_sin

	// HOLE 100500
	// no grtz to ded
	// more grtz to diver!

	// SCREW BASIC VARIABLES!

	
	ld sp, 0xF000

	ld bc, 0
	ei
fl:
	halt
	ld de, 0x5800
	ld iyl, 32
	ld hl, sintab
yl:
	push bc
	ld  a, iyl
	and c
	and b
	jp nz, .nz
	xor a
	sub c
	ld  c, a
	ld  a, 1
	out (0xFE), a
	jp .aoa
.nz:
	push bc
	sra b
	sra b
	sra b
	sra b
	sra b
	and b
	out (0xFE), a
	pop bc
.aoa:
i = 0
	dup 32
		ld a, c
		ld l, a
		ld a, [hl]
		and iyl
		xor b
		and (0 << 0) | (7 << 3)
		//and (7 << 3)
		ld [de], a
		inc bc
		inc de
i = i+1
	edup
	pop bc
	dec iyl
	jp nz, yl
	inc b
	inc c
	
	bit 7, b
	jp  z, aaaa

; barrier
	push bc
	exx
	exa
	pop bc

	dup 11	
		call rnd16
		ld l, 0
		call hl_to_scr
		ld a, 0
		dup 32
		ld [hl], a
		out (0xFE), a
		inc l
		edup
	edup
	
	exx
	exa

	
	jp fl
	
aaaa:
; barrier
	push bc
	exx
	exa
	pop bc

	dup 7	
xs = 1
		call rnd16
		ld l, 0
		call hl_to_scr
		dup 32
		ld a, [hl]
		out (0xFE), a
		xor xs
		xor b
		ld [hl], a
		inc l
xs = (xs << 1) ^ (xs >> 1) ^ (xs >> 1)
		edup
	edup
	
	exx
	exa
	
	jp fl	

;----------------------------------------
; Snippets:
;  down_hl
;  up_hl
;  hl_to_scr
;  scr_to_attrs
;  set_point
;  rnd16
;  gen_sin
;----------------------------------------

;----------------------------------------
; Next screen line address in HL
;----------------------------------------
down_hl
	inc  h
	ld   a, h
	and  #07
	ret  nz
	ld   a, l
	sub  #e0
	ld   l, a
	sbc  a
	and  #f8
	add  h
	ld   h, a
	ret

;----------------------------------------
; Previous screen line address in HL
;----------------------------------------
up_hl
	dec  h
	ld   a, h
	cpl
	and  #07
	ret  nz
	ld   a, l
	sub  #20
	ld   l, a
	ret  c
	ld   a, h
	add  #08
	ld   h, a
	ret

;----------------------------------------
; in:  L = x [0..255]
;      H = y [0..191]
; out: HL = addr in screen [4000..57FF]
;      C = pixel number [0..7]
;----------------------------------------
hl_to_scr
	ld   c, l
	ld   a, l
	.3   rlca
	xor  h
	and  #c7
	xor  h
	.2   rlca
	ld   l, a
	ld   a, h
	and  #c0
	inc  a
	.3   rra
	xor  h
	and  #f8
	xor  h
	ld   h, a
	ld   a, c
	and  7
	ret

;----------------------------------------
; in:  HL = addr in screen [4000..57FF]
; out: HL = addr in attrs [5800..5AFF]
;----------------------------------------
scr_to_attrs
	ld   a, h
	.3   rrca
	and  #03
	or   #58
	ld   h, a
	ret

;----------------------------------------
; in:  L = x [0..255]
;      H = y [0..191]
;----------------------------------------
set_point
	call hl_to_scr
	ld   de, pixel_tbl
	add  e
	ld   e, a
	ld   a, (de)
	xor  (hl)
	ld   (hl), a
	ret

	align 8
pixel_tbl
	db #80,#40,#20,#10,#08,#04,#02,#01

;----------------------------------------
; in:  none
; out: HL = random 16bit value
;----------------------------------------
rnd16
.sd	equ  $+1
	ld   de, 0
	ld   a, d
	ld   h, e
	ld   l, 253
	or   a
	sbc  hl, de
	sbc  a, 0
	sbc  hl, de
	ld   d, 0
	sbc  a, d
	ld   e, a
	sbc  hl, de
	jr   nc, .st
	inc  hl
.st	ld  (.sd), hl
	ret

;----------------------------------------
; in:  IX = addr of 256b buffer
; out: generated sin table
;----------------------------------------
gen_sin
	ld   de, #7fbc
	ld   hl, #ff7f
.g0	ld   a, d
	xor  #80 ; uncomment for unsigned
	ld   (ix), a
	xor  #80 ; uncomment for unsigned
	rla
	sbc  a
	ld   b, a
	ld   c, d
	adc  hl, bc
	rr   c
	rrca
	rr   c
	add  hl, bc
	ld   b, h
	ld   a, l
	ex   de, hl
	sra  b: rra
	sra  b: rra
	sra  b: rra
	ld   c, a
	; or   a
	sbc  hl, bc
	ex   de, hl
	inc  ixl
	jr   nz, .g0
	ret
Аватара пользователя
AAA
Сообщения: 41030
Зарегистрирован: 08 июл 2016, 23:04
Откуда: Москва
Контактная информация:

Re: wbc - Stardust

Сообщение AAA »

Не пойму названия, автора и города... Вабще откуда это говно
Аватара пользователя
shiny
Сообщения: 10812
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Re: wbc - Stardust

Сообщение shiny »

wbc не выговариваемой концовкой - Артем Васильев из Омска.
Аватара пользователя
shiny
Сообщения: 10812
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Re: wbc - Stardust

Сообщение shiny »

Тот, кто запилил оболочку nyukomatic - полный мудак. Ассемблер никак не дружит с ужасмом. Я заебался код фиксить.
Аватара пользователя
AAA
Сообщения: 41030
Зарегистрирован: 08 июл 2016, 23:04
Откуда: Москва
Контактная информация:

Re: wbc - Stardust

Сообщение AAA »

https://events.retroscene.org/mf2025#top

Тут их ваще нет
Ответить