A pong (the 1st computer video game?) in <255 bytes;
I'll give the hexcode 1st to see if there's any takers. Needs DOS.
On 26.02.2021 12:34, Kerr-Mudd,John wrote:
< Here's my hexdump:
and here is what I see :) (thick glasses wont help)
0100 B80100 |CD10 mode01 rare supported todaywide screen 40*25 for text tetris
0105 6800B8 |07 es = screenyup ; allows access to keystate at 0000:0x417
0109 53 |1F ds = bx bx=0 ?
010b E440 |89C3 in[40] bx=axload shape from table
010f 83E307 |74f7 AND ax,07 JZ 114+f7=010b
0114 B401 ah=1
0116 C1E003 SHL ax,3
0119 2E8A9FF701 bl=cs:01f7+bx
011e C1E304 SHL bx,4random shape, colour (with hilight bit on)
0121 BFC4FF di=ffc4start posn
0124 83C750 ADD di,50nope; bp=0004
0127 BD0400 bp=0400
012a 91 swap ax,cx
012b 91 swap ax,cxrestore ax
012c 4D DEC bpdo 4 times
012d 74F5 JZ 0124
012f 60 pushano! cx=0A; line lth ; dl=8=hilite attribute bit set
0130 BED207 |89F7 si=07d2 di=si
0135 B90A00 |B208 cx=07d2 dl=08
013a 26AD es:LODSWtest if full line (all 10 attributes high)
013c 20E2 AND dl,ah
013e AB |E2 F9 STOSW LOOP 141+f9=013abright blue double vertical lines at edge
0141 AD |B8BA09 ?LODSW? ax= 09ba ;║ blue/blink/high
0145 AB |7410 STOSW JZ 0158flag still valid from last AND
0148 83C750 ADD di,50drop line
014b 2EFE06FF01 INC byte[cs:01ff]up score
0150 60 PUSHAbeep
0151 B402 |B207 |CD21 INT21_02/07
0157 61 POPA
0158 83EF68 |83EE68 SUB si,68 SUB di 68; have printed screen
015e AB |AD STOSW LODSW
0160 73D3 JNC 162+d3= 0135
0162 2EA0FF01|D40A al=[cs:-1ff] AAMprint score
0168 0D3030 |BF1800 OR ax,3030 di=1800
016e 268825 [es:di]=ah
0171 AF |AA SCASW STOSB
0173 61 |89FE |53 POPA si=di inc bxquerykeys
0177 A01704 |D0E8 al=[0417] SHR al,1
017c 7301 |AF JNC 017f scaswleft-2, right+2
017f D0E8 |7302 SHR al,1 JNC 0175
0183 4F4F di-2
0185 D0E8 |7302 SHR al,1 JNC 017brotate shape
0189 CD20 ;end
018b D0E8 |7312 SHR al,1 JNC 18f+12=01a1
018f B110 |BA1111 cl=10 dx=1111
0194 C1C304 ROL bx,4
0197 D1D2 |7302 RLC dx,1 JNC 019f
019b D1CB |E2F5 ROR bx,1 LOOP f5+19f=0194
019f 89D3 bx=dx
01a1 B008 |99 al=8 cwd; 10b; jnz newblock
01a4 E82400 |7404 CALL 01cB
01a9 5B |89F7 POP bx di=si
01ac 52 POP dx
01ad 5A |BADA03 PUSH dx dx=03da
01b1 E81700 |7403 CALL 01cd JZ 01b9
01b6 E942ff JMP 1b9+ff42= 00fb ???
01b9 b104 cl=4delay count
01bb EC |A808 |75FB in ax,dx TEST al,08 JNZ 01bbsave ax, ret to mainloop later
01c0 EC |A808 |75FB
01c5 E2F4 LOOP 01bb
01c7 91 |682B01 SWAP ax cx PUSH 0128
01cb 60 B91000 PUSHA cx=0010test next line clear
01cf F6C103 7503 TEST cl,3 JNZ 01d7
01d4 83C748 ADD di,48
01d7 D1C3 |731A ROL bx,1 JNC 1db+1a=01f5
01db 08D2 |7413 OR dl,dl JZ 1df+13=01f2
01df 260A7550 OR dh,[es:di+50]
01e3 81FF8007 |7202 CMP di,0780 JC 01ebtest overwrite posn is clear
01e9 08C6 OR dh,al
01eb AB STOSW
91ec E2E1 LOOP 1ee+e1=01cf
01ee 84C6 61 C3 TEST dh,al POPA RET
01f2 260A35 OR dh,[es:di]
01f5 AF EBF4 SCASW JMP 1f8+f4= 01ec
01f8 E2C6 LOOP 1fa+c6= 01c0these last bytes are the tetris shape data!
01fa 6C 4E INSB DEC si
01fc F066E800 LOCK BIG CALL ??? crash!
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 293 |
Nodes: | 16 (2 / 14) |
Uptime: | 225:23:41 |
Calls: | 6,623 |
Calls today: | 5 |
Files: | 12,171 |
Messages: | 5,318,600 |