Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
30
Task/Subleq/BASIC256/subleq.basic
Normal file
30
Task/Subleq/BASIC256/subleq.basic
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
dim memoria(255)
|
||||
contador = 0
|
||||
|
||||
input "SUBLEQ> ", codigo
|
||||
|
||||
while instr(codigo, " ")
|
||||
memoria[contador] = int(left(codigo, instr(codigo, " ") - 1))
|
||||
codigo = mid(codigo, instr(codigo, " ") + 1, length(codigo))
|
||||
contador += 1
|
||||
end while
|
||||
|
||||
memoria[contador] = int(codigo)
|
||||
contador = 0
|
||||
do
|
||||
a = memoria[contador]
|
||||
b = memoria[contador + 1]
|
||||
c = memoria[contador + 2]
|
||||
contador += 3
|
||||
if a = -1 then
|
||||
input "SUBLEQ> ", caracter
|
||||
memoria[b] = asc(caracter)
|
||||
else
|
||||
if b = -1 then
|
||||
print chr(memoria[a]);
|
||||
else
|
||||
memoria[b] -= memoria[a]
|
||||
if memoria[b] <= 0 then contador = c
|
||||
end if
|
||||
end if
|
||||
until contador < 0
|
||||
43
Task/Subleq/EasyLang/subleq.easy
Normal file
43
Task/Subleq/EasyLang/subleq.easy
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
global inpos inp$ .
|
||||
func inp .
|
||||
if inpos = 0
|
||||
inp$ = input
|
||||
if error = 1
|
||||
return 255
|
||||
.
|
||||
inpos = 1
|
||||
.
|
||||
if inpos <= len inp$
|
||||
h = strcode substr inp$ inpos 1
|
||||
inpos += 1
|
||||
return h
|
||||
.
|
||||
inpos = 0
|
||||
return 10
|
||||
.
|
||||
proc subleq . mem[] .
|
||||
repeat
|
||||
a = mem[p]
|
||||
b = mem[p + 1]
|
||||
c = mem[p + 2]
|
||||
p += 3
|
||||
if a = -1
|
||||
mem[b] = inp
|
||||
elif b = -1
|
||||
write strchar mem[a]
|
||||
else
|
||||
mem[b] -= mem[a]
|
||||
if mem[b] <= 0
|
||||
p = c
|
||||
.
|
||||
.
|
||||
until p < 0
|
||||
.
|
||||
.
|
||||
prog[] = [ 15 17 -1 17 -1 -1 16 1 -1 16 3 -1 15 15 0 0 -1 72 101 108 108 111 44 32 119 111 114 108 100 33 10 0 ]
|
||||
arrbase prog[] 0
|
||||
#
|
||||
subleq prog[]
|
||||
#
|
||||
input_data
|
||||
dummy data
|
||||
38
Task/Subleq/Gambas/subleq.gambas
Normal file
38
Task/Subleq/Gambas/subleq.gambas
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
Public memoria[255] As Integer
|
||||
|
||||
Public Sub Main()
|
||||
|
||||
Dim contador As Integer = 0
|
||||
Dim codigo As String, caracter As String
|
||||
|
||||
Print "SUBLEQ> ";
|
||||
Input codigo
|
||||
|
||||
While InStr(codigo, " ")
|
||||
memoria[contador] = Val(Left(codigo, InStr(codigo, " ") - 1))
|
||||
codigo = Mid(codigo, InStr(codigo, " ") + 1)
|
||||
contador += 1
|
||||
Wend
|
||||
|
||||
memoria[contador] = Val(codigo)
|
||||
contador = 0
|
||||
Do
|
||||
Dim a As Integer = memoria[contador]
|
||||
Dim b As Integer = memoria[contador + 1]
|
||||
Dim c As Integer = memoria[contador + 2]
|
||||
contador += 3
|
||||
If a = -1 Then
|
||||
Print "SUBLEQ> ";
|
||||
Input caracter
|
||||
memoria[b] = Asc(caracter)
|
||||
Else
|
||||
If b = -1 Then
|
||||
Print Chr(memoria[a]);
|
||||
Else
|
||||
memoria[b] -= memoria[a]
|
||||
If memoria[b] <= 0 Then contador = c
|
||||
End If
|
||||
End If
|
||||
Loop Until contador < 0
|
||||
|
||||
End
|
||||
38
Task/Subleq/SETL/subleq.setl
Normal file
38
Task/Subleq/SETL/subleq.setl
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
program subleq;
|
||||
if command_line(1) = om then
|
||||
print("error: no file given");
|
||||
stop;
|
||||
end if;
|
||||
|
||||
mem := readprog(command_line(1));
|
||||
|
||||
loop init ip := 0; while ip >= 0 do
|
||||
a := mem(ip) ? 0;
|
||||
b := mem(ip+1) ? 0;
|
||||
c := mem(ip+2) ? 0;
|
||||
ip +:= 3;
|
||||
if a = -1 then
|
||||
mem(b) := ichar (getchar ? "\0");
|
||||
elseif b = -1 then
|
||||
putchar(char ((mem(a) ? 0) mod 256));
|
||||
elseif (mem(b) +:= -(mem(a) ? 0)) <= 0 then
|
||||
ip := c;
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
proc readprog(fname);
|
||||
if (f := open(fname, "r")) = om then
|
||||
print("error: cannot open file");
|
||||
stop;
|
||||
end if;
|
||||
|
||||
mem := {};
|
||||
mp := 0;
|
||||
loop doing getb(f, n); while n/=om do
|
||||
mem(mp) := n;
|
||||
mp +:= 1;
|
||||
end loop;
|
||||
close(f);
|
||||
return mem;
|
||||
end proc;
|
||||
end program;
|
||||
29
Task/Subleq/Yabasic/subleq.basic
Normal file
29
Task/Subleq/Yabasic/subleq.basic
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
dim memoria(255)
|
||||
contador = 0
|
||||
input "SUBLEQ> " codigo$
|
||||
while instr(codigo$, " ")
|
||||
memoria(contador) = val(left$(codigo$, instr(codigo$, " ") - 1))
|
||||
codigo$ = mid$(codigo$,instr(codigo$," ")+1,len(codigo$))
|
||||
contador = contador + 1
|
||||
wend
|
||||
|
||||
memoria(contador) = val(codigo$)
|
||||
contador = 0
|
||||
repeat
|
||||
a = memoria(contador)
|
||||
b = memoria(contador+ 1)
|
||||
c = memoria(contador+ 2)
|
||||
contador = contador + 3
|
||||
if a = -1 then
|
||||
input "SUBLEQ> " caracter$
|
||||
memoria(b) = asc(caracter$)
|
||||
else
|
||||
if b = -1 then
|
||||
print chr$(memoria(a));
|
||||
else
|
||||
memoria(b) = memoria(b) - memoria(a)
|
||||
if memoria(b) <= 0 contador = c
|
||||
fi
|
||||
fi
|
||||
until contador < 0
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue