From: notsaying@nospicedham.127.0.0.1   
      
   On Sat, 27 Feb 2021 15:15:08 GMT, wolfgang kern   
    wrote:   
      
   > On 26.02.2021 12:34, Kerr-Mudd,John wrote:   
   > < Here's my hexdump:   
   >   
   > and here is what I see :) (thick glasses wont help)   
      
   in the following I've added labels above; and comment below sections   
      
   >   
   > 0100 B80100 |CD10 mode01 rare supported today   
   wide screen 40*25 for text tetris   
      
   > 0105 6800B8 |07 es = screen   
   > 0109 53 |1F ds = bx bx=0 ?   
   yup ; allows access to keystate at 0000:0x417   
      
   > 010b E440 |89C3 in[40] bx=ax   
   > 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   
   load shape from table   
      
   > 011e C1E304 SHL bx,4   
   random shape, colour (with hilight bit on)   
      
   > 0121 BFC4FF di=ffc4   
   start posn   
      
      
   > 0124 83C750 ADD di,50   
   > 0127 BD0400 bp=0400   
   nope; bp=0004   
   > 012a 91 swap ax,cx   
      
      
   mainloop:   
   > 012b 91 swap ax,cx   
   restore ax   
   > 012c 4D DEC bp   
   > 012d 74F5 JZ 0124   
    do 4 times   
      
   > 012f 60 pusha   
   > 0130 BED207 |89F7 si=07d2 di=si   
   >   
   > 0135 B90A00 |B208 cx=07d2 dl=08   
   no! cx=0A; line lth ; dl=8=hilite attribute bit set   
   >   
   > 013a 26AD es:LODSW   
   > 013c 20E2 AND dl,ah   
   test if full line (all 10 attributes high)   
   > 013e AB |E2 F9 STOSW LOOP 141+f9=013a   
   >   
   > 0141 AD |B8BA09 ?LODSW? ax= 09ba ;║ blue/blink/high   
   bright blue double vertical lines at edge   
   > 0145 AB |7410 STOSW JZ 0158   
   flag still valid from last AND   
      
   > 0148 83C750 ADD di,50   
   drop line   
   > 014b 2EFE06FF01 INC byte[cs:01ff]   
   up score   
      
   > 0150 60 PUSHA   
   > 0151 B402 |B207 |CD21 INT21_02/07   
   > 0157 61 POPA   
   beep   
   >   
   > 0158 83EF68 |83EE68 SUB si,68 SUB di 68   
   > 015e AB |AD STOSW LODSW   
   > 0160 73D3 JNC 162+d3= 0135   
   have printed screen   
      
   > 0162 2EA0FF01|D40A al=[cs:-1ff] AAM   
   > 0168 0D3030 |BF1800 OR ax,3030 di=1800   
   > 016e 268825 [es:di]=ah   
   > 0171 AF |AA SCASW STOSB   
   print score   
      
   > 0173 61 |89FE |53 POPA si=di inc bx   
   > 0177 A01704 |D0E8 al=[0417] SHR al,1   
   querykeys   
      
   > 017c 7301 |AF JNC 017f scasw   
   > 017f D0E8 |7302 SHR al,1 JNC 0175   
   > 0183 4F4F di-2   
   left-2, right+2   
      
   > 0185 D0E8 |7302 SHR al,1 JNC 017b   
   > 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   
   rotate shape   
      
   > 01a1 B008 |99 al=8 cwd   
   > 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 ???   
   10b; jnz newblock   
      
   sadly the jmp back is too far for a short jnz   
      
   >   
   > 01b9 b104 cl=4   
   delay count   
   >   
   > 01bb EC |A808 |75FB in ax,dx TEST al,08 JNZ 01bb   
   >   
   > 01c0 EC |A808 |75FB   
   > 01c5 E2F4 LOOP 01bb   
   > 01c7 91 |682B01 SWAP ax cx PUSH 0128   
   save ax, ret to mainloop later   
      
   test/putrtn:   
   > 01cb 60 B91000 PUSHA cx=0010   
   >   
   > 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]   
   test next line clear   
      
   > 01e3 81FF8007 |7202 CMP di,0780 JC 01eb   
   > 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]   
   test overwrite posn is clear   
      
   > 01f5 AF EBF4 SCASW JMP 1f8+f4= 01ec   
      
   data:   
   > 01f8 E2C6 LOOP 1fa+c6= 01c0   
   > 01fa 6C 4E INSB DEC si   
   > 01fc F066E800 LOCK BIG CALL ??? crash!   
   these last bytes are the tetris shape data!   
   (final byte is for the score)   
      
   --   
   Bah, and indeed, Humbug.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|