R.T.Russell Home Page

BBC BASIC for Windows

Table of Contents



  1. Introduction and Overview
    1. Introduction to BBC BASIC
    2. Overview
    3. Running BBC BASIC
    4. Minimum system requirements
    5. Specification
    6. Example programs
      1. FILING
      2. GAMES
      3. GENERAL
      4. GRAPHICS
      5. PHYSICS
      6. SOUNDS
      7. TOOLS
      8. WINDOWS
    7. Differences from BBC BASIC (86)
    8. Version 6 changes
      1. BASIC interpreter
      2. Operating System interface
      3. Compiler
      4. Program editor and IDE
      5. Compatibility considerations
    9. Notices

  2. Command and Editing Window
    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
      5. Caps Lock
      6. Num Lock
      7. Scroll Lock
    6. File menu
      1. New
      2. Load
      3. Save
      4. Save As
      5. Chain
      6. Insert
      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. Trace
      2. List Variables
      3. Renumber
      4. Compile
        1. Executable
        2. Appearance
        3. Crunch
        4. Embedded files
        5. Compiler directives
      5. Add-in Utilities
    9. Options menu
      1. Syntax Colouring
      2. Lowercase Keywords
      3. Indentation
      4. Unicode
      5. Toolbar
      6. Status Bar
      7. Set Font
      8. Set Printer Font
      9. Set Colours
      10. Customize
    10. Run menu
      1. Run
      2. Debug
      3. Stop
      4. Pause
      5. Step
      6. Step Line
      7. Run To Cursor
      8. Immediate Mode
    11. Help menu
      1. Help Topics
      2. Tutorial
      3. Email
      4. Website
      5. Discussion Group
      6. Message Board
      7. Facebook Page
      8. Wiki
      9. About BBC BASIC
    12. The editing pane
      1. Keyboard commands
      2. Mouse commands
      3. Drag and Drop
      4. Context Menu
      5. Scroll bars
    13. Registry settings

  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

  1. 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

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

  3. 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

  4. 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

  5. Accessing the Windows API
    1. Introduction to the Windows API
    2. Changing the window title
    3. Flashing the title bar
    4. Finding the display size
    5. Displaying a message box
    6. Updating the screen
    7. Producing a warning sound
    8. Playing WAV files
    9. Checking for a sound card
    10. Timing program execution
    11. Pausing a program
    12. Reading the command line
      1. Reading a NUL-terminated string
    13. Finding the filename
    14. Discovering an 'unknown error'
    15. Repositioning the window
    16. Fixing the window size
    17. Minimising or maximising the window
    18. Forcing the window to stay on top
    19. Removing the title bar
    20. Using the entire screen
    21. Drawing graphics to a printer
    22. Printing coloured text
    23. Printing in landscape format
    24. Adding a menu bar
    25. Adding popup and sub-menus
    26. Ticking a menu item
    27. Disabling a menu item
    28. Deleting and inserting menu items
    29. Creating a toolbar
    30. Creating a status bar
    31. Using the clipboard
    32. Using dialogue boxes
      1. File Open and File Save
      2. Choose Colour
      3. Choose Font
      4. Browse for Folder
      5. Print dialogue
      6. Print Setup dialogue
      7. Page Setup dialogue
    33. Using system colours
    34. Loading or saving part of a file
    35. Aligning proportional-spaced text
    36. Displaying enhanced metafiles
    37. Using multimedia timers
    38. Changing the process priority
    39. Using scroll bars
      1. Creating a scroll bar
      2. Initialising the scroll bar
      3. Processing scroll commands
      4. Scrolling the display
    40. Displaying GIF and JPEG images
    41. Listing the disk directory
    42. Opening a document file
    43. Discovering the Windows version
    44. Finding special folders
    45. Finding the current font name
    46. Distributing the BBCWIN font
    47. Checking for input focus
    48. Displaying icon files
    49. Putting an icon in the SysTray
    50. Using the system registry
    51. Creating a screen saver
    52. Drawing angled text
    53. Downloading files from the internet

  6. Serial and Parallel I/O
    1. Serial input/output
    2. Opening a serial port
    3. Writing to a serial port
    4. Reading from a serial port
    5. Closing a serial port
    6. Transferring files from a BBC Micro
      1. Preparation
      2. Transferring the files
      3. Converting data files
    7. Parallel input/output
    8. Direct port input/output
      1. Input/output using InpOut32
      2. Assembly language I/O
    9. Modem control input/output
      1. Modem control output
      2. Modem status input

  7. 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. Toolbars and status bars
      1. FN_createstatusbar
      2. FN_createstatusbarex
      3. PROC_removestatusbar
      4. FN_createtoolbar
      5. FN_createtoolbarex
      6. PROC_removetoolbar
      7. FN_custombutton
      8. PROC_addtooltips
    4. Dialogue boxes
      1. FN_newdialog
      2. PROC_pushbutton
      3. PROC_checkbox
      4. PROC_radiobutton
      5. PROC_groupbox
      6. PROC_editbox
      7. PROC_static
      8. PROC_listbox
      9. PROC_combobox
      10. PROC_dlgitem
      11. PROC_dlgctrl
        1. Adding an up-down control
        2. Adding a trackbar
        3. Adding a progress bar
      12. PROC_showdialog
        1. Initialising the contents of a dialogue box
        2. Disabling and enabling dialogue box items
        3. Reading the contents of a dialogue box
        4. Determining when a button is clicked
      13. PROC_closedialog
    5. Trackbars and progress bars
      1. FN_createfloatingtoolbar
      2. PROC_showfloatingtoolbar
      3. PROC_removefloatingtoolbar
      4. FN_custombuttons
      5. FN_createtrackbar
      6. PROC_showtrackbar
      7. FN_trackbarpos
      8. PROC_removetrackbar
      9. FN_createprogressbar
      10. PROC_showprogressbar
      11. PROC_stepprogressbar
      12. PROC_removeprogressbar
    6. Property sheets and wizards
      1. FN_newpropsheet
      2. PROC_showpropsheet
        1. Initialising the contents of a property sheet
        2. Determining when a property sheet button is pressed
        3. Monitoring property sheet page changes
        4. Reading the contents of a property sheet
      3. PROC_closepropsheet
    7. Boxes and buttons
      1. FN_button
      2. FN_combobox
      3. FN_editbox
      4. FN_listbox
      5. FN_staticbox
      6. FN_createwindow
      7. PROC_closewindow
      8. PROC_setfocus
      9. FN_setproc
    8. Sprites
      1. FN_initsprites
      2. FN_createsprite
      3. FN_createspritefrombmp
      4. PROC_movesprite
      5. PROC_updatesprite
      6. PROC_exitsprites
    9. Formatting and conversion
      1. FNusing(format$,value)
      2. FNlower(string$)
      3. FNupper(string$)
    10. Multiple Document Interface
      1. PROC_initmdi
      2. PROC_exitmdi
      3. FN_createmdichild
      4. FN_hdc
      5. PROC_closemdichild
      6. PROC_tile
      7. PROC_cascade
    11. 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
    12. Direct3D graphics
      1. FN_initd3d
      2. FN_load3d
        1. Vertex description
      3. FN_loadtexture
      4. PROC_release
      5. FN_f4
      6. PROC_render
    13. Plotting angled ellipses
      1. PROCellipse(x,y,a,b,angle)
      2. PROCellipsefill(x,y,a,b,angle)
    14. Sorting data arrays
      1. FN_sortinit(dir%,smode%)
    15. 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
    16. Antialiased graphics
      1. PROC_gdipinit
      2. PROC_gdipexit
      3. FN_gdipcreatepen
      4. FN_gdipcreatebrush
      5. PROC_gdipdeletepen
      6. PROC_gdipdeletebrush
      7. PROC_gdipline
      8. PROC_gdippolyline
      9. PROC_gdipbezier
      10. PROC_gdippolybezier
      11. PROC_gdipfillbezier
      12. PROC_gdiparc
      13. PROC_gdipsector
      14. PROC_gdippolygon
      15. PROC_gdipellipse
      16. PROC_gdipellipsefill
    17. COM automation
      1. PROC_cominit
      2. PROC_cominitlcid
      3. PROC_comexit
      4. FN_createobject
      5. FN_getobject
      6. PROC_releaseobject
      7. PROC_putvalue
        1. Setting the correct data type
        2. Formatting string data
      8. PROC_callmethod
      9. FN_getvalueint
      10. FN_getvaluefloat
      11. FN_getvaluestr
      12. FN_getvariant
      13. FN_coerce
      14. COM hierarchy and the Object Browser
      15. Objects, Methods and Properties
      16. Variants and variant format
    18. 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
    19. Multiple output windows
      1. PROC_multiwin
      2. FN_createwin
      3. PROC_selectwin
      4. PROC_closewin
    20. No-wait function replacements
      1. FNget and FNget$
      2. FNinkey(t%) and FNinkey$(t%)
      3. PROCwait
      4. PROCsound
      5. FNinput
    21. Callback routines
    22. Window subclassing
      1. PROC_subclass
      2. PROC_subclassdlg
      3. PROC_subclasswin
      4. PROC_unsubclass
    23. High speed timers
      1. FN_ontimer
      2. PROC_killtimer
    24. 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
    25. Extending the assembler
      1. FN_asmext
      2. FN_cpuid
    26. More assembler extensions
    27. High quality sound patch
      1. PROC_hqinit
      2. PROC_stereo
      3. PROC_voice
    28. UTF-8 string functions
    29. Serialised synchronous events
      1. PROC_eventinit
      2. PROC_eventregister(WM_xxxx, PROChandler())
      3. PROC_eventpoll
    30. 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
    31. 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
      11. PROC_osword139
      12. PROC_osword140

  8. 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

  9. Hints and Tips
    1. Trapped OPENIN, OPENOUT or OPENUP
    2. Using windows larger than 1920 x 1440 pixels
    3. TrackPopupMenu
    4. Passing floats to assembler code or DLLs
    5. Precautions when using LOCAL arrays
    6. Using status bars and toolbars with the Multiple Document Interface
    7. Foreign language equivalent of TIME$
    8. Loading a sprite (or icon) from memory
    9. Setting the File Open dialogue's initial directory
    10. Centering a hardcopy printout on the page
    11. Using DATA in installed modules
    12. Re-entrant ON MOVE interrupts
    13. Cunning use of the CASE statement
    14. 'Docking' a dialogue box
    15. Disabling Windows XP Visual Styles

Left HOME

INTRODUCTION Right


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