Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rom_subroutines [2016/05/25 11:29]
ex_writer
— (current)
Line 1: Line 1:
-====== Bally On-Board ROM Subroutines ====== 
  
-^ Routine # ^ Location? ^ Arguments ^ Name ^ Function ^ 
-| 00 | 007B | none | INTPC | Initiates multiple subroutine calls. | 
-| 02 | 0279 | none | XINTC/EXIT | Performs an ending function for multiple subroutine calls. | 
-| 04 | 0634 | L,H | RCALL | Jumps immediately to location specified by HL. | 
-| 06 | 007D | L,H | MCALL | "​CALL"​ for subroutines. Nests a multiple subroutine call. HL specifies data location. | 
-| 08 | 0B79 | none | MRET | "​RET"​ for subroutines. Performs a POP AF and POP HL. (Aborts a nest.) | 
-| 10 | 0ACA | L,H | MJUMP | "​JP"​ for subroutines. A logical nested subroutine jump. Execution of subroutines starts over at location HL. | 
-| 12 | 00A4 | B | SUCK | Performs a SACRED register load according to B. | 
-| 14 | 018B | none | ACTINT | Interrupt Service Routine. Executes SR16 on 4FD5–4FD8 and SR0200 every interrupt. | 
-| 16 | 0480 | C | DECCTS | Checks locations 4FD5–4FDC according to bits of C (Bit 0 = 4FD5). | 
-| 18 | 050A | IXl,​IXh,​A,​L,​H | BMUSIC | Sound Generator. Enter with IX pointing to a work area, HL pointing to parameter string. Sound parameters are in sets. | 
-| 20 | 05FE | non | EMUSIC | Stops all sound output. Sets (4FEA) and (4FF9) to 00. Outputs 00 to port 18, 8 times. | 
-| 22 | 03CF | D,B,A | SETOUT | Outputs D to port 0A, B to port 09, A to port 0E. | 
-| 24 | 01DB | L,H | | Output color specifications. | 
-| 26 | 0AF4 | E,D,C,B,A || Stores A in BC bytes starting at location DE. | 
-| 28 | 06B4 | E,D,C,B,A || Display Solid Color in 4000 area. | 
-| 30 | 0704 | IXl,IXh,L,H || Load A with (IX+00), D with (IX+0B), E with (IX+06), set bit 6 in (IX+01) and execute SR32, 34, 36, and 38. | 
-| 32 | 0711 | E,D,A,L,H || Enter with HL pointing to first of four bytes of data. Increment E (horizontal dot number) by (HL) and increment D (vertical dot number) by (HL+1). Execute SR34, 36, and 38 with HL incremented by 2. | 
-| 34 | 071B | E,D,A,L,H || Pick up C (# bytes/​horizontal line) from (HL) and B (number of horizontal lines) from (HL+1). Execute SR36 and 38 with HL incremented by 2. | 
-| 36 | 071F | E,​D,​C,​B,​A,​L,​H || Calculate CRT index from V/H dot number in DE by executing SR56. Index (0000 area) returned in DE. Execute SR38. | 
-| 38 | 0722 | E,​D,​C,​B,​A,​L,​H || Move CRT data. Moves C bytes of data from location HL to location DE. | 
-| 40 | 0783 | IXl,IXh,E,D | | |  
-| 42 | 07A4 | E,D,B,L,H | | Display solid color. | 
-| 44 | 03B9 | E,D,C,B,L,H || Move CRT Data. Moves C bytes of data from HL to DE+2. | 
-| 46 | 07B3 | E,D,L,H | | Move data to CRT. | 
-| 48 | 026A | E,D,C,B,L,H || Block moves. Moves C bytes from (HL+DE) to (HL). Increments HL by DE and repeats B times. | 
-| 50 | 07E7 | E,D,C,A || Character display subroutine. See routine 52. | 
-| 52 | 07CA | E,D,C,L,H || String display routine. | 
-| 124 | 0023 | E,D,L,H || Executes as LD (HL),DE | 
-| 126 | 0240 | E,D,C,L,H | |Joystick manipulation. | 
-| | 0200 | || Timer subroutine. Executed every interrupt by SR14. If user has interrupts and does not call SR14 during interrupts, they should call 0200 during their interrupt service routine. | 
-| | 0203 | || Decrements location specified by HL. |