R.T.Russell Home Page

BBC BASIC for SDL 2.0

Table of Contents



  1. Introduction and Overview
    1. Introduction to BBC BASIC
    2. Overview
    3. Minimum system requirements
    4. Specification
    5. Example programs
      1. GAMES
      2. GENERAL
      3. GRAPHICS
      4. PHYSICS
      5. SOUNDS
      6. TOOLS
    6. Notices

  2. Integrated Development Environment
    1. Introduction to the IDE
    2. The title bar
    3. The menu bar
    4. The toolbar
    5. The status bar
      1. Character encoding
      2. Program length
      3. Cursor position
      4. Insert/Overtype
    6. File menu
      1. New
      2. Load
      3. Save
      4. Save As
      5. Insert
      6. Compare
      7. Page Setup
      8. Print
      9. Recent files
      10. Exit
    7. Edit menu
      1. Undo
      2. Redo
      3. Cut
      4. Copy
      5. Paste
      6. Delete
      7. Select All
      8. Find
      9. Find Next
      10. Replace
      11. Go To
    8. Utilities menu
      1. Renumber
      2. Compile
        1. Application
        2. Crunch
        3. Embedded files
        4. Test
        5. Create Application
        6. Compiler directives
      3. List FNs/PROCs
      4. Include ONs
      5. Include Labels
      6. Sort List
      7. Add-in Utilities
    9. Options menu
      1. Syntax Colouring
      2. Lowercase Keywords
      3. Indentation
      4. Unicode
      5. Set Font
      6. Set Printer Font
      7. Set Colours
      8. Dark Mode
    10. Run menu
      1. Run
      2. Debug
        1. The List Variables window
      3. Profile
      4. Stop
      5. Pause
      6. Step Into
      7. Step Over
      8. Run To Cursor
      9. Immediate Mode
      10. Toggle Breakpoint
      11. Clear Breakpoints
    11. Help menu
      1. Help Topics
      2. Tutorial
      3. Email
      4. Website
      5. Discussion Group
      6. Forum
      7. Wiki
      8. About BBC BASIC
    12. The editing pane
      1. Keyboard commands
      2. Mouse commands
      3. Context Menu
      4. Scroll bars

  3. General Information
    1. Line numbers
    2. Statement separators
    3. Line continuation
    4. Expression priority
      1. Order of evaluation
      2. Examples
    5. Array arithmetic
    6. Initialising arrays
    7. Variables
      1. Variable names
        1. Naming conventions
      2. Variable types
        1. Static variables
        2. Integer numeric variables
        3. 64-bit integer numeric variables
        4. Byte numeric variables
        5. Variant numeric variables
        6. 64-bit ('double') floating-point variables
        7. String variables
        8. Arrays
        9. Pseudo-variables
        10. System variables
        11. The @cmd$ variable
        12. The @dir$ and @lib$ variables
        13. The @tmp$ and @usr$ variables
        14. VDU variables
      3. Creation of variables
    8. Structures
      1. Structure members
      2. Declaring a structure
      3. Arrays of structures
      4. Structure prototypes
      5. Passing structures to procedures and functions
      6. LOCAL and PRIVATE structures
      7. Returning structures from procedures and functions
      8. Using structures with the Windows and SDL 2.0 APIs
      9. User-defined data types
      10. Finding the size of a structure
      11. Copying a structure
      12. Assigning a pointer to a structure
    9. Program flow control
      1. Introduction
      2. Program structure limitations
      3. Leaving program loops
        1. REPEAT ... UNTIL loops
        2. Changing the loop variable
        3. Using the EXIT statement
        4. Moving the loop into a procedure
      4. Local arrays
    10. Indirection
      1. Introduction
      2. The ? operator
        1. Query as a byte variable
      3. The ! operator
      4. The ] operator
      5. The | operator
      6. The $ operator
      7. The $$ operator
      8. Use as binary (dyadic) operators
      9. Power of indirection operators
      10. The ^ operator
    11. Operators and special symbols
    12. Keywords
    13. Debugging
    14. Error handling
      1. Default error handling
      2. Reasons for trapping errors
        1. To make your program more 'friendly'
        2. To ensure the error message is visible
        3. To allow clearup operations to take place
        4. To allow execution to continue
      3. Error trapping commands
        1. ON ERROR or ON ERROR LOCAL?
      4. Error reporting
      5. Error trapping examples
    15. Procedures and functions
      1. Introduction
      2. Names
      3. Function and procedure definitions
        1. Starting a definition
        2. The function/procedure body
        3. Ending a definition
        4. Single line functions/procedures
      4. Extending the language
      5. Passing parameters
        1. Formal and actual parameters
      6. Local variables
        1. Recursive functions/procedures
      7. Passing arrays to functions and procedures
      8. Passing parameters by reference
      9. Returning arrays from procedures and functions
      10. Indirect procedure and function calls
      11. Passing procedures and functions as parameters
    16. Input editing
    17. Copy key editing
      1. The copy key
      2. The backspace key
    18. Hardcopy output to a printer
    19. Labelling program lines
    20. Multilingual (Unicode) text output

  4. Graphics and Colours
    1. Introduction to graphics
    2. Display modes
      1. Available modes
    3. Colours
      1. The Palette
        1. Two colour modes: 0, 4 and 32
        2. Four colour modes: 1, 5 and 33
        3. Sixteen colour modes: 2, 3, 6 and 8-31
        4. Logical colours
        5. Physical colours
        6. The physical palette
        7. 6-bit RGB colours
        8. 8-bit RGB colours
      2. Text colours
      3. Graphics colours
    4. Drawing on the screen
      1. Introduction
        1. Screen dimensions
        2. The graphics viewport
      2. Drawing a line
      3. Moving the graphics cursor
      4. Plotting modes
        1. Basic line drawing modes
        2. Enhanced line drawing modes
        3. Plot a single point
        4. Horizontal line fill to non-background
        5. Triangle plot and fill
        6. Horizontal line fill to background right
        7. Rectangle plot and fill
        8. Horizontal line fill to foreground
        9. Parallelogram plot and fill
        10. Horizontal line fill to non-foreground right
        11. Flood fill to non-background
        12. Flood fill to foreground
        13. Draw circle
        14. Draw solid disc
        15. Draw circular arc
        16. Draw solid segment
        17. Draw solid sector
        18. Move rectangular block
        19. Copy rectangular block
        20. Swap rectangular block
        21. Draw outline ellipse
        22. Draw solid ellipse
      5. Draw relative
      6. Logical inverse colour
      7. Reading a pixel's colour
    5. Text and graphics viewports
      1. Introduction
      2. Text viewport
        1. Define text viewport
        2. Clear text viewport
      3. Graphics viewport
        1. Define graphics viewport
        2. Clear graphics viewport
        3. Changing the graphics origin
      4. Positioning the cursor
    6. Writing text to the screen
      1. Text positioning
        1. Text at text cursor
        2. Text at graphics cursor
      2. Changing the font
      3. Selecting the character set
      4. Current character
      5. Character dot pattern
    7. Capturing the screen contents
    8. Pixel-perfect graphics
      1. General considerations
      2. Straight lines
      3. Outline shapes
      4. Solid (filled) shapes
      5. Plotting single points
    9. Compatibility limitations
      1. Compatibility summary

  5. Keywords
    1. Introduction to keywords
      1. Syntax
      2. Symbols
    2. ABS
    3. ACS
    4. ADVAL
      1. ADVAL positive argument
      2. ADVAL zero argument
      3. ADVAL negative argument
    5. AND
    6. ASC
    7. ASN
    8. ATN
    9. BGET#
    10. BPUT#
    11. BY
    12. CALL
      1. Operating system interface
      2. Parameter table
      3. Parameter formats
      4. Running BASIC code in a separate file
    13. CASE
    14. CHAIN
    15. CHR$
    16. CIRCLE
    17. CLEAR
    18. CLOSE#
    19. CLG
    20. CLS
    21. COLOUR
    22. COS
    23. COUNT
    24. DATA
    25. DEF
    26. DEG
    27. DIM
      1. Dimensioning arrays
      2. Declaring structures
      3. Reserving an area of memory
      4. Reserving a temporary area of memory
      5. DIM as a function
    28. DIV
    29. DRAW
    30. ELLIPSE
    31. ELSE
    32. END
    33. ENDCASE
    34. ENDIF
    35. ENDPROC
    36. ENDWHILE
    37. ENVELOPE
    38. EOF#
    39. EOR
    40. ERL
    41. ERR
    42. ERROR
    43. EVAL
    44. EXIT
    45. EXP
    46. EXT#
    47. FALSE
    48. FILL
    49. FN
    50. FOR
    51. GCOL
    52. GET/GET$
      1. Reading the keyboard
      2. Reading the screen
      3. Reading from a file
    53. GOSUB
    54. GOTO
    55. HIMEM
    56. IF
      1. Single-line IF statement
      2. Multi-line IF statement
    57. INKEY/INKEY$
      1. INKEY positive or zero argument
      2. INKEY negative argument
    58. INPUT
    59. INPUT LINE
    60. INPUT#
    61. INSTALL
    62. INSTR
    63. INT
    64. LEFT$
    65. LEN
    66. LET
    67. LINE
    68. LN
    69. LOCAL
      1. LOCAL DATA
    70. LOG
    71. LOMEM
    72. MID$
    73. MOD
    74. MODE
    75. MOUSE
      1. MOUSE ON n
      2. MOUSE OFF
      3. MOUSE TO x,y
      4. MOUSE RECTANGLE l,b,w,h
    76. MOVE
    77. NEXT
    78. NOT
    79. OF
    80. OFF
    81. ON
      1. Enabling the text cursor
    82. ON CLOSE
    83. ON ERROR
    84. ON ERROR LOCAL
    85. ON MOUSE
    86. ON MOVE
    87. ON SYS
    88. ON TIME
      1. Changing the timer period
      2. Creating additional timers
      3. Notes on the use of interrupts
    89. OPENIN
    90. OPENOUT
    91. OPENUP
    92. OPT
    93. OR
    94. ORIGIN
    95. OSCLI
    96. OTHERWISE
    97. PAGE
    98. PI
    99. PLOT
    100. POINT
    101. POS
    102. PRINT
      1. Print format control
        1. The @% system variable
        2. STR$ format control
        3. Format selection
        4. Number of digits
        5. Zone width
        6. Changing the Print Control Variable
      2. Examples
    103. PRINT#
    104. PRIVATE
    105. PROC
    106. PTR
    107. QUIT
    108. RAD
    109. READ
    110. READ#
    111. RECTANGLE
    112. REM
    113. REPEAT
    114. REPORT/REPORT$
    115. RESTORE
      1. RESTORE DATA
      2. RESTORE ERROR
      3. RESTORE LOCAL
    116. RETURN
    117. RIGHT$
    118. RND
    119. RUN
    120. SGN
    121. SIN
    122. SOUND
      1. Channel/Effects
      2. Amplitude/Envelope
      3. Pitch
      4. Duration
      5. Examples
    123. SPC
    124. SQR
    125. STEP
    126. STOP
    127. STR$
    128. STRING$
    129. SUM
      1. SUMLEN
    130. SWAP
    131. SYS
    132. TAB
    133. TAN
    134. THEN
    135. TIME
    136. TIME$
    137. TINT
    138. TO
    139. TOP
    140. TRACE
    141. TRUE
    142. UNTIL
    143. USR
    144. VAL
    145. VDU
    146. VPOS
    147. WAIT
    148. WHEN
    149. WHILE
    150. WIDTH

  6. VDU Emulation
    1. Introduction to VDU commands
    2. VDU code summary
    3. VDU 0
    4. VDU 1
    5. VDU 2
    6. VDU 3
    7. VDU 4
    8. VDU 5
    9. VDU 6
    10. VDU 7
    11. VDU 8
    12. VDU 9
    13. VDU 10
    14. VDU 11
    15. VDU 12
    16. VDU 13
    17. VDU 14
    18. VDU 15
    19. VDU 16
    20. VDU 17
    21. VDU 18
    22. VDU 19
    23. VDU 20
    24. VDU 21
    25. VDU 22
    26. VDU 23
      1. User-defined characters
      2. Text cursor control
      3. Scrolling the window
      4. Cursor movement control
      5. MODE 7 extensions
      6. User-defined modes
      7. Line thickness
    27. VDU 24
    28. VDU 25
    29. VDU 26
    30. VDU 27
    31. VDU 28
    32. VDU 29
    33. VDU 30
    34. VDU 31
    35. VDU 127

  7. Operating System interface
    1. Introduction to star commands
      1. File specifiers
      2. Accessing star commands
      3. Similarly named star commands
      4. Errors in star commands
    2. Star command summary
    3. *BYE
    4. *CHDIR (*CD)
    5. *COPY
    6. *DELETE (*DEL)
    7. *DIR
    8. *DISPLAY
    9. *DUMP
    10. *EGA
    11. *ERASE (*ERA)
    12. *ESC
    13. *EXEC
    14. *FLOAT
    15. *FONT
    16. *FX
    17. *GSAVE
    18. *HARDCOPY
    19. *HELP
    20. *HEX
    21. *INPUT
    22. *KEY
    23. *LIST
    24. *LOAD
    25. *LOCK
    26. *LOWERCASE
    27. *MARGINS
    28. *MKDIR (*MD)
    29. *MDISPLAY
    30. *NOEGA
    31. *OSK
    32. *OUTPUT (*OPT)
    33. *PLAY
    34. *PRINTER
    35. *PRINTERFONT
    36. *QUIT
    37. *REFRESH
    38. *RENAME (*REN)
    39. *RMDIR (*RD)
    40. *RUN
    41. *SAVE
    42. *SCREENSAVE
    43. *SPOOL
    44. *SPOOLON
    45. *STEREO
    46. *SYS
    47. *TEMPO
    48. *TIMER
    49. *TV
    50. *TYPE
    51. *UNLOCK
    52. *VOICE
    53. *|
    54. Additional OS Interfaces
      1. Read current character
      2. Read character dot pattern
      3. Read teletext character dot pattern
      4. Write teletext character dot pattern
    55. Assembler access to OS routines

  8. Files
    1. Introduction to files
    2. The structure of files
      1. File basics
      2. Serial (sequential) files
      3. Random access files
      4. Indexed files
    3. Files in BBC BASIC
      1. Introduction
      2. How data is read/written
      3. How data is stored
        1. Numeric data
        2. How strings are stored
      4. How files are referred to
    4. BBC BASIC file access
      1. File buffering
      2. Networking - shared files
    5. File commands
      1. Introduction
      2. Filenames
      3. Data files
        1. Introduction
        2. Opening files
        3. File opening functions
    6. Serial files
      1. Character data files
        1. Writing serial character data
        2. Reading serial character data
        3. Appending to character data files
      2. Mixed numeric/character data files
        1. Writing a mixed data file
        2. Reading a mixed data file
        3. Appending to mixed data files
      3. Compatible data files
        1. Writing a compatible data file
        2. Reading a compatible data file
    7. Random (relative) files
      1. Designing the file
        1. Record structure
        2. Accessing the records
      2. Simple random access file
      3. Simple random access database
      4. Random access inventory program
    8. Indexed data files
      1. Deficiencies of random access files
      2. The address book program
        1. File organisation
        2. Program organisation
        3. The index
      3. Indexed database example
    9. The Binary Chop

  9. The Assembler
    1. Introduction to the assembler
      1. Assembler statements
      2. Labels
      3. Comments
    2. Differences from Intel syntax
      1. Jumps, calls and returns
      2. Memory operands
      3. String operations
      4. Segment override
      5. Data size ambiguities
      6. Loop instructions
      7. Based-indexed operands
      8. Indexed memory operands
      9. Floating-point operands
    3. Numeric and string constants
      1. Define byte - DB
        1. Byte constant
        2. String constant
      2. Define word - DW
      3. Define double-word - DD
    4. Opcodes
    5. Floating-point opcodes
    6. MMX opcodes
    7. Using BASIC input/output
    8. Calling the Windows or SDL 2.0 API
    9. Reserving memory
      1. The program counter
      2. Using DIM to reserve memory
      3. Efficient cache usage
      4. Length of reserved memory
    10. The assembly process
      1. Assembly at a different address
      2. OPT summary
      3. How the assembler works
    11. Conditional assembly and macros
      1. Introduction
      2. Conditional assembly
      3. Macros

  10. Reference information
    1. Table of ASCII codes
    2. Mathematical functions
    3. Keyword tokens

  11. Error Messages and Codes
    1. Editor and compiler errors
      1. Cannot allocate clipboard memory
      2. Cannot allocate virtual memory
      3. Cannot allocate memory for file
      4. Cannot append program
      5. Cannot create character map
      6. Cannot create file
      7. Cannot create palette
      8. Cannot create screen bitmap
      9. Cannot create temporary buffer
      10. Cannot crunch file
      11. Cannot determine encoding
      12. Cannot embed file
      13. Cannot find BBCTUTOR.CHM
      14. Cannot find BBCWIN.CHM
      15. Cannot find icon in file
      16. Cannot find manifest
      17. Cannot open clipboard
      18. Cannot open file
      19. Cannot open icon file
      20. Cannot open temporary file
      21. Cannot print program
      22. Cannot process resource in file
      23. Cannot read file
      24. Cannot read icon file
      25. Cannot read icon image from file
      26. Cannot run Sign Tool
      27. Cannot update resources in file
      28. Cannot write file
      29. Cannot write icon
      30. Crunch failed: assembler syntax error
      31. Crunch failed: bad variable name
      32. Crunch failed: calculated line number
      33. Crunch failed: invalid fast variable
      34. Crunch failed: invalid keep variable
      35. Crunch failed: missing \
      36. Crunch failed: mismatched quotes
      37. Crunch failed: statement not at start of line
      38. Directory was changed
      39. File is not a valid resource file
      40. HTML Help not installed
      41. Insufficient memory
      42. Insufficient memory to crunch file
      43. Insufficient memory to crunch program
      44. Invalid file format
      45. Line too long
      46. Line too long - truncated!
      47. Not enough room for file
      48. Program is too big for allocated memory
      49. Sign Tool failed or aborted
      50. Too many files selected
    2. Run-time errors
      1. Trappable errors - BASIC
      2. Trappable errors - OS
      3. Untrappable errors
    3. Access denied
    4. Accuracy lost
    5. Address out of range
    6. Bad call
    7. Bad command
    8. Bad DIM statement
    9. Bad directory
    10. Bad device
    11. Bad FOR variable
    12. Bad hex or binary
    13. Bad key
    14. Bad library
    15. Bad MODE
    16. Bad MOUSE variable
    17. Bad name
    18. Bad program
    19. Bad string
    20. Bad subscript
    21. Bad use of array
    22. Bad use of structure
    23. Can't match FOR
    24. DATA not LOCAL
    25. Device fault
    26. Device unavailable
    27. DIM space
    28. Disk fault
    29. Disk full
    30. Disk read only
    31. Division by zero
    32. Escape
    33. Exponent range
    34. File exists
    35. File or path not found
    36. Incorrect arguments
    37. Invalid channel
    38. Jump out of range
    39. Logarithm range
    40. Missing ,
    41. Missing "
    42. Missing )
    43. Missing #
    44. Missing \
    45. Missing ENDCASE
    46. Missing ENDIF
    47. Missing OF
    48. Missing TO
    49. Mistake
    50. Multiple label
    51. Negative root
    52. No coprocessor
    53. No room
    54. No such FN/PROC
    55. No such font
    56. No such line
    57. No such printer
    58. No such system call
    59. No such variable
    60. Not in a FN or PROC
    61. Not in a FOR loop
    62. Not in a function
    63. Not in a procedure
    64. Not in a REPEAT loop
    65. Not in a subroutine
    66. Not in a WHILE loop
    67. Number too big
    68. OF not last
    69. ON ERROR not LOCAL
    70. ON range
    71. ON syntax
    72. Out of DATA
    73. Size mismatch
    74. Size needed
    75. STEP cannot be zero
    76. String too long
    77. Syntax error
    78. Too many open files
    79. Type mismatch
    80. Unknown error
    81. WHEN/OTHERWISE not first

  12. Format of Data in Memory
    1. Memory map
    2. Memory management
      1. Reducing stack usage
      2. Limiting the number of variables
    3. Program storage in memory
      1. Line length
      2. Line number
      3. Statements
      4. Line terminator
    4. Variable storage in memory
      1. Integer variable storage
      2. Byte variable storage
      3. Variant numeric storage (80 bit)
      4. Floating-point numeric storage (64 bit)
      5. Variant numeric storage (40 bit)
      6. String variable storage
      7. Structure storage
      8. Fixed strings
      9. Array storage

  13. Accessing the SDL 2.0 API
    1. Introduction to the SDL 2.0 API
    2. Changing the window title
    3. Finding the display size
    4. Displaying a message box
    5. Playing WAV files
    6. Timing program execution
    7. Pausing a program
    8. Discovering an 'unknown error'
    9. Repositioning the window
    10. Fixing the window size
    11. Minimising or maximising the window
    12. Bringing the window to the front
    13. Removing the title bar
    14. Using the entire screen
    15. Using the clipboard
    16. Loading or saving part of a file
    17. Changing the thread priority
    18. Checking for input focus
    19. Downloading files from the internet

  14. Library Routines
    1. Introduction to libraries
    2. Array and matrix functions
      1. PROC_add
      2. PROC_mul
      3. PROC_sum
      4. PROC_dot
      5. PROC_transpose
      6. PROC_invert
      7. FN_mod
      8. FN_det
    3. Dialogue boxes and controls
      1. FN_newdialog
      2. PROC_button
      3. PROC_checkbox
      4. PROC_radiobutton
      5. PROC_groupbox
      6. PROC_textbox
      7. PROC_static
      8. PROC_listbox
      9. PROC_combobox
      10. PROC_trackbar
      11. FN_showdialog and FN_showdialogex
      12. FN_polldialog
      13. Monitoring dialogue box changes
      14. Updating the contents of a dialogue box
        1. Updating the text (or image) associated with a control
        2. Updating the contents of a list box or combo box
        3. Updating the state of a checkbox or radiobutton
        4. Disabling and enabling dialogue box items
        5. Hiding and showing dialogue box items
      15. Reading the contents of a dialogue box
      16. Determining when a button is clicked
      17. PROC_closedialog
      18. FN_setproc
    4. Formatting and conversion
      1. FNusing(format$,value)
      2. FNlower(string$)
      3. FNupper(string$)
    5. Calendar functions
      1. FN_mjd
      2. FN_day
      3. FN_month
      4. FN_year
      5. FN_dow
      6. FN_dim
      7. FN_today
      8. FN_date$
      9. FN_readdate
    6. 3D graphics
      1. FN_initgl
      2. FN_load3d
        1. Vertex description
      3. FN_loadtexture
      4. PROC_release
      5. FN_f4
      6. PROC_render
    7. Plotting angled ellipses
      1. PROCellipse(x,y,a,b,angle)
      2. PROCellipsefill(x,y,a,b,angle)
    8. Sorting data arrays
      1. FN_sortinit(dir%,smode%)
    9. Socket (network) connections
      1. PROC_initsockets
      2. PROC_exitsockets
      3. FN_gethostname
      4. FN_tcplisten
      5. FN_tcpconnect
      6. FN_check_connection
      7. FN_writesocket
      8. FN_writelinesocket
      9. FN_readsocket
      10. FN_readlinesocket
      11. FN_getpeername
      12. PROC_closesocket
      13. FN_socketerror$
      14. FN_check_connectionM
      15. FN_sethost
      16. FN_setport
      17. FN_udpsocket
      18. FN_sendtosocket
      19. FN_recvfromsocket
    10. Antialiased graphics
      1. PROC_aaline
      2. PROC_aapolyline
      3. PROC_aabezier
      4. PROC_aapolybezier
      5. PROC_aafillbezier
      6. PROC_aaarc
      7. PROC_aasector
      8. PROC_aapolygon
      9. PROC_aaellipse
      10. PROC_aaellipsefill
    11. String manipulation
      1. FN_lower
      2. FN_upper
      3. FN_title
      4. FN_binary
      5. FN_tobase
      6. FN_findreplace
      7. FN_findreplacei
      8. FN_instrr
      9. FN_instri
      10. FN_instrri
      11. FN_trim
      12. FN_split
      13. FN_join
    12. Multiple output windows
      1. PROC_multiwin
      2. FN_createwin
      3. PROC_selectwin
      4. PROC_closewin
    13. No-wait function replacements
      1. FNget and FNget$
      2. FNinkey(t%) and FNinkey$(t%)
      3. PROCwait
      4. PROCsound
      5. FNinput
    14. High speed timers
      1. FN_ontimer
      2. PROC_killtimer
    15. Parsing XML files
      1. PROC_initXML
      2. FN_isTag
      3. FN_nextToken
      4. FN_getLevel
      5. FN_skipTo
      6. FN_skipToRet
      7. PROC_exitXML
      8. FN_repEnt
    16. Extending the 32-bit x86 assembler
      1. FN_asmext
      2. FN_cpuid
    17. More assembler extensions
    18. 2D image plotting, scaling and rotating
      1. PROC_imgInit
      2. PROC_imgExit
      3. FN_imgLoad
      4. FN_imgLoadAnimatedGIF
      5. FN_imgFrame
      6. PROC_imgMult
      7. PROC_imgPlot
      8. PROC_imgSize
    19. UTF-8 string functions
    20. Serialised synchronous events
      1. PROC_eventinit
      2. PROC_eventregister(WM_xxxx, PROChandler())
      3. PROC_eventpoll
    21. Multi-line text editor control
      1. PROC_editbox
      2. PROC_seteditboxarray
      3. PROC_seteditboxchanged
      4. PROC_seteditboxselect
      5. PROC_seteditboxscroll
      6. PROC_editboxedit
      7. FN_geteditboxlinecount
      8. FN_iseditboxchanged
      9. PROC_geteditboxselect
      10. PROC_geteditboxscroll
      11. FN_editboxcanundo
      12. FN_editboxcanredo
      13. FN_getselectedtext
    22. File selector dialogue
      1. FN_filedlg and FN_filedlgex
    23. Drop-down and popup menus
      1. PROC_setmenupalette
      2. FN_createmenubar
      3. PROC_addmenu
      4. PROC_drawmenubar
      5. FN_pollmenu
      6. FN_openmenu
    24. MODE 7 alternative character sets
      1. PROC_saa5050
      2. PROC_saa5051
      3. PROC_saa5052
      4. PROC_saa5053
      5. PROC_saa5054
      6. PROC_saa5055
      7. PROC_saa5056
      8. PROC_saa5057
      9. PROC_saa5059
      10. PROC_saa505x
    25. High performance 2D graphics for games

  15. MODE 7 - Teletext
    1. Introduction to MODE 7
    2. Implementation
    3. Character set (MODE 7)
    4. Control codes
      1. Control codes summary
    5. Coloured text (MODE 7)
    6. Background colour (MODE 7)
    7. Block graphics
      1. Blast-through text
      2. Separated graphics
      3. Held graphics
    8. Flashing
    9. Double height
    10. Reveal/conceal

  16. Hints and Tips
    1. Using windows larger than 2048 x 2048 pixels
    2. Passing floats to assembler code or DLLs
    3. Precautions when using LOCAL arrays
    4. Using DATA in installed modules
    5. Re-entrant ON MOVE interrupts
    6. Cunning use of the CASE statement

Left HOME

INTRODUCTION Right


Best viewed with Any Browser Valid HTML 3.2!
© Richard Russell