diff game09/disasm09.game @ 68:ec9ef70bf6e4

add game09
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 05 Aug 2018 10:34:37 +0900
parents
children 6be44b5de445
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/game09/disasm09.game	Sun Aug 05 10:34:37 2018 +0900
@@ -0,0 +1,242 @@
+100  "ADDRESS=" A=?
+110  "TO     =" D=? @ !=900
+120  @=(A>D) #=-1
+900  / ??=A .=20 E=A !=1000
+910  $=$D .=5 B=0,5 ;=E+B>=A .=3 #=930
+920  ?$=E:B) " "
+930  @=B+1 .=30 B=0,5 ;=E+B>=A #=970
+950  ;=E:B)>" " $=E:B) #=970
+960  " "
+970  @=B+1
+990  ]
+1000  ;=(A:0)>$7F) #=1200
+1010  ;=(A:0)=$10) #=1400
+1020  ;=(A:0)=$11) #=1600
+1030  ;=(A:0)=$12)  "NOP" #=1800
+1040  ;=(A:0)=$13)  "SYNC" #=1800
+1050  ;=(A:0)=$16)  "LBRA" #=2000
+1060  ;=(A:0)=$17)  "LBSR" #=2000
+1070  ;=(A:0)=$19)  "DAA" #=1800
+1080  ;=(A:0)=$1A)  "ORCC" #=2200
+1090  ;=(A:0)=$1C)  "ANDCC" #=2400
+1100  ;=(A:0)=$1D)  "SEX" #=1800
+1110  ;=(A:0)=$1E)  "EXG" #=2600
+1120  ;=(A:0)=$1F)  "TFR" #=2600
+1130  ;=((A:0)/16)=1) #=3200
+1140  ;=((A:0)/16)=2) #=2800
+1150  ;=((A:0)/16)=3) #=3000
+1160  ;=(A:0)=$4E)  #=3200
+1170  ;=(A:0)=$5E)  #=3200
+1180  #=3400
+1200  ;=(A:0)=$8D)  "BSR" #=3600
+1210  ;=(%(A:0)/16)=3) #=3800
+1220  ;=(%(A:0)/16)=7) #=4000
+1230  ;=(%(A:0)/16)=13) #=4000
+1240  ;=(%(A:0)/16)=15) #=4000
+1250  ;=(%(A:0)/16)>11) #=4200
+1260  B=%(A:0)/16) !=4400
+1270  ;=(A:0)>$BF) #=4600
+1275  "A"
+1280  !=7200
+1290  ;=(B=0) #=7000
+1300  ;=(B=1) A=A+2 " $" ?$=A:-1) ]
+1310  ;=(B=2) #=4800
+1320  " $" A=A+3 ??=A(-1) ]
+1400  ;=(A:1)=$20) #=5000
+1410  ;=(A:1)=$3F) A=A+2  "SWI2" ]
+1420  ;=((A:1)/16)=2 A=A+1 #=5200
+1430  ;=(A:1)=$8F) #=5000
+1440  ;=(A:1)=$CF) #=5000
+1450  ;=(A:1)>$BF) #=5400
+1455  ;=(A:1)<$80) #=5000
+1460  !=7400
+1470  A=A+1
+1480  ;=(B=3)  "CMPD" #=1280
+1490  ;=(B=12)  "CMPY" #=1280
+1500  ;=(B=14)  "LDY" #=1280
+1510  ;=(B=15)  "STY" #=1280
+1520  #=5000
+1600  ;=(A:1)=$3F) A=A+2  "SWI3" ]
+1610  ;=(A:1)<$80) #=5000
+1620  ;=(A:1)>$BF) #=5000
+1630  A=A+1 !=7600
+1640  ;=(B=3)  "CMPU" #=1280
+1650  ;=(B=12)  "CMPS" #=1280
+1660   #=3200
+1800  A=A+1 ]
+2000  A=A+1 C=A+2+A(0)
+2010  " $" ??=C A=A+2 ]
+2200  B=A:1)
+2210  ;=(B>$7F) ",E" B=B-$80
+2220  ;=(B>$3F) ",F" B=B-$40
+2230  ;=(B>$1F) ",H" B=B-$20
+2240  ;=(B>$F) ",I" B=B-$10
+2250  ;=(B>7) ",N" B=B-8
+2260  ;=(B>3) ",Z" B=B-4
+2270  ;=(B>1) ",V" B=B-2
+2280  ;=(B>0) ",C"
+2290  A=A+2 ]
+2400  B=$FF-A:1) #=2210
+2600  .=1 B=A:1)/16 !=5600
+2610  "," !=7400 !=5600
+2620  A=A+2 ]
+2800   !=5800 B=A:1)
+2810  ;=(B>$7F) B=B+$FF00
+2820  B=B+A+2 " $" ??=B A=A+2 ]
+3000  
+3010  ;=A:0)=$3F "SYS" #=7030
+3020  ;=(A:0)=$3D) "MUL" #=1800
+3030  ;=(A:0)=$3C) "CWAI" #=2400
+3040  ;=(A:0)=$3B) "RTI" #=1800
+3050  ;=(A:0)=$3A) "ABX" #=1800
+3060  ;=(A:0)=$39) "RTS" #=1800
+3070  ;=(A:0)>$37) #=3200
+3080  ;=(A:0)<$34) #=6000
+3090  B=%(A:0)/2)
+3100  ;=(B=0) "PSH" #=3120
+3110  "PUL"
+3120  ;=(A:0)>$35) "U" #=3140
+3130  "S"
+3140  #=6200
+3200  A=A+1  "UNDF" #=1800
+3400  !=7600
+3410  ;=(B=0) "NEG" #=6400
+3420  ;=(B=3) "COM" #=6400
+3430  ;=(B=4) "LSR" #=6400
+3440  ;=(B=6) "ROR" #=6400
+3450  ;=(B=7) "ASR" #=6400
+3460  ;=(B=8) "ASL" #=6400
+3470  ;=(B=9) "ROL" #=6400
+3480  ;=(B=10) "DEC" #=6400
+3490  ;=(B=12) "INC" #=6400
+3500  ;=(B=13) "TST" #=6400
+3510  ;=(B=14) "JMP" #=6400
+3520  ;=(B=15) "CLR" #=6400
+3530  #=3200
+3600  B=A:1) #=2810
+3800  !=7200
+3810  ;=(A:0)>$BF) "ADDD" #=1280
+3820  "SUBD" #=1280
+4000  !=7200
+4010  ;=(B=0)  #=3200
+4020  #=1250
+4200  !=7600
+4210  ;=(A:0)>$BF)  #=6600
+4220  ;=(B=12)  "CMPX" #=1280
+4230  ;=(B=13)  "JSR" #=1280
+4240  ;=(B=14)  "LDX" #=1280
+4250   "STX" #=1280
+4400  
+4410  ;=(B=0) "SUB" ]
+4420  ;=(B=1) "CMP" ]
+4430  ;=(B=2) "SBC" ]
+4440  ;=(B=4) "AND" ]
+4450  ;=(B=5) "BIT" ]
+4460  ;=(B=6) "LD" ]
+4470  ;=(B=7) "ST" ]
+4480  ;=(B=8) "EOR" ]
+4490  ;=(B=9) "ADC" ]
+4500  ;=(B=10) "OR" ]
+4510  "ADD" ]
+4600  "B" #=1280
+4800  B=%(A:1)/32)
+4810  ;=(A:1)>$7F) #=6800
+4820  ;=(B>15) B=B+$FFE0
+4830  " " ?=B #=8000
+5000  A=A+2  "UNDF" ]
+5200   "L" !=5800
+5210  #=2000
+5400  !=7400
+5410  ;=(B=14)  "LDS" A=A+1 #=1280
+5420   "STS" A=A+1 #=1280
+5600  ;=(B=0) "D" ]
+5610  ;=(B=1) "X" ]
+5620  ;=(B=2) "Y" ]
+5630  ;=(B=3) "U" ]
+5640  ;=(B=4) "S" ]
+5650  ;=(B=5) "PC" ]
+5660  ;=(B=8) "A" ]
+5670  ;=(B=9) "B" ]
+5680  ;=(B=10) "CC" ]
+5690  "DPR" ]
+5800  "B" !=7600
+5810  ;=(B=0) "RA" ]
+5820  ;=(B=1) "RN" ]
+5830  ;=(B=2) "HI" ]
+5840  ;=(B=3) "LS" ]
+5850  ;=(B=4) "HS" ]
+5860  ;=(B=5) "LO" ]
+5870  ;=(B=6) "NE" ]
+5880  ;=(B=7) "EQ" ]
+5890  ;=(B=8) "VC" ]
+5900  ;=(B=9) "VS" ]
+5910  ;=(B=10) "PL" ]
+5920  ;=(B=11) "MI" ]
+5930  ;=(B=12) "GE" ]
+5940  ;=(B=13) "LT" ]
+5950  ;=(B=14) "GT" ]
+5960  "LE" ]
+6000  "LEA" !=7600
+6010  ;=(B=0) "X" #=4800
+6020  ;=(B=1) "Y" #=4800
+6030  ;=(B=2) "S" #=4800
+6040  "U" #=4800
+6200  B=A:1)
+6210  ;=(B>$7F) ",PC" B=B-$80
+6220  ;=(B>$3F) ",U" B=B-$40
+6230  ;=(B>$1F) ",Y" B=B-$20
+6240  ;=(B>15) ",X" B=B-16
+6250  ;=(B>7) "DPR" B=B-8
+6260  ;=(B>3) ",B" B=B-4
+6270  ;=(B>1) ",A" B=B-2
+6280  ;=(B>0) ",C"
+6290  A=A+2 ]
+6400  B=A:0)/16
+6410  ;=(B=4) "A" #=1800
+6420  ;=(B=5) "B" #=1800
+6430  ;=(B=0) B=1 #=1290
+6440  B=B-4 #=1290
+6600  ;=(B=12) "LDD" #=1280
+6610  ;=(B=13) "STD" #=1280
+6620  ;=(B=14) "LDU" #=1280
+6630  "STU" #=1280
+6800  ;=(B>15) #=8200
+6810  .=1 #=8400
+6820  ;=(B=12) A=A+3 ??=A(-1) ]
+6830  ;=(B=9) ?$=A:1) A=A+4 ??=A(-1) ]
+6840  ;=(B=13) ?$=A:1) A=A+4 ??=A(-1) ]
+6850  ?$=A:1) A=A+2 ]
+7000  !=7600
+7010  ;=(B=3) #=7800
+7020  ;=(B>11) #=7800
+7030  " # $" ?$=A:1)
+7040  ;=A:1)>" "*(A:1<$80) "=" $=A:1)
+7050  #=2620
+7200  B=%((A:0)/16)/4) ]
+7400  B=%(A:1)/16) ]
+7600  B=%(A:0)/16) ]
+7800  " # $" A=A+3 ??=A(-1) ]
+8000  B=%((A:1)/32)/4) "," A=A+2
+8010  ;=(B=0) "X" ]
+8020  ;=(B=1) "Y" ]
+8030  ;=(B=2) "U" ]
+8040  "S" ]
+8200  B=B-16
+8210  ;=((B=0)+(B=2)) #=5000
+8220  ;=(B=15) A=A+4 " [$" ??=A(-1) "]" ]
+8230  " [" !=8400 "]" ]
+8400  ;=(B=4) #=8000
+8410  ;=(B=0) !=8000 "+" ]
+8420  ;=(B=1) !=8000 "++" ]
+8430  ;=(B=2) !=8000 "-" ]
+8440  ;=(B=3) !=8000 "--" ]
+8450  ;=(B=8) "$" ??=A:2) !=8000 A=A+1 ]
+8460  ;=(B=9) "$" ??=A(1) !=8000 A=A+2 ]
+8470  ;=(B=6) "A" #=8000
+8480  ;=(B=5) "B" #=8000
+8490  ;=(B=11) "D" #=8000
+8500  ;=(B=12) B=A:2) A=A+3 #=8600
+8510  ;=(B=13) A=A+4 B=A(-1) #=8610
+8520  #=5000
+8600  ;=(B>$7F) B=B+$FF00
+8610  "$" ??=B+A ",PC" ]