ZXTape! 2 The Visual ProcessorGilsoft International Tim Gilberts1982EnglishUtilityNoneOriginal ReleaseTZXed by Graeme YeandleVIS PRO (#  7000X d4,1;" ";4,4-ac;ac;4,10 ;zf;4,15;cf;7,1;" ";7,5-ib;ib;10 ,1;" ";10 ,5-ob;ob: xl=(ad/2)+1:c=31-4*(ad/2=(ad/2)):l,c-3;" ";l,c-m(ad+1);m(ad+1): 8000@:8:8 Hcf=0:zf=0:pc=0:ac=0:ib=0:ob=0 PC>31PC=0 8in=m(pc+1):ic=(in/32 ):ad=in-32 *ic 1,1;" ";1,2-(pc>9 );pc;18,3;" ";18,3;ic;18,12 ;" ";18,13 -(ad>9 );ad;18,6;n$(ic+1) &200+ic*502:PC=PC+1 8#1;1,0;"C-Next ins M-menu" ="C"145 ="M"1000 165  HLT  pc=pc-1:  LSL  Qcf=0:ac=ac*2:ac>511cf=1:ac=ac-512:100d  100d ,  LSR  6Gcf=0:ta=(ac/2):(ac/2-ta)>.001wncf=1 @ac=ta:100d ^  JMP  hpc=ad-1:   ROL  `rv=m(ad+1):rv=rv*2:rcf=cf:cf=0:rv>511cf=1:rv=rv-512 !m(ad+1)=rv+rcf:120x   CMP  *zf=0:ac=m(ad+1)zf=1 *cf=0:ac";str:str<0str>31'"Illegal, Please retype"'':2030 ''"Enter 'end' as mnemonic for menu"'' #i$(3):23692\,-1  &0,3-str;(str);" ";i$ i$="END"1000 Gi$="OUT"i$="INA"i$="HLT"i$="LSR"i$="LSL"add=0:2080  U0,3-str;(str);" ";(i$);" ";add:add<0add>312070  ?k=116:n$(k)=i$rk=k:k=17:k:21004 */k:'i$;" is an illegal code word":2050 4*m(str+1)=32 *(rk-1)+add H[3-str;str;" ";i$;9 -(add>9 );add;10 ;" - code ";m(str+1) R+str=str+1:str=32 1000 \ 2050  Modify memory  :addr=-1 "Address (-1 menu) >";a$ &a$=""addr=addr+1:3040 addr=a$ 123692\,-1:addr=-11000 Iaddr<0addr>31addr;" is not a legal address.":3020 L(5-addr);addr;(9 -m(addr+1));m(addr+1);" - "; "Value >";v$ (v$=""val=m(addr+1):3080 val=v$ *val<-256val>5113060 val<0val=val+512 ,(15-val);val:m(addr+1)=val  3020  Disassemble  :23692\,-1 +21,0;"VISDIS Disassembler"'' 23692\,-1 R"Start >";str:str<0str>31'"Illegal, Please retype"'':4030 23692\,-1 N"End >";end:end31'"Illegal, Please retype"'':4050 !23692\,21:k=strend 7in=m(k+1):ic=(in/32 ):ad=in-32 *ic l4-k;k;8-in;in;" ";n$(ic+1);15-ad;(ad(ic>2ic7ic8)) k '" Any key for main menu." =""4120 " 1000 p Save & Load  z9"Save or Load ?";q$:q$="s"q$="S"6500d q$"l"q$"L"6010z ."LOAD - File name ?";f$:f$m():1000 d"SAVE - File name ?";f$ if$=""űf$>10 f$="VP" nFf$m():#1;" REWIND tape,Play to verify.":f$m():1000 X Initialise  l#m(32 ):n$(16,3) v*9510&%:k=116:n$(k):k  1000 @ Draw screen  J0:0:7: T@k=011 :6;0;" ":k ^Lk=13 20:4;0;k,0;" ":k hEk=020:5;0;k,20;" ":k r:21,0;" PROCESSOR MEMORY " |8:8 20,0;"";20;"" $" 0Program counter 00 " !"";20;"02 " $" 04 " $" 0Acc 0Z 0C 06 " $" 08 " #"";20;"10 " $" 0Input Buffer 12 " #"";20;"14 " #"";20;"16 " $" 0Output Buffer 18 " #"";20;"20 " 20;"22 " 20;"24 " $"Current Instruction 26 " $" 28 " &$" Opcode Address 30 " 0$" " :$" 0 0 Ad Content" N$" " l0;7;1;1,1;" ";4,1;" ";7,1;" ";10 ,1;" ";18,3;" ";18,6;" ";18,12 ;" " vhk=116:1;0;7;k,21;" ";k,24;" 0";k,28;" 0":k  Print Memory  k=031 _(k/2)+1,(31-4*(k/2=(k/2)))-m(k+1);m(k+1) k # #(@0:0:7::" Visual Processor - Please wait" #=a=0:b=16:c=240:d=255:e=31 #+aa="a":k=047/:n:aa+k,n:k #>k=06:"u"+k,0:k:"u"+7,255 $ 7000X %aa,a,a,a,e,b,b,b,a,a,a,a,d,a,a,a,a,a,a,a,c,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,c,a,a,a,b,b,b,b,e,a,a,a %&a"HLT","LSL","LSR","JMP","ROL","CMP","JNZ","INA","OUT","LDA","STA","ADD","NEG","SBC","ADC","JNC" '"":9998' '""VIS PRO"9000(#:9999' D