RiverSea その後 [ColdFire V2]
***HTML文書にGIFを埋め込んでみた***のその後。 やっとの思いで、ここまで、来たけど、完成させられるかどうか、わかりません。 誰か、仕上げて。
サーバプログラム Main
char *CgiFlag=0x20007f2e; main() { char *board=MemoryAlloc(64); char *cmd=MemoryAlloc(81); char row,col; char ch; int i; char done=0; while (!done) { for (i = 0;i < 80; i++) { ch = Getc(1); cmd[i] = ch; if (ch == 0) break; } cmd[i] = 0; switch(cmd[0]) { case 'B': setBoard(board, cmd+3); break; case 'R': row = Atoi(cmd+3); break; case 'C': col = Atoi(cmd+3); break; case 'b': putBoard(board); break; case 'p': putPiece(board, cmd+3); break; case 'X': done = 1; } *CgiFlag = 0; } MemoryFree(cmd); MemoryFree(board); } setBoard(char *b, char *c) { char *num_buf=MemoryAlloc(8); int x,y; long line; MemClear(num_buf,8); StrCpy(num_buf,"0x"); MemClear(b, 64); for (y = 0; y < 8; y++) { BufCopy(num_buf+2,c,4); c += 4; line = Atoi(num_buf); for (x = 8; --x >= 0; ) { b[y*8+x]=line & 3; line >>= 2; } } MemoryFree(num_buf); } putBoard(char *b) { int x,y; int line; for (y = 0; y < 8; y++) { line = 0; for (x = 0; x < 8; x++) { line <<= 2; line += b[y*8+x]; } PrHexWord(line); } } putPiece(char *b, char *c) { int index=Atoi(c); switch (b[index]) { case 1: PrStr("<img src=\"W.gif\"/>"); break; case 2: PrStr("<img src=\"B.gif\"/>"); break; default: PrStr(" "); break; } }
HTML文書プロトタイプ RiverSea.htm
<html><head> <title>RiverSea</title> <style> table.board {text-align:center;} table.board td {width:40px;height:40px;background:#0F0;} </style> </head><body> <h1 style="text-align:center;">RiverSea</h1> <form action="RiverSea.htm" style="text-align:center;"> <table cellpadding="10" style="margin:0 auto;"> <td> <table border="1" cellpadding="2" cellspacing="1" class="board"> <tr><th colspan="14"/></tr> <tr> <th rowspan="12"/><th/><th rowspan="12"/> <th>A</th><th>B</th><th>C</th><th>D</th> <th>E</th><th>F</th><th>G</th><th>H</th> <th rowspan="12"/> </tr> <tr><th/><th colspan="8"/></tr> <tr><th>1</th> <td>$EXEC'p("0") '</td> <td>$EXEC'p("1") '</td> <td>$EXEC'p("2") '</td> <td>$EXEC'p("3") '</td> <td>$EXEC'p("4") '</td> <td>$EXEC'p("5") '</td> <td>$EXEC'p("6") '</td> <td>$EXEC'p("7") '</td> </tr> <tr><th>2</th> <td>$EXEC'p("8") '</td> <td>$EXEC'p("9") '</td> <td>$EXEC'p("10") '</td> <td>$EXEC'p("11") '</td> <td>$EXEC'p("12") '</td> <td>$EXEC'p("13") '</td> <td>$EXEC'p("14") '</td> <td>$EXEC'p("15") '</td> </tr> <tr><th>3</th> <td>$EXEC'p("16") '</td> <td>$EXEC'p("17") '</td> <td>$EXEC'p("18") '</td> <td>$EXEC'p("19") '</td> <td>$EXEC'p("20") '</td> <td>$EXEC'p("21") '</td> <td>$EXEC'p("22") '</td> <td>$EXEC'p("23") '</td> </tr> <tr><th>4</th> <td>$EXEC'p("24") '</td> <td>$EXEC'p("25") '</td> <td>$EXEC'p("26") '</td> <td>$EXEC'p("27") '</td> <td>$EXEC'p("28") '</td> <td>$EXEC'p("29") '</td> <td>$EXEC'p("30") '</td> <td>$EXEC'p("31") '</td> </tr> <tr><th>5</th> <td>$EXEC'p("32") '</td> <td>$EXEC'p("33") '</td> <td>$EXEC'p("34") '</td> <td>$EXEC'p("35") '</td> <td>$EXEC'p("36") '</td> <td>$EXEC'p("37") '</td> <td>$EXEC'p("38") '</td> <td>$EXEC'p("39") '</td> </tr> <tr><th>6</th> <td>$EXEC'p("40") '</td> <td>$EXEC'p("41") '</td> <td>$EXEC'p("42") '</td> <td>$EXEC'p("43") '</td> <td>$EXEC'p("44") '</td> <td>$EXEC'p("45") '</td> <td>$EXEC'p("46") '</td> <td>$EXEC'p("47") '</td> </tr> <tr><th>7</th> <td>$EXEC'p("48") '</td> <td>$EXEC'p("49") '</td> <td>$EXEC'p("50") '</td> <td>$EXEC'p("51") '</td> <td>$EXEC'p("52") '</td> <td>$EXEC'p("53") '</td> <td>$EXEC'p("54") '</td> <td>$EXEC'p("55") '</td> </tr> <tr><th>8</th> <td>$EXEC'p("56") '</td> <td>$EXEC'p("57") '</td> <td>$EXEC'p("58") '</td> <td>$EXEC'p("59") '</td> <td>$EXEC'p("60") '</td> <td>$EXEC'p("61") '</td> <td>$EXEC'p("62") '</td> <td>$EXEC'p("63") '</td> </tr> <tr><th colspan="14"/></tr> </table> </td> <td> <p> <input type="text" name="EXEC'B'" value="$EXEC'b("00000000000001800240000000000000")'" /> </p> <table cellpadding="5" style="text-align:center;"> <tr><th style="text-align:left;" colspan="8">COLUMN:</th></tr> <tr> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>E</td> <td>F</td> <td>G</td> <td>H</td> </tr> <tr> <td><input type="radio" name="EXEC'C'" value="0" checked/></td> <td><input type="radio" name="EXEC'C'" value="1"/></td> <td><input type="radio" name="EXEC'C'" value="2"/></td> <td><input type="radio" name="EXEC'C'" value="3"/></td> <td><input type="radio" name="EXEC'C'" value="4"/></td> <td><input type="radio" name="EXEC'C'" value="5"/></td> <td><input type="radio" name="EXEC'C'" value="6"/></td> <td><input type="radio" name="EXEC'C'" value="7"/></td> </tr> <tr><th style="text-align:left;" colspan="8">ROW:</th></tr> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </tr> <tr> <td><input type="radio" name="EXEC'R'" value="0" checked/></td> <td><input type="radio" name="EXEC'R'" value="1"/></td> <td><input type="radio" name="EXEC'R'" value="2"/></td> <td><input type="radio" name="EXEC'R'" value="3"/></td> <td><input type="radio" name="EXEC'R'" value="4"/></td> <td><input type="radio" name="EXEC'R'" value="5"/></td> <td><input type="radio" name="EXEC'R'" value="6"/></td> <td><input type="radio" name="EXEC'R'" value="7"/></td> </tr> <tr><td colspan="9"><input type="submit" value="Decide"/></td></tr> <tr><td colspan="9"><a href="SetEnd.htm?EXEC%27X%27">EXIT</a></td></tr> </table> </td> </table> </form> </body></html>
呼び出し方
http://192.168.1.10/RiverSea.htm?EXEC%27B%27=00000000000001800240000000000000
コメント 0