how to make a program - BILLPC2684/VEXREX-emulator-love2D- GitHub Wiki

##Remember: REGS = A,B,C,D,E,F,G,H,SCW,SCH (SCW = SCreenWidth,SCH = SCeenHight) #Building a ROM using the CVT.py CVT.py is a program that alows you to draw custom functions that'll make the ROM for you, basicly all you need to know are the functions... ###functions --need to update this later :3

#Building the ROM Because the emulator don't read ROM(s) as binary(due to lua's dofile() function), so the file must start with: ROM = { and "opcodeName $1 $2"(replace the " "spaces with [tabs]) and end with with } if you wana add a DataDrive well just type drivename = "<filename.ext>" how long you want your drive to be, you will type fileLangth = <number>

###OPCODES

LOAD REGS number

$1 = number

INKY REGS REGS/number

$1 = keyboardPress($2)

CRLC REGS REGS

$1(x),$2(y) = cursorPos

CLIK REGS REGS

$1 = CursorPress($2)

CRPS REGS/number REGS/number

$1 = number

SRWX REGS

$1 = CursorWheelX

SRWY REGS

$1 = CursorWheelY

MOV REGS REGS

$1 = $2

SELB REGS --SELECT BYTES

tempREG = $1

SP8A REGS REGS --SEPARATE 1ST 8-BIT WORD

$1 = tempREG($2)[0-7]

SP8B REGS REGS --SEPARATE 2ND 8-BIT WORD

$1 = tempREG($2)[0-7]

SP16 REGS REGS --SEPARATE HOLE 16-BIT WORD

$1 = tempREG($2)[0-15]

REMB REGS REGS --REMOVE BYTE(WorkingInProgress)

del tempREG($1)[$2-&2+8]

SETB REGS REGS --SET END BYTE

$1 = $1[1-30] .. $2

AND REGS REGS/number

$1 = $1 & $2

OR REGS REGS/number

$1 = $1 | $2

XOR REGS REGS/number

$1 = $1 ^ $2

NOT REGS --INV is also known as NOT

$1 = !$1

ADD REGS REGS/number

$1 = $1 + $2

SUB REGS REGS/number

$1 = $1 - $2

DIV REGS REGS/number

$1 = $1 / $2

MUL REGS REGS/number

$1 = $1 * $2

PRNT REGS

print $1

JMP REGS/number

PC = $1

IF REG F number

PC = ((? F == number)*1 or (? F != number)*2)

HALT

returns "CPU HALTED!!!"

WRAM REGS/number REGS

RAM[$1] = $2

RRAM REGS REGS/number

$1 = RAM[$2]

CMP REGS REGS/number

F = ((? $1 < $2)*1 or (? $1 == $2)*2 or (? $1 > $2)*3)

RNG REGS REGS/number

$1 = RNG($1,$2)

RCOL REGS/number

R = $1

GCOL REGS/number

G = $1

BCOL REGS/number

B = $1

REAR REGS

$1 = screen[X][Y][R]

REAG REGS

$1 = screen[X][Y][G]

REAB REGS

$1 = screen[X][Y][B]

XPOS REGS/number

X = $1

YPOS REGS/number

Y = $1

PONT number(1/2)

POINT[number] = {X,Y}

PLOT

Plots a pixel at X,Y

LINE

Plot pixels at POINT[1] to POINT[2]

RECT

plot lines to make a rectangle from POINT[1] to POINT[2]

REND

renders the screen

WSAV REGS/number REGS/number

DataDrive[$1] = $2

RSAV REGS/number REGS

$2 = DataDrive[$1]

⚠️ **GitHub.com Fallback** ⚠️