From RoadsideThoughts ...
A Bit of Vectrex History
 
Introduction
Programmer's
Guide
 
The RUM
 
Mine Storm
Fortress of
Narzod
 
Dark Tower
   
Sitemap
     
 

Vectrex Programmer's Guide

RUM Routines (Alphabetical)



  A     B     C     D     E     F     G     H     I     j     k     L     m     N     O     P     q     R     S     T     u     v     W     X     Y     Z  


NOTE: To be more consistent with how I code (and making them easier to remember), I renamed some of the RUM routines that I used in my games (via EQUs). If I don't show a different label, then I used the same label as defined by the RUM.



RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
ABSVAL $F584 ABSAB Form absolute value for 'A' & 'B' registers
AOK $F58B ABSB Form absolute value for 'B' register
AXE $F92E EXPLOD Complex explosion sound effect


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
BAGAUX $F67F BLKMV1 Xfer bytes source to destination buffer
BITE $F57E DECBIT Decode bit position


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
CLR256 $F545 --- Set-up to clear 256 bytes
CLRMEM $F542 CLREX Clear 256 bytes starting at $C800
CLRSON $F53F BCLR Clear 'B' bytes
COMPAS $F593 CMPASS Return angle for given delta 'Y:X'
COSGET $F5D9 COSINE Calculate the cosine of 'A'


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
DANROT $F610 DROT 'DIFFY' style rotate
DASHE $F433 DSHDF1 Draw dashed lines from 'DIFFY' list
DASHEL $F434 DSHDF Draw dashed lines from 'DIFFY' list
DASHY $F437 DASHDF Draw dashed lines from 'DIFFY' list
DASHY3 $F46E DASHPK Draw dashed lines from 'PACKET' list
DEFLOK $F2E6 --- Overcome scan collapse circuitry
DEKR $F55E DECTMR Decrement interval timers
DEKR3 $F55A D3TMR Decrement interval timers
DEL $F57A --- Programmed delays
DEL13 $F57D --- Programmed delays
DEL20 $F579 --- Programmed delays
DEL28 $F575 --- Programmed delays
DEL33 $F571 --- Programmed delays
DEL38 $F56D --- Programmed delays
DIFDOT $F2D5 --- Draw dots according to 'DIFFY' format
DIFFAB $F3DF --- Draw from 'DIFFY' style list
DIFFAX $F3CE --- Draw from 'DIFFY' style list
DIFFX $F3D8 ($F3D6) TDIFFY Draw from 'DIFFY' style list
DIFFY $F3DD --- Draw from 'DIFFY' style list
DIFLST $F3D6 ($F3DA) --- Draw from 'DIFFY' style list
DIFROT $F616 ADROT 'DIFFY' style rotate
DIFTIM $F3D2 --- Draw from 'DIFFY' style list
DIFTLS $F3DA ($F3D8) LDIFFY Draw from 'DIFFY' style list
DISROT $F613 BDROT 'DIFFY' style rotate
DOT $F2C ($F2C5) --- Turn on beam for dot
DOTAB $F2C3 --- Draw one dot from the contents of 'A' & 'B'
DOTPAK $F2DE DOTPCK Draw dots according to 'PACKET' format
DOTTIM $F2BE --- Draw one dot from 'DIFFY' style list
DOTX $F2C1 --- Draw one dot from 'DIFFY' style list
DPIO $F1AA --- Set direct register
DPRAM $F1AF --- Set direct register
DUFFAB $F3BE --- Draw from 'DUFFY' style list
DUFFAX $F3AD --- Draw from 'DUFFY' style list
DUFFX ($F3B5) --- Draw from 'DUFFY' style list
DUFFY $F3BC --- Draw from 'DUFFY' style list
DUFLST $F3B5 ($F3B9) --- Draw from 'DUFFY' style list
DUFTIM $F3B1 --- Draw from 'DUFFY' style list
DUFTLS $F3B1 ($F3B7) --- Draw from 'DUFFY' style list


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
ENPUT $F1B4 DBNCE Read controller buttones


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
FILL $F552 BLKFIL Set a block of memory
(FINDBOX) $F8FF BXTEST Symmetric collison test
FRAM20 $F192 FRWAIT Wait for frame boundary


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
GILL $F548 CLRBLK Clear a block of memory


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
HIGHSCR $F8D8 HISCR Calculate high score and save for logo


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
INITALL $F18B INTALL Full Vectrex initialization
INITMSC $F164 INTMSC Initialize misc. parameters
INITPIA $F14C INTPIA Initialize PIA
INITPSG $F272 INTPSG Initialize sound generator
INPUT $F1BA --- Read controller buttones
INT1Q $F29D --- Set beam intensity
INT3Q $F2A5 --- Set beam intensity
INTENS $F2AB --- Set beam intensity
INTMAX $F2A9 --- Set beam intensity
INTMID $F2A1 INT2Q Set beam intensity
IREQ $F533 INTREQ Initialize the 'REQZ' area


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
LOUDIN $F9CA SETAMP Complex explosion sound effect


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
NEGSOM $F550 CLR80 Set a block of memory to $80
NIBBY $FF9F --- Complex explosion sound effect


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
OFF1BOX $F8E5 OFF1BX Symmetric collison test
OFF2BOX $F8F3 OFF2BX Symmetric collison test
OPTION $F7A9 SELOPT Fetch game options


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
PAC1X $F408 PACK1X Draw from 'PACKET' style list
PAC2X $F404 PACK2X Draw from 'PACKET' style list
PACB $F40E TPACK Draw from 'PACKET' list
PACKET $F410 --- Draw from 'PACKET' list
PACXX $F40C LPACK Draw from 'PACKET' style list
PANG $F1F8 JOYBIT Read joystick
PBANG4 $F1F5 JOYSTK Read joystick
POSDRAS $F37A MSSPOS Display raster message
POSIT1 $F30C --- Position relative vector
POSIT2 $F308 --- Position relative vector
POSITB $F30E --- Position relative vector
POSITD $F2FC --- Position relative vector
POSITN $F312 --- Position relative vector
POSITX $F310 --- Position relative vector
POSNRAS $F378 RSTPOS Display raster message
POSWID $F2F2 --- Position relative vector
POTATA $F61F PROT 'PACKET' style rotate
POTATE $F622 APROT 'PACKET' style rotate
POTS4 $F1F5 --- 'PACKET' style rotate
POWER $F000 PWRUP Power-up handler
PSG $F259 WRPSG Write to PSG
PSGLPU $F284 PSGMIR Send sound string to PSG
PSGLUP $F27D PSGLST Send sound string to PSG
PSGX $F256 WRREG Write to PSG


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
RAND3 $F511 --- Calculate new random number
RANDOM $F517 --- Calculate new random number
RASCII ($F49B) --- Display raster string
RASTER $F498 MRASTR Display raster string
RASTUR $F495 RASTER Display raster string
RATOR ($F5FF) --- Rotate a single line
RATOT $F5FF LROT90 Rotate a single line
RCOS $F663 LCSINE Multiply 'LEG' by previous cosine value
RCOSA $F661 MCSINE Multiply 'A' by previous cosine value
REPLAY $F687 --- Set 'REQX' for given tune
REQOUT $F289 --- Send 'REQX' to PSG and mirror
ROTAR $F603 ALNROT Rotate a single line
ROTOR $F601 LNROT Rotate a single line
RSIN $F65D LSINE Multiply 'LEG' by previous sine value
RSINA $F65B MSINE Multiply 'A' by previous sine value


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
SADD $F87C SCRADD Add contents of 'B' to indicated score
SADD2 $F880 STKADD Add stack to indicated score
SCLR $F84F --- Clear indicated score
SHADD $F85E BYTADD Add contents of 'A' to indicated score
SHIPSAT $F391 SHIPX Display markers (count remaining)
SHIPSHO $F393 DSHIP Display markers (count remaining)
SINCOS $F5EF --- Calculate the sine and cosine of 'ANGLE'
SINGET $F5DB SINE Calculate the sine of 'A'
SIZPRAS $F373 RSTSIZ Display raster message
SOPLAY $F690 ASPLAY Set 'REQX' for given tune
SPLAY $F68D --- Set 'REQX' for given tune
STAR20 $F1A2 --- ---
STFAUX $F683 BLKMOV Xfer bytes source to destination buffer


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
TEXPOS $F38C TXTPOS Display raster message
TEXSIZ $F385 TXTSIZ Display raster message


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
WARM ($F004) --- ---
WINNER $F8C7 --- Determine highest score


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
XPLAY $F742 --- Set 'REQX' for given tune


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
YOPLAY $F692 TPLAY Set 'REQX' for given tune


RUM
Subroutine
Entry
Point
Label Used By
Mine Storm
 

Function  
 
ZEGO $F34F ZEGO Zero integrators and set active ground
ZEREF $F35B ZEREF Zero integrators and set active ground
ZERO.DP $F34A ZERO.DP Zero integrators and set active ground
ZERO. $F36B ZERO Zero integrators and set active ground
ZEROIT $F354 ZEROIT Zero integrators and set active ground


 
 
 
 
 
 

Home
Page
Sitemap Privacy
Statement
Terms
of Use
Feedback

 
 

Please keep in mind that we can not guarantee the accuracy or timeliness of the information on this website, so use with care. We encourage you to double-check the information that is critical to you.

If you've found an error or have additional information that you would like to share, please don't hesitate to write. Click here to contact us.

Copyright 2016
All Rights Reserved
This page was last modified: 12 Jan 2017
By John Hall