diff options
Diffstat (limited to 'docs/os12/mdfs.net/Docs/Comp/BBC/OS1-20/C300')
-rw-r--r-- | docs/os12/mdfs.net/Docs/Comp/BBC/OS1-20/C300 | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/docs/os12/mdfs.net/Docs/Comp/BBC/OS1-20/C300 b/docs/os12/mdfs.net/Docs/Comp/BBC/OS1-20/C300 new file mode 100644 index 0000000..83abcfd --- /dev/null +++ b/docs/os12/mdfs.net/Docs/Comp/BBC/OS1-20/C300 @@ -0,0 +1 @@ +BBC Operation System OS 1.20 Startup Strings and Tables
C300 JMP &CB1D ;Initialise screen with mode in A.
C303 DB 13,'BBC Computer ',0
C312 DB '16K',7,0
C317 DB '32K',7,0
C31C DB 08,0D,0D ;Termination byte in next table
****** 16 COLOUR MODE BYTE MASK LOOK UP TABLE******
C31F DB 00 ;00000000
C320 DB 11 ;00010001
C321 DB 22 ;00100010
C322 DB 33 ;00110011
C323 DB 44 ;01000100
C324 DB 55 ;01010101
C325 DB 66 ;01100110
C326 DB 77 ;01110111
C327 DB 88 ;10001000
C328 DB 99 ;10011001
C329 DB AA ;10101010
C32A DB BB ;10111011
C32B DB CC ;11001100
C32C DB DD ;11011101
C32D DB EE ;11101110
C32E DB FF ;11111111
****** 4 COLOUR MODE BYTE MASK LOOK UP TABLE******
C32F DB 00 ;00000000
C330 DB 55 ;01010101
C331 DB AA ;10101010
C332 DB FF ;11111111
****** VDU ENTRY POINT LO LOOK UP TABLE******
C333 DB 11 ;00010001
C334 DB 3B ;00111011
C335 DB 96 ;10010110
C336 DB A1 ;10100001
C337 DB AD ;10101101
C338 DB B9 ;10111001
C339 DB 11 ;00010001
C33A DB 6F ;01101111
C33B DB C5 ;11000101
C33C DB 64 ;01100100
C33D DB F0 ;11110000
C33E DB 5B ;01011011
C33F DB 59 ;01011001
C340 DB AF ;10101111
C341 DB 8D ;10001101
C342 DB A6 ;10100110
C343 DB C0 ;11000000
C344 DB F9 ;11111001
C345 DB FD ;11111101
C346 DB 92 ;10010010
C347 DB 39 ;00111001
C348 DB 9B ;10011011
C349 DB EB ;11101011
C34A DB F1 ;11110001
C34B DB 39 ;00111001
C34C DB 8C ;10001100
C34D DB BD ;10111101
C34E DB 11 ;00010001
C34F DB FA ;11111010
C350 DB A2 ;10100010
C351 DB 79 ;01111001
C352 DB 87 ;10000111
C353 DB AC ;10101100
****** VDU ENTRY POINT HI PARAMETER LOOK UP TABLE******
; 1xxxxxxx - no parameters, address high byte
; 0aaapppp - parameter count 16-p, address high byte &C3+a
C354 DB C5 ;11000101 VDU 0 - &C511, no parameters
C355 DB 2F ;00101111 VDU 1 - &C53B, 1 parameter
C356 DB C5 ;11000101 VDU 2 - &C596, no parameters
C357 DB C5 ;11000101 VDU 3 - &C5A1, no parameters
C358 DB C5 ;11000101 VDU 4 - &C5AD, no parameters
C359 DB C5 ;11000101 VDU 5 - &C5B9, no parameters
C35A DB C5 ;11000101 VDU 6 - &C511, no parameters
C35B DB E8 ;11101000 VDU 7 - &E86F, no parameters
C35C DB C5 ;11000101 VDU 8 - &C5C5, no parameters
C35D DB C6 ;11000110 VDU 9 - &C664, no parameters
C35E DB C6 ;11000110 VDU 10 - &C6F0, no parameters
C35F DB C6 ;11000110 VDU 11 - &C65B, no parameters
C360 DB C7 ;11000111 VDU 12 - &C759, no parameters
C361 DB C7 ;11000111 VDU 13 - &C7AF, no parameters
C362 DB C5 ;11000101 VDU 14 - &C58D, no parameters
C363 DB C5 ;11000101 VDU 15 - &C5A6, no parameters
C364 DB C7 ;11000111 VDU 16 - &C7C0, no parameters
C365 DB 4F ;01001111 VDU 17 - &C7F9, 1 parameter
C366 DB 4E ;01001110 VDU 18 - &C7FD, 2 parameters
C367 DB 5B ;01011011 VDU 19 - &C892, 5 parameters
C368 DB C8 ;11001000 VDU 20 - &C839, no parameters
C369 DB C5 ;11000101 VDU 21 - &C59B, no parameters
C36A DB 5F ;01011111 VDU 22 - &C8EB, 1 parameter
C36B DB 57 ;01010111 VDU 23 - &C8F1, 9 parameters
C36C DB 78 ;01111000 VDU 24 - &CA39, 8 parameters
C36D DB 6B ;01101011 VDU 25 - &C9AC, 5 parameters
C36E DB C9 ;11001001 VDU 26 - &C9BD, no parameters
C36F DB C5 ;11000101 VDU 27 - &C511, no parameters
C370 DB 3C ;00111100 VDU 28 - &C6FA, 4 parameters
C371 DB 7C ;01111100 VDU 29 - &CAA2, 4 parameters
C372 DB C7 ;11000111 VDU 30 - &C779, no parameters
C373 DB 4E ;01001110 VDU 31 - &C787, 2 parameters
C374 DB CA ;11001010 VDU 127 - &CAAC, no parameters
****** 640 MULTIPLICATION TABLE 40COL, 80COL MODES HIBYTE, LOBYTE ******
C375 DW 0000 ; 0*640 = &0000
C377 DW 8002 ; 1*640 = &0280
C379 DW 0005 ; 2*640 = &0500
C37B DW 8007 ; 3*640 = &0780
C37D DW 000A ; 4*
C37F DW 800C ; 5*
C381 DW 000F ; 6*
C383 DW 8011 ; 7*
C385 DW 0014 ; 8*
C387 DW 8016 ; 9*
C389 DW 0019 ; 10*
C38B DW 801B ; 11*
C38D DW 001E ; 12*
C38F DW 8020 ; 13*
C391 DW 0023 ; 14*
C393 DW 8025 ; 15*
C395 DW 0028 ; 16*
C397 DW 802A ; 17*
C399 DW 002D ; 18*
C39B DW 802F ; 19*
C39D DW 0032 ; 20*
C39F DW 8034 ; 21*
C3A1 DW 0037 ; 22*
C3A3 DW 8039 ; 23*
C3A5 DW 003C ; 24*
C3A7 DW 803E ; 25*
C3A9 DW 0041 ; 26*
C3AB DW 8043 ; 27*
C3AD DW 0046 ; 28*
C3AF DW 8048 ; 29*
C3B1 DW 004B ; 30*
C3B3 DW 804D ; 31*640 = &4D80
****** *40 MULTIPLICATION TABLE TELETEXT MODE HIBYTE, LOBYTE ******
C3B5 DW 0000 ; 0*40 = &0000
C3B7 DW 2800 ; 1*40 = &0028
C3B9 DW 5000 ; 2
C3BB DW 7800 ; 3
C3BD DW A000 ; 4
C3BF DW C800 ; 5
C3C1 DW F000 ; 6
C3C3 DW 1801 ; 7
C3C5 DW 4001 ; 8
C3C7 DW 6801 ; 9
C3C9 DW 9001 ; 10
C3CB DW B801 ; 11
C3CD DW E001 ; 12
C3CF DW 0802 ; 13
C3D1 DW 3002 ; 14
C3D3 DW 5802 ; 15
C3D5 DW 8002 ; 16
C3D7 DW A802 ; 17
C3D9 DW D002 ; 18
C3DB DW F802 ; 19
C3DD DW 2003 ; 20
C3DF DW 4803 ; 21
C3E1 DW 7003 ; 22
C3E3 DW 9803 ; 23*40 = &0398
C3E5 DW C003 ; 24*40 = &03C0
****** TEXT WINDOW -BOTTOM ROW LOOK UP TABLE ******
C3E7 DB 1F ; MODE 0 - 32 ROWS
C3E8 DB 1F ; MODE 1 - 32 ROWS
C3E9 DB 1F ; MODE 2 - 32 ROWS
C3EA DB 18 ; MODE 3 - 25 ROWS
C3EB DB 1F ; MODE 4 - 32 ROWS
C3EC DB 1F ; MODE 5 - 32 ROWS
C3ED DB 18 ; MODE 6 - 25 ROWS
C3EE DB 18 ; MODE 7 - 25 ROWS
****** TEXT WINDOW -RIGHT HAND COLUMN LOOK UP TABLE ******
C3EF DB 4F ; MODE 0 - 80 COLUMNS
C3F0 DB 27 ; MODE 1 - 40 COLUMNS
C3F1 DB 13 ; MODE 2 - 20 COLUMNS
C3F2 DB 4F ; MODE 3 - 80 COLUMNS
C3F3 DB 27 ; MODE 4 - 40 COLUMNS
C3F4 DB 13 ; MODE 5 - 20 COLUMNS
C3F5 DB 27 ; MODE 6 - 40 COLUMNS
C3F6 DB 27 ; MODE 7 - 40 COLUMNS
*************************************************************************
* *
* SEVERAL OF THE FOLLOWING TABLES OVERLAP EACH OTHER *
* SOME ARE DUAL PURPOSE *
* *
*************************************************************************
************** VIDEO ULA CONTROL REGISTER SETTINGS ***********************
C3F7 DB 9C ;10011100
C3F8 DB D8 ;11011000
C3F9 DB F4 ;11110100
C3FA DB 9C ;10011100
C3FB DB 88 ;10001000
C3FC DB C4 ;11000100
C3FD DB 88 ;10001000
C3FE DB 4B ;01001011
******** NUMBER OF BYTES PER CHARACTER FOR EACH DISPLAY MODE ************
C3FF DB 08 ;00001000
C400 DB 10 ;00010000
C401 DB 20 ;00100000
C402 DB 08 ;00001000
C403 DB 08 ;00001000
C404 DB 10 ;00010000
C405 DB 08 ;00001000
C406 DB 01 ;00000001
******************* MASK TABLE FOR 2 COLOUR MODES **********************
C407 DB AA ;10101010
C408 DB 55 ;01010101
****************** MASK TABLE FOR 4 COLOUR MODES ***********************
C409 DB 88 ;10001000
C40A DB 44 ;01000100
C40B DB 22 ;00100010
C40C DB 11 ;00010001
********** MASK TABLE FOR 4 COLOUR MODES FONT FLAG MASK TABLE **********
C40D DB 80 ;10000000
C40E DB 40 ;01000000
C40F DB 20 ;00100000
C410 DB 10 ;00010000
C411 DB 08 ;00001000
C412 DB 04 ;00000100
C413 DB 02 ;00000010 - NEXT BYTE IN FOLLOWING TABLE
********* NUMBER OF TEXT COLOURS -1 FOR EACH MODE ************************
C414 DB 01 ; MODE 0 - 2 COLOURS
C415 DB 03 ; MODE 1 - 4 COLOURS
C416 DB 0F ; MODE 2 - 16 COLOURS
C417 DB 01 ; MODE 3 - 2 COLOURS
C418 DB 01 ; MODE 4 - 2 COLOURS
C419 DB 03 ; MODE 5 - 4 COLOURS
C41A DB 01 ; MODE 6 - 2 COLOURS
C41B DB 00 ; MODE 7 - 1 'COLOUR'
************** GCOL PLOT OPTIONS PROCESSING LOOK UP TABLE ***************
C41C DB FF ;11111111
C41D DB 00 ;00000000
C41E DB 00 ;00000000
C41F DB FF ;11111111
C420 DB FF ;11111111
C421 DB FF ;11111111
C422 DB FF ;11111111
C423 DB 00 ;00000000
********** 2 COLOUR MODES PARAMETER LOOK UP TABLE WITHIN TABLE **********
C424 DB 00 ;00000000
C425 DB FF ;11111111
*************** 4 COLOUR MODES PARAMETER LOOK UP TABLE ******************
C426 DB 00 ;00000000
C427 DB 0F ;00001111
C428 DB F0 ;11110000
C429 DB FF ;11111111
***************16 COLOUR MODES PARAMETER LOOK UP TABLE ******************
C42A DB 00 ;00000000
C42B DB 03 ;00000011
C42C DB 0C ;00001100
C42D DB 0F ;00001111
C42E DB 30 ;00110000
C42F DB 33 ;00110011
C430 DB 3C ;00111100
C431 DB 3F ;00111111
C432 DB C0 ;11000000
C433 DB C3 ;11000011
C434 DB CC ;11001100
C435 DB CF ;11001111
C436 DB F0 ;11110000
C437 DB F3 ;11110011
C438 DB FC ;11111100
C439 DB FF ;11111111
********** DISPLAY MODE PIXELS/BYTE-1 LOOK UP TABLE *********************
C43A DB 07 ; MODE 0 - 8 PIXELS/BYTE
C43B DB 03 ; MODE 1 - 4 PIXELS/BYTE
C43C DB 01 ; MODE 2 - 2 PIXELS/BYTE
C43D DB 00 ; MODE 3 - 1 PIXEL/BYTE (NON-GRAPHICS)
C43E DB 07 ; MODE 4 - 8 PIXELS/BYTE
C43F DB 03 ; MODE 5 - 4 PIXELS/BYTE
********* SCREEN DISPLAY MEMORY INDEX LOOK UP TABLE OVERLAPS ************
C440 DB 00 ; MODE 6 - 1 PIXEL/BYTE // MODE 0 - TYPE 0
***** SOUND PITCH OFFSET BY CHANNEL LOOK UP TABLE WITHIN TABLE **********
C441 DB 00 ; MODE 7 - 1 PIXEL/BYTE // MODE 1 - TYPE 0 // CHANNEL 0
C442 DB 00 ; MODE 2 - TYPE 0 // CHANNEL 1
C443 DB 01 ; MODE 3 - TYPE 1 // CHANNEL 2
C444 DB 02 ; MODE 4 - TYPE 2 // CHANNEL 3
**** REST OF DISPLAY TABLE ****
C445 DB 02 ; MODE 5 - TYPE 2
C446 DB 03 ; MODE 6 - TYPE 3
C447 DB 04 ; MODE 7 - TYPE 4
***************** VDU SECTION CONTROL NUMBERS ***************************
C447 DB 04 ; MODE 7 - TYPE 4
C448 DB 00 ;00000000
C449 DB 06 ;00000110
C44A DB 02 ;00000010
*********** CRTC SET UP PARAMETERS TABLE 1 WITHIN TABLE ******************
C44B DB 0D ;00001101
C44C DB 05 ;00000101
C44D DB 0D ;00001101
C44E DB 05 ;00000101
*********** CRTC SET UP PARAMETERS TABLE 2 WITHIN TABLE *****************
C44F DB 04 ;00000100
C450 DB 04 ;00000100
C451 DB 0C ;00001100
C452 DB 0C ;00001100
C453 DB 04 ;00000100
**** REST OF VDU SECTION CONTROL NUMBERS ****
C454 DB 02 ;00000010
C455 DB 32 ;00110010
C456 DB 7A ;01111010
C457 DB 92 ;10010010
C458 DB E6 ;11100110
************** MSB OF MEMORY OCCUPIED BY SCREEN BUFFER *****************
C459 DB 50 ; Type 0: &5000 - 20k
C45A DB 40 ; Type 1: &4000 - 16k
C45B DB 28 ; Type 2: &2800 - 10k
C45C DB 20 ; Type 3: &2000 - 8k
C45D DB 04 ; Type 4: &0400 - 1k
************ MSB OF FIRST LOCATION OCCUPIED BY SCREEN BUFFER ************
C45E DB 30 ; Type 0: &3000
C45F DB 40 ; Type 1: &4000
C460 DB 58 ; Type 2: &5800
C461 DB 60 ; Type 3: &6000
C462 DB 7C ; Type 4: &7C00
***************** NUMBER OF BYTES PER ROW *******************************
C463 DB 28 ;00101000
C464 DB 40 ;01000000
C465 DB 80 ;10000000
******** ROW MULTIPLIACTION TABLE POINTER TO LOOK UP TABLE **************
C466 DB B5 ;10110101
C467 DB 75 ;01110101
C468 DB 75 ;01110101
********** CRTC CURSOR END REGISTER SETTING LOOK UP TABLE ***************
C469 DB 0B ;00001011
C46A DB 17 ;00010111
C46B DB 23 ;00100011
C46C DB 2F ;00101111
C46D DB 3B ;00111011
************* 6845 REGISTERS 0-11 FOR MODES 0-2 *************************
C46E DB 7F ;01111111
C46F DB 50 ;01010000
C470 DB 62 ;01100010
C471 DB 28 ;00101000
C472 DB 26 ;00100110
C473 DB 00 ;00000000
C474 DB 20 ;00100000
C475 DB 22 ;00100010
C476 DB 01 ;00000001
C477 DB 07 ;00000111
C478 DB 67 ;01100111
C479 DB 08 ;00001000
************* 6845 REGISTERS 0-11 FOR MODE 3 ****************************
C47A DB 7F ;01111111
C47B DB 50 ;01010000
C47C DB 62 ;01100010
C47D DB 28 ;00101000
C47E DB 1E ;00011110
C47F DB 02 ;00000010
C480 DB 19 ;00011001
C481 DB 1B ;00011011
C482 DB 01 ;00000001
C483 DB 09 ;00001001
C484 DB 67 ;01100111
C485 DB 09 ;00001001
************ 6845 REGISTERS 0-11 FOR MODES 4-5 **************************
C486 DB 3F ;00111111
C487 DB 28 ;00101000
C488 DB 31 ;00110001
C489 DB 24 ;00100100
C48A DB 26 ;00100110
C48B DB 00 ;00000000
C48C DB 20 ;00100000
C48D DB 22 ;00100010
C48E DB 01 ;00000001
C48F DB 07 ;00000111
C490 DB 67 ;01100111
C491 DB 08 ;00001000
********** 6845 REGISTERS 0-11 FOR MODE 6 *******************************
C492 DB 3F ;00111111
C493 DB 28 ;00101000
C494 DB 31 ;00110001
C495 DB 24 ;00100100
C496 DB 1E ;00011110
C497 DB 02 ;00000010
C498 DB 19 ;00011001
C499 DB 1B ;00011011
C49A DB 01 ;00000001
C49B DB 09 ;00001001
C49C DB 67 ;01100111
C49D DB 09 ;00001001
********* 6845 REGISTERS 0-11 FOR MODE 7 *****************************
C49E DB 3F ;00111111
C49F DB 28 ;00101000
C4A0 DB 33 ;00110011
C4A1 DB 24 ;00100100
C4A2 DB 1E ;00011110
C4A3 DB 02 ;00000010
C4A4 DB 19 ;00011001
C4A5 DB 1B ;00011011
C4A6 DB 93 ;10010011
C4A7 DB 12 ;00010010
C4A8 DB 72 ;01110010
C4A9 DB 13 ;00010011
************* VDU ROUTINE VECTOR ADDRESSES ******************************
C4AA DB 86 ;10000110
C4AB DB D3 ;11010011
C4AC DB 7E ;01111110
C4AD DB D3 ;11010011
************ VDU ROUTINE BRANCH VECTOR ADDRESS LO ***********************
C4AE DB 6A ;01101010
C4AF DB 74 ;01110100
C4B0 DB 42 ;01000010
C4B1 DB 4B ;01001011
************ VDU ROUTINE BRANCH VECTOR ADDRESS HI ***********************
C4B2 DB D3 ;11010011
C4B3 DB D3 ;11010011
C4B4 DB D3 ;11010011
C4B5 DB D3 ;11010011
*********** TELETEXT CHARACTER CONVERSION TABLE ************************
C4B6 DB 23 ; '#' -> '_'
C4B7 DB 5F ; '_' -> '`'
C4B8 DB 60 ; '`' -> '#'
C4B9 DB 23 ; '#'
*********** SOFT CHARACTER RAM ALLOCATION *****************************
C4BA DB 04 ; &20-&3F - OSHWM+&0400
C4BB DB 05 ; &40-&5F - OSHWM+&0500
C4BC DB 06 ; &60-&7F - OSHWM+&0600
C4BD DB 00 ; &80-&9F - OSHWM+&0000
C4BE DB 01 ; &A0-&BF - OSHWM+&0100
C4BF DB 02 ; &C0-&DF - OSHWM+&0200
*************************************************************************
* *
* VDU FUNCTIONS ADDRESSES *
* *
*************************************************************************
; VDU Address Parameters function
; 0 &C511 0 does nothing
; 1 &C53B 1 next character to printer only
; 2 &C596 0 enable printer
; 3 &C5A1 0 disable printer
; 4 &C5AD 0 select text cursor
; 5 &C5B9 0 select graphics cursor
; 6 &C511 0 enable display
; 7 &E86F 0 bell
; 8 &C5C5 0 cursor left
; 9 &C664 0 cursor right
; 10 &C6F0 0 cursor down
; 11 &C65B 0 cursor up
; 12 &C759 0 clear text window
; 13 &C7AF 0 newline
; 14 &C58D 0 select paged mode
; 15 &C5A6 0 cancel paged mode
; 16 &C7C0 0 clear graphics screen
; 17 &C7F9 1 define text colour
; 18 &C7FD 2 define graphics colour
; 19 &C892 5 define logical colour
; 20 &C839 0 restore default colours
; 21 &C59B 0 disable display
; 22 &C8EB 1 select screen MODE
; 23 &C8F1 9 define character
; 24 &CA39 8 define graphics window
; 25 &C98C 5 PLOT
; 26 &C9BD 0 set default windows
; 27 &C511 0 ESCAPE (does nothing)
; 28 &C6FA 4 define text window
; 29 &CAA2 4 define graphics origin
; 30 &C779 0 home cursor
; 31 &C787 2 position text cursor (TAB)
;127 &CAAC 0 delete
*************************************************************************
* *
* VDU Variables *
* *
*************************************************************************
;D0 VDU status
;Bit 0 printer output enabled
; 1 scrolling disabled
; 2 paged scrolling enabled
; 3 software scrolling selected
; 4 not used
; 5 printing at graphics cursor enabled
; 6 cursor editing mode enabled
; 7 screen disabled
;D1 byte mask for current graphics point
;D2/3 text colour bytes to be ORed and EORed into memory
;D4/5 graphics colour bytes to be ORed and EORed into memory
;D6/7 address of top line of current graphics cell
;D8/9 address of top scan line of current text character
;DA/F temporary workspace
;E0/1 CRTC row multiplication table pointer
;246 Character definition explosion switch
;248 current video ULA control regiter setting
;249 current pallette setting
;251 flash counter
;252 mark-space count
;253 space period count
;256 EXEC file handle
;257 SPOOL file handle
;260 Econet OSWRCH interception flag
;267 bit 7 set ignore start up message
;268 length of key string
;269 print line counter
;26A number of items in VDU queque
;26B TAB key value
;26C ESCAPE character
;27D cursor editing status
;28F start up options (Keyboard links)
bits 0-2 default screen Mode
3 reverse SHIFT/BREAK
4-5 disc timing parameters
;290 screen display vertical adjustment
;291 interlace toggle flag
;300/1 graphics window left
;302/3 graphics window bottom
;304/5 graphics window right
;306/7 graphics window top
;308 text window left
;309 text window bottom
;30A text window right
;30B text window top
;30C/D graphics origin, horizontal (external values)
;30E/F graphics origin, vertical (external values)
;310/1 current graphics cursor, horizontal (external values)
;312/3 current graphics cursor, vertical (external values)
;314/5 last graphics cursor, horizontal (external values)
;316/7 last graphics cursor, vertical (external values)
;318 text column
;319 text line
;31A graphics scan line expressed as line of character
;31B-323 VDU parameters, last parameter in &323
;324/5 current graphics cursor, horizontal (internal values)
;316/7 current graphics cursor, vertical (internal values)
;328-349 general workspace
;34A/B text cursor address to CRT controller
;34C/D width of text window in bytes
;34E hi byte of address of screen RAM start
;34F bytes per character
;350/1 address of window area start
;352/3 bytes per character row
;354 high byte of screen RAM size
;355 Mode
;356 memory map type
;357/35A current colours
;35B/C graphics plot mode
;35D/E jump vector
;35F last setting of CRT controller Cursor start register
;360 number of logical colours less 1
;361 pixels per byte (0 in text only modes)
;362/3 colour masks
;364/5 X/Y for text input cursor
;366 output cursor character for MODE 7
;367 Font flag
;368/E font location bytes
;36F-37E Colour palette
\ No newline at end of file |