qlv


; vectored utilities
        nolist

QL_vbase equ    $00c0          ; vector base
qlv_jump equ    $4000          ; jump vector area
qlv.off  equ    qlv_jump-(ql_vbase*3) ; JMP is offset + 3 * ql vector

; Common heap management

mem.achp equ    $00c0          ; Allocate space in Common HeaP
mem.rchp equ    $00c2          ; Return space to Common HeaP

; Open Window utilities

opw.wind equ    $00c4          ; Open WINDow using name
opw.con  equ    $00c6          ; Open CONsole
opw.scr  equ    $00c8          ; Open SCReen

; Error handling utilities

ut.wersy equ    $00ca          ; Write an ERror to SYstem window
ut.werms equ    $00cc          ; Write an ERror MeSsage
ut.wint  equ    $00ce          ; Write an INTeger
ut.wtext equ    $00d0          ; Write TEXT

; General memory management

mem.llst equ    $00d2          ; Link into LiST
mem.rlst equ    $00d4          ; Remove from LiST

mem.alhp equ    $00d8          ; ALlocate in HeaP
mem.rehp equ    $00da          ; REturn to HeaP

; Queue handling utilities

ioq.setq equ    $00dc          ; SET up a Queue in standard form
ioq.test equ    $00de          ; TEST a queue for pending byte / space available
ioq.pbyt equ    $00e0          ; Put a BYTe into a queue
ioq.gbyt equ    $00e2          ; Get a BYTe out of a queue
ioq.seof equ    $00e4          ; Set EOF in queue

; string utilities

ut.cstr  equ    $00e6          ; Compare STRings
utc.drct equ      0              ; direct comparison
utc.ncas equ      1              ; no case significance
utc.nmbr equ      2              ; evaluating numbers
utc.ncnr equ      3              ; no case, numbers

; Standard serial IO

iou.ssq  equ    $00e8          ; Standard Serial Queue handling
iou.ssio equ    $00ea          ; Standard Serial IO

; Conversions

cv.datil equ    $00d6          ; DATE and time (6 words) to Integer Long
cv.ildat equ    $00ec          ; Integer (Long) to DAte and Time string
cv.ilday equ    $00ee          ; Integer (Long) to DAY string
cv.fpdec equ    $00f0          ; Floating Point to ascii DECimal
cv.iwdec equ    $00f2          ; integer (word) to ascii decimal
cv.ibbin equ    $00f4          ; integer (byte) to ascii binary
cv.iwbin equ    $00f6          ; integer (word) to ascii binary
cv.ilbin equ    $00f8          ; integer (long) to ascii binary
cv.ibhex equ    $00fa          ; integer (byte) to ascii hexadecimal
cv.iwhex equ    $00fc          ; integer (word) to ascii hexadecimal
cv.ilhex equ    $00fe          ; integer (long) to ascii hexadecimal
cv.decfp equ    $0100          ; decimal to floating point
cv.deciw equ    $0102          ; decimal to integer word
cv.binib equ    $0104          ; binary ascii to integer (byte)
cv.biniw equ    $0106          ; binary ascii to integer (word)
cv.binil equ    $0108          ; binary ascii to integer (long)
cv.hexib equ    $010a          ; hexadecimal ascii to integer (byte)
cv.hexiw equ    $010c          ; hexadecimal ascii to integer (word)
cv.hexil equ    $010e          ; hexadecimal ascii to integer (long)

; SuperBASIC interpreter

sb.inipr equ    $0110          ; INITialise PRocedure table
sb.gtint equ    $0112          ; GeT INTeger
sb.gtfp  equ    $0114          ; GeT Floating Point
sb.gtstr equ    $0116          ; GeT STRing
sb.gtlin equ    $0118          ; GeT Long INteger
qa.resri equ    $011a          ; REServe RI stack
sb.putp  equ    $0120          ; PUT Parameter

; Arithmetic

qa.op    equ    $011c          ; QL Arithmetic OPeration
qa.mop   equ    $011e          ; QL Arithmetic Multiple OPeration

qa.end   equ      $00          ; END of MOP
qa.zero  equ      $01          ; push 0.00e00
qa.nint  equ      $02          ; round fp to Nearest INTeger
qa.one   equ      $03          ; push 1.00e00
qa.int   equ      $04          ; truncate fp to INTeger
qa.pushn equ      $05          ; push n.00e00
qa.nlint equ      $06          ; round fp to Nearest Long INTeger
qa.float equ      $08          ; FLOAT integer
qa.fltli equ      $09          ; FLaT Long Integer
qa.add   equ      $0a          ; ADD
qa.sub   equ      $0c          ; SUBtract
qa.halve equ      $0d          ; HALVE
qa.mul   equ      $0e          ; MULtiply
qa.dble  equ      $0f          ; DouBLE
qa.div   equ      $10          ; DIVide
qa.recip equ      $11          ; RECIProcal
qa.abs   equ      $12          ; ABSolute value
qa.roll  equ      $13          ; ROLL NNOS to TOS, TOS to NOS, NOS to NNOS
qa.neg   equ      $14          ; NEGate
qa.over  equ      $15          ; duplicate NOS OVER TOS
qa.dup   equ      $16          ; DUPlicate TOS
qa.swap  equ      $17          ; SWAP TOS, NOS
qa.cos   equ      $18          ; COSine
qa.sin   equ      $1a          ; SINe
qa.tan   equ      $1c          ; TANgent
qa.cot   equ      $1e          ; COTangent
qa.asin  equ      $20          ; ArcSINe
qa.acos  equ      $22          ; ArcCOSine
qa.atan2 equ      $23          ; ArcTANgent x,y
qa.atan  equ      $24          ; ArcTANgent
qa.acot  equ      $26          ; ArcCOTangent
qa.sqrt  equ      $28          ; SQuare RooT
qa.sqare equ      $29          ; SQUARE
qa.ln    equ      $2a          ; Log (Natural)
qa.log10 equ      $2c          ; Log base 10
qa.exp   equ      $2e          ; Exponential
qa.pwrf  equ      $30          ; raise to PoWeR (Floating point)
qa.pi    equ      $32          ; push PI
qa.maxop equ      $32

qa.load  equ      $00          ; keys for load and store
qa.stor  equ      $01

iou.dnam equ    $0122          ; decode Device NAMe

; from now on add $4000 to all

md.read  equ    $0124          ; read a sector
md.write equ    $0126          ; write a sector
md.verif equ    $0128          ; verify a sector
md.rdhdr equ    $012a          ; read sector header

sb.parse equ    $012c          ; parse (a2) points to table
sb.graph equ    $012e          ; main syntax graph
sb.expgr equ    $0130          ; expression graph
sb.strip equ    $0132          ; strip spaces from tokenised line
sb.paerr equ    $0134          ; parser error
sb.ledit equ    $0136          ; edit line into pf (just line number deletes)
sb.expnd equ    $0138          ; expand / print line(s) (+$4004 A4 points to PF)
sb.paini equ    $013a          ; initialise parser

ql_vtop  equ    $013c          ; top of QL vectors
        list

Back to Index
HTML generated by the amazing asm2htm !
2006 Sep 30 16:54:07