3580 lines
		
	
	
		
			219 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			3580 lines
		
	
	
		
			219 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
_startAddress_                    EQU                               0x0200
 | 
						|
 | 
						|
; Internal Variables
 | 
						|
serialRawPrev                     EQU                               0x0081
 | 
						|
register0                         EQU                               0x0082
 | 
						|
register1                         EQU                               register0 + 0x02
 | 
						|
register2                         EQU                               register0 + 0x04
 | 
						|
register3                         EQU                               register0 + 0x06
 | 
						|
register4                         EQU                               register0 + 0x08
 | 
						|
register5                         EQU                               register0 + 0x0A
 | 
						|
register6                         EQU                               register0 + 0x0C
 | 
						|
register7                         EQU                               register0 + 0x0E
 | 
						|
register8                         EQU                               register0 + 0x10
 | 
						|
register9                         EQU                               register0 + 0x12
 | 
						|
register10                        EQU                               register0 + 0x14
 | 
						|
register11                        EQU                               register0 + 0x16
 | 
						|
register12                        EQU                               register0 + 0x18
 | 
						|
register13                        EQU                               register0 + 0x1A
 | 
						|
register14                        EQU                               register0 + 0x1C
 | 
						|
register15                        EQU                               register0 + 0x1E
 | 
						|
fgbgColour                        EQU                               register0 + 0x20
 | 
						|
cursorXY                          EQU                               register0 + 0x22
 | 
						|
midiStream                        EQU                               register0 + 0x24
 | 
						|
midiDelay                         EQU                               register0 + 0x26
 | 
						|
miscFlags                         EQU                               register0 + 0x28
 | 
						|
timerTick                         EQU                               register0 + 0x2A
 | 
						|
timerPrev                         EQU                               register0 + 0x2C
 | 
						|
 | 
						|
; Internal Constants
 | 
						|
ENABLE_SCROLL_BIT                 EQU                               0x0001
 | 
						|
ON_BOTTOM_ROW_BIT                 EQU                               0x0002
 | 
						|
DISABLE_CLIP_BIT                  EQU                               0x0004
 | 
						|
ENABLE_SCROLL_MSK                 EQU                               0xfffe
 | 
						|
ON_BOTTOM_ROW_MSK                 EQU                               0xfffd
 | 
						|
DISABLE_CLIP_MSK                  EQU                               0xfffb
 | 
						|
 | 
						|
; Internal Buffers
 | 
						|
regsWorkArea                      EQU                               0x0000
 | 
						|
textWorkArea                      EQU                               0x7fa0
 | 
						|
 | 
						|
; Includes
 | 
						|
%includePath                      "../../at67/gbas/runtime"
 | 
						|
%include                          util.i
 | 
						|
%include                          gigatron.i
 | 
						|
%include                          macros.i
 | 
						|
 | 
						|
; Labels
 | 
						|
_entryPoint_                      EQU                               0x0200
 | 
						|
_loop                             EQU                               0x028f
 | 
						|
_handleInput                      EQU                               0x02aa
 | 
						|
_comeOutPhase                     EQU                               0x0478
 | 
						|
_pointPhase                       EQU                               0x0cbc
 | 
						|
_win                              EQU                               0x11e3
 | 
						|
_gameOverInput                    EQU                               0x12a4
 | 
						|
_displayGameOver                  EQU                               0x12ec
 | 
						|
_playSndAlert                     EQU                               0x14c7
 | 
						|
_playSndRollDice                  EQU                               0x15b8
 | 
						|
_playSndLose                      EQU                               0x16a9
 | 
						|
_playSndBet                       EQU                               0x16ef
 | 
						|
_playSndWin                       EQU                               0x17c9
 | 
						|
_getRomNote                       EQU                               0x18eb
 | 
						|
_drawBetText                      EQU                               0x19ac
 | 
						|
_drawTable                        EQU                               0x19ef
 | 
						|
_drawDice                         EQU                               0x1bba
 | 
						|
_displayBalance                   EQU                               0x2df7
 | 
						|
_updateBalance                    EQU                               0x31bd
 | 
						|
_displayBet                       EQU                               0x32f2
 | 
						|
_else_0x02aa                      EQU                               0x02a3
 | 
						|
_endif_0x02af                     EQU                               0x02a8
 | 
						|
_endif_0x02f4                     EQU                               0x02dd
 | 
						|
_endif_0x0307                     EQU                               0x02f0
 | 
						|
_page_0x0300                      EQU                               0x0300
 | 
						|
_endif_0x0343                     EQU                               0x032e
 | 
						|
_endif_0x0356                     EQU                               0x0341
 | 
						|
_endif_0x03d4                     EQU                               0x03b3
 | 
						|
_endif_0x0410                     EQU                               0x03e3
 | 
						|
_page_0x0400                      EQU                               0x0400
 | 
						|
_endif_0x0457                     EQU                               0x0429
 | 
						|
_endif_0x0472                     EQU                               0x0442
 | 
						|
_endif_0x04b2                     EQU                               0x0476
 | 
						|
_page_0x0500                      EQU                               0x0500
 | 
						|
_elseif_0x05f6                    EQU                               0x05b8
 | 
						|
_page_0x0600                      EQU                               0x0600
 | 
						|
_elseif_0x0686                    EQU                               0x064e
 | 
						|
_elseif_0x0717                    EQU                               0x06db
 | 
						|
_page_0x08a0                      EQU                               0x08a0
 | 
						|
_page_0x09a0                      EQU                               0x09a0
 | 
						|
_elseif_0x07a8                    EQU                               0x09bf
 | 
						|
_page_0x0aa0                      EQU                               0x0aa0
 | 
						|
_page_0x0ba0                      EQU                               0x0ba0
 | 
						|
_else_0x0839                      EQU                               0x0ba2
 | 
						|
_page_0x0ca0                      EQU                               0x0ca0
 | 
						|
_endif_0x08a6                     EQU                               0x0cba
 | 
						|
_page_0x0da0                      EQU                               0x0da0
 | 
						|
_page_0x0ea0                      EQU                               0x0ea0
 | 
						|
_page_0x0fa0                      EQU                               0x0fa0
 | 
						|
_elseif_0x09ad                    EQU                               0x0fba
 | 
						|
_page_0x10a0                      EQU                               0x10a0
 | 
						|
_else_0x0a3e                      EQU                               0x10f1
 | 
						|
_page_0x11a0                      EQU                               0x11a0
 | 
						|
_endif_0x0a83                     EQU                               0x11e1
 | 
						|
_page_0x12a0                      EQU                               0x12a0
 | 
						|
_endif_0x0aee                     EQU                               0x12ea
 | 
						|
_page_0x13a0                      EQU                               0x13a0
 | 
						|
_page_0x14a0                      EQU                               0x14a0
 | 
						|
_page_0x15a0                      EQU                               0x15a0
 | 
						|
_page_0x16a0                      EQU                               0x16a0
 | 
						|
_page_0x17a0                      EQU                               0x17a0
 | 
						|
_page_0x18a0                      EQU                               0x18a0
 | 
						|
_page_0x19a0                      EQU                               0x19a0
 | 
						|
_page_0x1aa0                      EQU                               0x1aa0
 | 
						|
_page_0x1ba0                      EQU                               0x1ba0
 | 
						|
_page_0x1ca0                      EQU                               0x1ca0
 | 
						|
_elseif_0x0e8a                    EQU                               0x1cf1
 | 
						|
_page_0x1da0                      EQU                               0x1da0
 | 
						|
_elseif_0x0efb                    EQU                               0x1de9
 | 
						|
_page_0x1ea0                      EQU                               0x1ea0
 | 
						|
_page_0x1fa0                      EQU                               0x1fa0
 | 
						|
_elseif_0x0f99                    EQU                               0x1fac
 | 
						|
_page_0x20a0                      EQU                               0x20a0
 | 
						|
_elseif_0x1064                    EQU                               0x20dd
 | 
						|
_page_0x21a0                      EQU                               0x21a0
 | 
						|
_page_0x22a0                      EQU                               0x22a0
 | 
						|
_else_0x115c                      EQU                               0x22d7
 | 
						|
_page_0x23a0                      EQU                               0x23a0
 | 
						|
_page_0x24a0                      EQU                               0x24a0
 | 
						|
_endif_0x126a                     EQU                               0x24da
 | 
						|
_page_0x25a0                      EQU                               0x25a0
 | 
						|
_page_0x26a0                      EQU                               0x26a0
 | 
						|
_elseif_0x1326                    EQU                               0x26ba
 | 
						|
_page_0x27a0                      EQU                               0x27a0
 | 
						|
_elseif_0x1397                    EQU                               0x27b2
 | 
						|
_page_0x28a0                      EQU                               0x28a0
 | 
						|
_elseif_0x1435                    EQU                               0x28c9
 | 
						|
_page_0x29a0                      EQU                               0x29a0
 | 
						|
_page_0x2aa0                      EQU                               0x2aa0
 | 
						|
_elseif_0x1500                    EQU                               0x2aa4
 | 
						|
_page_0x2ba0                      EQU                               0x2ba0
 | 
						|
_else_0x15f8                      EQU                               0x2bf2
 | 
						|
_page_0x2ca0                      EQU                               0x2ca0
 | 
						|
_page_0x2da0                      EQU                               0x2da0
 | 
						|
_endif_0x1706                     EQU                               0x2df5
 | 
						|
_page_0x2ea0                      EQU                               0x2ea0
 | 
						|
_elseif_0x175d                    EQU                               0x2ef2
 | 
						|
_page_0x2fa0                      EQU                               0x2fa0
 | 
						|
_elseif_0x17a9                    EQU                               0x2fe6
 | 
						|
_page_0x30a0                      EQU                               0x30a0
 | 
						|
_else_0x17f6                      EQU                               0x30da
 | 
						|
_page_0x31a0                      EQU                               0x31a0
 | 
						|
_endif_0x182d                     EQU                               0x31bb
 | 
						|
_page_0x32a0                      EQU                               0x32a0
 | 
						|
_endif_0x189d                     EQU                               0x32cd
 | 
						|
_endif_0x18ab                     EQU                               0x32db
 | 
						|
_endif_0x18c4                     EQU                               0x32f0
 | 
						|
_page_0x33a0                      EQU                               0x33a0
 | 
						|
_elseif_0x191b                    EQU                               0x33ee
 | 
						|
_page_0x34a0                      EQU                               0x34a0
 | 
						|
_else_0x1967                      EQU                               0x34e6
 | 
						|
_page_0x35a0                      EQU                               0x35a0
 | 
						|
_endif_0x199e                     EQU                               0x35cc
 | 
						|
 | 
						|
; Constants
 | 
						|
_GAMEOVER                         EQU                               0x0000
 | 
						|
_BET                              EQU                               0x0001
 | 
						|
_COMEOUT                          EQU                               0x0002
 | 
						|
_POINT                            EQU                               0x0003
 | 
						|
_NEWGAME                          EQU                               0x0004
 | 
						|
_NEXTROUND                        EQU                               0x0005
 | 
						|
_tableX                           EQU                               0x0003
 | 
						|
_tableY                           EQU                               0x0028
 | 
						|
 | 
						|
; Global Variables
 | 
						|
_dice1Value                       EQU                               0x0030
 | 
						|
_dice1X                           EQU                               0x0032
 | 
						|
_dice1Y                           EQU                               0x0034
 | 
						|
_dice2Value                       EQU                               0x0036
 | 
						|
_dice2X                           EQU                               0x0038
 | 
						|
_dice2Y                           EQU                               0x003a
 | 
						|
_balance                          EQU                               0x003c
 | 
						|
_betAmount                        EQU                               0x003e
 | 
						|
_winAmount                        EQU                               0x0040
 | 
						|
_currentRound                     EQU                               0x0042
 | 
						|
_rollPoint                        EQU                               0x0044
 | 
						|
_tempRoll                         EQU                               0x0046
 | 
						|
_inputDevice                      EQU                               0x0048
 | 
						|
_note                             EQU                               0x004a
 | 
						|
_notes                            EQU                               0x004c
 | 
						|
_index                            EQU                               0x004e
 | 
						|
 | 
						|
; Local Variables
 | 
						|
 | 
						|
; Arrays
 | 
						|
 | 
						|
; Strings
 | 
						|
 | 
						|
; Constant Strings
 | 
						|
_str_0x7df5                       EQU                               0x7df5
 | 
						|
_str_0x7df5                       DB                                9 '         ' 0
 | 
						|
_str_0x7de8                       EQU                               0x7de8
 | 
						|
_str_0x7de8                       DB                                11 'You rolled:' 0
 | 
						|
_str_0x7dda                       EQU                               0x7dda
 | 
						|
_str_0x7dda                       DB                                12 'Lucky Seven!' 0
 | 
						|
_str_0x7dc7                       EQU                               0x7dc7
 | 
						|
_str_0x7dc7                       DB                                17 'You won the roll!' 0
 | 
						|
_str_0x7db0                       EQU                               0x7db0
 | 
						|
_str_0x7db0                       DB                                21 'Play again (A) or (B)' 0
 | 
						|
_str_0x7da5                       EQU                               0x7da5
 | 
						|
_str_0x7da5                       DB                                9 'Yo-leven!' 0
 | 
						|
_str_0x7cf3                       EQU                               0x7cf3
 | 
						|
_str_0x7cf3                       DB                                11 'Snake Eyes!' 0
 | 
						|
_str_0x7cdf                       EQU                               0x7cdf
 | 
						|
_str_0x7cdf                       DB                                18 'You lost the roll!' 0
 | 
						|
_str_0x7cd1                       EQU                               0x7cd1
 | 
						|
_str_0x7cd1                       DB                                12 'Craps Three!' 0
 | 
						|
_str_0x7cc7                       EQU                               0x7cc7
 | 
						|
_str_0x7cc7                       DB                                8 'Boxcars!' 0
 | 
						|
_str_0x7cb7                       EQU                               0x7cb7
 | 
						|
_str_0x7cb7                       DB                                14 'The point is: ' 0
 | 
						|
_str_0x7ca1                       EQU                               0x7ca1
 | 
						|
_str_0x7ca1                       DB                                20 'Roll Dice (A) or (B)' 0
 | 
						|
_str_0x7be8                       EQU                               0x7be8
 | 
						|
_str_0x7be8                       DB                                22 '                      ' 0
 | 
						|
_str_0x7bdc                       EQU                               0x7bdc
 | 
						|
_str_0x7bdc                       DB                                10 'Seven Out!' 0
 | 
						|
_str_0x7bcd                       EQU                               0x7bcd
 | 
						|
_str_0x7bcd                       DB                                13 'You\'re broke!' 0
 | 
						|
_str_0x7bbb                       EQU                               0x7bbb
 | 
						|
_str_0x7bbb                       DB                                16 'Press (A) or (B)' 0
 | 
						|
_str_0x7ba6                       EQU                               0x7ba6
 | 
						|
_str_0x7ba6                       DB                                19 'Enter Bet (Up/Down)' 0
 | 
						|
_str_0x7af2                       EQU                               0x7af2
 | 
						|
_str_0x7af2                       DB                                12 'Gigatron TTL' 0
 | 
						|
_str_0x7ae9                       EQU                               0x7ae9
 | 
						|
_str_0x7ae9                       DB                                7 'Bal:000' 0
 | 
						|
_str_0x7ae1                       EQU                               0x7ae1
 | 
						|
_str_0x7ae1                       DB                                6 'Bal:00' 0
 | 
						|
_str_0x7ada                       EQU                               0x7ada
 | 
						|
_str_0x7ada                       DB                                5 'Bal:0' 0
 | 
						|
_str_0x7ba0                       EQU                               0x7ba0
 | 
						|
_str_0x7ba0                       DB                                4 'Bal:' 0
 | 
						|
_str_0x7ad4                       EQU                               0x7ad4
 | 
						|
_str_0x7ad4                       DB                                4 'Win:' 0
 | 
						|
_str_0x7acc                       EQU                               0x7acc
 | 
						|
_str_0x7acc                       DB                                6 'Bet:00' 0
 | 
						|
_str_0x7ac5                       EQU                               0x7ac5
 | 
						|
_str_0x7ac5                       DB                                5 'Bet:0' 0
 | 
						|
_str_0x7abf                       EQU                               0x7abf
 | 
						|
_str_0x7abf                       DB                                4 'Bet:' 0
 | 
						|
 | 
						|
; Data
 | 
						|
 | 
						|
; Time
 | 
						|
 | 
						|
; Define Bytes
 | 
						|
 | 
						|
; Define Words
 | 
						|
 | 
						|
; Define Images
 | 
						|
 | 
						|
; Define Loader Image Chunks
 | 
						|
 | 
						|
; Define Midis
 | 
						|
 | 
						|
; Define Sprites
 | 
						|
 | 
						|
; Define Fonts
 | 
						|
 | 
						|
; Lookup Tables
 | 
						|
 | 
						|
; Code
 | 
						|
_entryPoint_                      LDI                               0x28
 | 
						|
                                  STW                               romType
 | 
						|
                                  RomCheck                          
 | 
						|
                                  Initialise                        
 | 
						|
                                  InitEqOp                                                      ; INIT
 | 
						|
 | 
						|
                                  ClearVertBlinds                   
 | 
						|
                                  LDI                               2
 | 
						|
                                  STW                               graphicsMode
 | 
						|
                                  ScanlineMode                                                  ; cls : mode 2
 | 
						|
 | 
						|
                                  LD                                0x21
 | 
						|
                                  ORI                               0x0003
 | 
						|
                                  ST                                33                          ; poke &h21, peek(&h21) OR 3
 | 
						|
 | 
						|
                                  SoundAllOff                                                   ; sound off
 | 
						|
 | 
						|
                                  ClearVertBlinds                                               ; cls
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  STW                               _dice1Value                 ; dice1Value = 1
 | 
						|
 | 
						|
                                  LDI                               20
 | 
						|
                                  STW                               _dice1X                     ; dice1X = 20
 | 
						|
 | 
						|
                                  LDI                               50
 | 
						|
                                  STW                               _dice1Y                     ; dice1Y = 50
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  STW                               _dice2Value                 ; dice2Value = 1
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               _dice2X                     ; dice2X = 100
 | 
						|
 | 
						|
                                  LDI                               65
 | 
						|
                                  STW                               _dice2Y                     ; dice2Y = 65
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               _balance                    ; balance = 100
 | 
						|
 | 
						|
                                  LDI                               25
 | 
						|
                                  STW                               _betAmount                  ; betAmount = 25
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _winAmount                  ; winAmount = 0
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  STW                               _currentRound               ; currentRound = BET
 | 
						|
 | 
						|
                                  LDI                               6
 | 
						|
                                  STW                               _rollPoint                  ; rollPoint = 6
 | 
						|
 | 
						|
                                  LDI                               6
 | 
						|
                                  STW                               _tempRoll                   ; tempRoll = 6
 | 
						|
 | 
						|
                                  LDI                               255
 | 
						|
                                  STW                               _inputDevice                ; inputDevice = 255
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  ClearVertBlinds                                               ; cls
 | 
						|
 | 
						|
                                  LDWI                              _drawTable
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawTable
 | 
						|
 | 
						|
                                  LDWI                              _displayBalance
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBalance
 | 
						|
 | 
						|
                                  LDWI                              _displayBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBet
 | 
						|
 | 
						|
                                  LDWI                              _drawBetText
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawBetText
 | 
						|
 | 
						|
_loop                             LDW                               _currentRound
 | 
						|
                                  JumpEQ                            _else_0x02aa 0              ; if currentRound &= GAMEOVER
 | 
						|
 | 
						|
                                  LDWI                              _gameOverInput
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  LDWI                              _endif_0x02af
 | 
						|
                                  CALL                              giga_vAC                    ; gosub gameOverInput
 | 
						|
 | 
						|
_else_0x02aa                      LDWI                              _handleInput
 | 
						|
                                  CALL                              giga_vAC                    ; gosub handleInput
 | 
						|
 | 
						|
_endif_0x02af                     BRA                               _loop                       ; goto &loop
 | 
						|
 | 
						|
_handleInput                      PUSH                              
 | 
						|
                                  LD                                giga_buttonState
 | 
						|
                                  STW                               _inputDevice                ; inputDevice = get("BUTTON_STATE")
 | 
						|
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              247
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _currentRound
 | 
						|
                                  XORI                              1
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ANDW                              0xe8
 | 
						|
                                  JumpFalse                         _endif_0x0307 3             ; if (inputDevice = 247) AND (currentRound = BET)
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  ADDI                              25
 | 
						|
                                  STW                               _betAmount                  ; betAmount = betAmount + 25
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  SUBI                              100
 | 
						|
                                  JumpGT                            _endif_0x02f4 2             ; if betAmount &> 100
 | 
						|
 | 
						|
                                  LDI                               25
 | 
						|
                                  STW                               _betAmount                  ; betAmount = 25
 | 
						|
 | 
						|
_endif_0x02f4                     LDWI                              _displayBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBet
 | 
						|
 | 
						|
                                  LDWI                              _playSndBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndBet
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 10
 | 
						|
 | 
						|
_endif_0x0307                     LDW                               _inputDevice
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0300
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0300                      LDLW                              0xFE
 | 
						|
                                  XORI                              251
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _currentRound
 | 
						|
                                  XORI                              1
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ANDW                              0xe8
 | 
						|
                                  JumpFalse                         _endif_0x0356 5             ; if (inputDevice = 251) AND (currentRound = BET)
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  SUBI                              25
 | 
						|
                                  STW                               _betAmount                  ; betAmount = betAmount - 25
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  SUBI                              25
 | 
						|
                                  JumpLT                            _endif_0x0343 4             ; if betAmount &< 25
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               _betAmount                  ; betAmount = 100
 | 
						|
 | 
						|
_endif_0x0343                     LDWI                              _displayBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBet
 | 
						|
 | 
						|
                                  LDWI                              _playSndBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndBet
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 10
 | 
						|
 | 
						|
_endif_0x0356                     LDW                               _inputDevice
 | 
						|
                                  XORI                              191
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              127
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ORW                               0xe8
 | 
						|
                                  STW                               0xea
 | 
						|
                                  LDW                               _currentRound
 | 
						|
                                  XORI                              5
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ANDW                              0xea
 | 
						|
                                  JumpFalse                         _endif_0x03d4 6             ; if (inputDevice = 191 OR inputDevice = 127) AND (currentRound = NEXTROUND)
 | 
						|
 | 
						|
                                  LDWI                              _playSndAlert
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndAlert
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7df5
 | 
						|
                                  NewLine                                                       ; at 0,110 : print "         "
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDI                               140
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDI                               35
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf 10, 10, 140, 35
 | 
						|
 | 
						|
                                  LDWI                              _drawBetText
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawBetText
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  STW                               _currentRound               ; currentRound = NEWGAME
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 10
 | 
						|
 | 
						|
_endif_0x03d4                     LDW                               _inputDevice
 | 
						|
                                  XORI                              191
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              127
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ORW                               0xe8
 | 
						|
                                  STW                               0xea
 | 
						|
                                  LDW                               _currentRound
 | 
						|
                                  XORI                              3
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ANDW                              0xea
 | 
						|
                                  JumpFalse                         _endif_0x0410 7             ; if (inputDevice = 191 OR inputDevice = 127) AND (currentRound = POINT)
 | 
						|
 | 
						|
                                  LDWI                              _pointPhase
 | 
						|
                                  CALL                              giga_vAC                    ; gosub pointPhase
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 10
 | 
						|
 | 
						|
_endif_0x0410                     LDW                               _inputDevice
 | 
						|
                                  XORI                              191
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              127
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ORW                               0xe8
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0400
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0400                      LDLW                              0xFE
 | 
						|
                                  STW                               0xea
 | 
						|
                                  LDW                               _currentRound
 | 
						|
                                  XORI                              1
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ANDW                              0xea
 | 
						|
                                  JumpFalse                         _endif_0x0472 9             ; if (inputDevice = 191 OR inputDevice = 127) AND (currentRound = BET)
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  SUBW                              _balance
 | 
						|
                                  JumpGT                            _endif_0x0457 8             ; if betAmount &> balance
 | 
						|
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  STW                               _betAmount                  ; betAmount = balance
 | 
						|
 | 
						|
                                  LDWI                              _displayBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBet
 | 
						|
 | 
						|
_endif_0x0457                     LDW                               _balance
 | 
						|
                                  SUBW                              _betAmount
 | 
						|
                                  STW                               _balance                    ; balance = balance - betAmount
 | 
						|
 | 
						|
                                  LDWI                              _displayBalance
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBalance
 | 
						|
 | 
						|
                                  LDWI                              _comeOutPhase
 | 
						|
                                  CALL                              giga_vAC                    ; gosub comeOutPhase
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 10
 | 
						|
 | 
						|
_endif_0x0472                     LDW                               _inputDevice
 | 
						|
                                  XORI                              191
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              127
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ORW                               0xe8
 | 
						|
                                  STW                               0xea
 | 
						|
                                  LDW                               _currentRound
 | 
						|
                                  XORI                              4
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ANDW                              0xea
 | 
						|
                                  JumpFalse                         _endif_0x04b2 10            ; if (inputDevice = 191 OR inputDevice = 127) AND (currentRound = NEWGAME)
 | 
						|
 | 
						|
                                  LDWI                              _drawTable
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawTable
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  STW                               _currentRound               ; currentRound = BET
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 10
 | 
						|
 | 
						|
_endif_0x04b2                     Return                                                        ; return
 | 
						|
 | 
						|
_comeOutPhase                     PUSH                              
 | 
						|
                                  LDWI                              _playSndRollDice
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndRollDice
 | 
						|
 | 
						|
                                  LDI                               0x06
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              1
 | 
						|
                                  STW                               _dice1Value                 ; dice1Value = rnd(6) + 1
 | 
						|
 | 
						|
                                  LDI                               0x06
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              1
 | 
						|
                                  STW                               _dice2Value                 ; dice2Value = rnd(6) + 1
 | 
						|
 | 
						|
                                  LDW                               _dice1Value
 | 
						|
                                  ADDW                              _dice2Value
 | 
						|
                                  STW                               _rollPoint                  ; rollPoint = (dice1Value + dice2Value)
 | 
						|
 | 
						|
                                  LDWI                              _drawTable
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawTable
 | 
						|
 | 
						|
                                  LDWI                              _drawDice
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawDice
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7df5
 | 
						|
                                  NewLine                                                       ; at 0,110 : print "         "
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDI                               140
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDI                               35
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf 10, 10, 140, 35
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0500
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0500                      LDLW                              0xFE
 | 
						|
                                  PrintString                       _str_0x7de8
 | 
						|
                                  NewLine                                                       ; at 10,10 : print "You rolled:"
 | 
						|
 | 
						|
                                  LDI                               78
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _rollPoint
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 78,10 : print rollPoint
 | 
						|
 | 
						|
                                  LDW                               _rollPoint
 | 
						|
                                  XORI                              7
 | 
						|
                                  JumpEQ                            _elseif_0x05f6 11           ; if rollPoint &= 7
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7dda
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Lucky Seven!"
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _win
 | 
						|
                                  CALL                              giga_vAC                    ; gosub win
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7dc7
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You won the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound
 | 
						|
                                  LDWI                              _endif_0x08a6
 | 
						|
                                  CALL                              giga_vAC                    ; currentRound = NEXTROUND
 | 
						|
 | 
						|
_elseif_0x05f6                    LDW                               _rollPoint
 | 
						|
                                  XORI                              11
 | 
						|
                                  JumpEQ                            _elseif_0x0686 12           ; elseif rollPoint &= 11
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7da5
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Yo-leven!"
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _win
 | 
						|
                                  CALL                              giga_vAC                    ; gosub win
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0600
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0600                      LDLW                              0xFE
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7dc7
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You won the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound
 | 
						|
                                  LDWI                              _endif_0x08a6
 | 
						|
                                  CALL                              giga_vAC                    ; currentRound = NEXTROUND
 | 
						|
 | 
						|
_elseif_0x0686                    LDW                               _rollPoint
 | 
						|
                                  XORI                              2
 | 
						|
                                  JumpEQ                            _elseif_0x0717 13           ; elseif rollPoint &= 2
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 3
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cf3
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Snake Eyes!"
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _playSndLose
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndLose
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cdf
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You lost the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound               ; currentRound = NEXTROUND
 | 
						|
 | 
						|
                                  LDWI                              _updateBalance
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  LDWI                              _endif_0x08a6
 | 
						|
                                  CALL                              giga_vAC                    ; gosub updateBalance
 | 
						|
 | 
						|
_elseif_0x0717                    LDW                               _rollPoint
 | 
						|
                                  XORI                              3
 | 
						|
                                  JumpEQ                            _elseif_0x07a8 14           ; elseif rollPoint &= 3
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 3
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x08a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x08a0                      LDLW                              0xFE
 | 
						|
                                  PrintString                       _str_0x7cd1
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Craps Three!"
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _playSndLose
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndLose
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cdf
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You lost the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x09a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x09a0                      LDLW                              0xFE
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound               ; currentRound = NEXTROUND
 | 
						|
 | 
						|
                                  LDWI                              _updateBalance
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  LDWI                              _endif_0x08a6
 | 
						|
                                  CALL                              giga_vAC                    ; gosub updateBalance
 | 
						|
 | 
						|
_elseif_0x07a8                    LDW                               _rollPoint
 | 
						|
                                  XORI                              12
 | 
						|
                                  JumpEQ                            _else_0x0839 15             ; elseif rollPoint &= 12
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 3
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cc7
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Boxcars!"
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _playSndLose
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0aa0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0aa0                      LDLW                              0xFE
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndLose
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cdf
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You lost the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound               ; currentRound = NEXTROUND
 | 
						|
 | 
						|
                                  LDWI                              _updateBalance
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  LDWI                              _endif_0x08a6
 | 
						|
                                  CALL                              giga_vAC                    ; gosub updateBalance
 | 
						|
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0ba0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0ba0                      LDLW                              0xFE
 | 
						|
_else_0x0839                      LDI                               50
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 50
 | 
						|
 | 
						|
                                  LDWI                              _playSndAlert
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndAlert
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  STW                               _currentRound               ; currentRound = POINT
 | 
						|
 | 
						|
                                  LDI                               15
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 15
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cb7
 | 
						|
                                  NewLine                                                       ; at 10,10 : print "The point is: "
 | 
						|
 | 
						|
                                  LDI                               90
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _rollPoint
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 90,10 : print rollPoint
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0ca0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0ca0                      LDLW                              0xFE
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ca1
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Roll Dice (A) or (B)"
 | 
						|
 | 
						|
_endif_0x08a6                     Return                                                        ; return
 | 
						|
 | 
						|
_pointPhase                       PUSH                              
 | 
						|
                                  LDWI                              _playSndRollDice
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndRollDice
 | 
						|
 | 
						|
                                  LDI                               0x06
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              1
 | 
						|
                                  STW                               _dice1Value                 ; dice1Value = rnd(6) + 1
 | 
						|
 | 
						|
                                  LDI                               0x06
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              1
 | 
						|
                                  STW                               _dice2Value                 ; dice2Value = rnd(6) + 1
 | 
						|
 | 
						|
                                  LDW                               _dice1Value
 | 
						|
                                  ADDW                              _dice2Value
 | 
						|
                                  STW                               _tempRoll                   ; tempRoll = (dice1Value + dice2Value)
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0da0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0da0                      LDLW                              0xFE
 | 
						|
                                  PrintString                       _str_0x7be8
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "                      "
 | 
						|
 | 
						|
                                  LDWI                              _drawTable
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawTable
 | 
						|
 | 
						|
                                  LDWI                              _drawDice
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawDice
 | 
						|
 | 
						|
                                  LDW                               _tempRoll
 | 
						|
                                  XORW                              _rollPoint
 | 
						|
                                  JumpEQ                            _elseif_0x09ad 17           ; if tempRoll &= rollPoint
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7de8
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You rolled:"
 | 
						|
 | 
						|
                                  LDI                               78
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _tempRoll
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0ea0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0ea0                      LDLW                              0xFE
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 78,25 : print tempRoll
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _win
 | 
						|
                                  CALL                              giga_vAC                    ; gosub win
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7dc7
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You won the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x0fa0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x0fa0                      LDLW                              0xFE
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound
 | 
						|
                                  LDWI                              _endif_0x0a83
 | 
						|
                                  CALL                              giga_vAC                    ; currentRound = NEXTROUND
 | 
						|
 | 
						|
_elseif_0x09ad                    LDW                               _tempRoll
 | 
						|
                                  XORI                              7
 | 
						|
                                  JumpEQ                            _else_0x0a3e 18             ; elseif tempRoll &= 7
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 3
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7bdc
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Seven Out!"
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 100
 | 
						|
 | 
						|
                                  LDWI                              _playSndLose
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndLose
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x10a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x10a0                      LDLW                              0xFE
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7cdf
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You lost the roll!"
 | 
						|
 | 
						|
                                  LDI                               200
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 200
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7db0
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Play again (A) or (B)"
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               _currentRound               ; currentRound = NEXTROUND
 | 
						|
 | 
						|
                                  LDWI                              _updateBalance
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  LDWI                              _endif_0x0a83
 | 
						|
                                  CALL                              giga_vAC                    ; gosub updateBalance
 | 
						|
 | 
						|
_else_0x0a3e                      LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x11a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x11a0                      LDLW                              0xFE
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7de8
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "You rolled:"
 | 
						|
 | 
						|
                                  LDI                               78
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _tempRoll
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 78,25 : print tempRoll
 | 
						|
 | 
						|
                                  LDI                               75
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; wait 75
 | 
						|
 | 
						|
                                  LDWI                              _pointPhase
 | 
						|
                                  CALL                              giga_vAC                    ; gosub pointPhase
 | 
						|
 | 
						|
_endif_0x0a83                     Return                                                        ; return
 | 
						|
 | 
						|
_win                              PUSH                              
 | 
						|
                                  LDI                               2
 | 
						|
                                  STW                               mathX
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  STW                               mathY
 | 
						|
                                  LDWI                              multiply16bit
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  STW                               _winAmount                  ; winAmount = 2 * betAmount
 | 
						|
 | 
						|
                                  LDWI                              _updateBalance
 | 
						|
                                  CALL                              giga_vAC                    ; gosub updateBalance
 | 
						|
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x12a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x12a0                      LDLW                              0xFE
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_gameOverInput                    PUSH                              
 | 
						|
                                  LD                                giga_buttonState
 | 
						|
                                  STW                               _inputDevice                ; inputDevice = get("BUTTON_STATE")
 | 
						|
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              191
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STW                               0xe8
 | 
						|
                                  LDW                               _inputDevice
 | 
						|
                                  XORI                              127
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  ORW                               0xe8
 | 
						|
                                  JumpFalse                         _endif_0x0aee 20            ; if inputDevice = 191 OR inputDevice = 127
 | 
						|
 | 
						|
                                  LDWI                              _playSndAlert
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndAlert
 | 
						|
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               _balance                    ; balance = 100
 | 
						|
 | 
						|
                                  LDI                               25
 | 
						|
                                  STW                               _betAmount                  ; betAmount = 25
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _winAmount                  ; winAmount = 0
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  STW                               _currentRound               ; currentRound = BET
 | 
						|
 | 
						|
                                  LDWI                              _drawTable
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawTable
 | 
						|
 | 
						|
                                  LDWI                              _drawBetText
 | 
						|
                                  CALL                              giga_vAC                    ; gosub drawBetText
 | 
						|
 | 
						|
                                  LDWI                              _displayBet
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBet
 | 
						|
 | 
						|
                                  LDWI                              _displayBalance
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBalance
 | 
						|
 | 
						|
_endif_0x0aee                     Return                                                        ; return
 | 
						|
 | 
						|
_displayGameOver                  PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x13a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x13a0                      LDLW                              0xFE
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7df5
 | 
						|
                                  NewLine                                                       ; at 0,110 : print "         "
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDI                               140
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDI                               35
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf 10, 10, 140, 35
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 3
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               40
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7bcd
 | 
						|
                                  NewLine                                                       ; at 40,10 : print "You're broke!"
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x14a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x14a0                      LDLW                              0xFE
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               32
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7bbb
 | 
						|
                                  NewLine                                                       ; at 32,25 : print "Press (A) or (B)"
 | 
						|
 | 
						|
                                  LDWI                              _playSndLose
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndLose
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_playSndAlert                     PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _note
 | 
						|
                                  STW                               _notes                      ; note = 0 : notes = note
 | 
						|
 | 
						|
                                  LDI                               50
 | 
						|
                                  STW                               _index                      ; index = 50
 | 
						|
 | 
						|
                                  LDI                               2
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 2
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 3
 | 
						|
 | 
						|
                                  LDI                               55
 | 
						|
                                  STW                               _index                      ; index = 55
 | 
						|
 | 
						|
                                  LDI                               2
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x15a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x15a0                      LDLW                              0xFE
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 2
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_playSndRollDice                  PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _note
 | 
						|
                                  STW                               _notes                      ; note = 0 : notes = note
 | 
						|
 | 
						|
                                  LDI                               40
 | 
						|
                                  STW                               _index                      ; index = 40
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 4
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 4
 | 
						|
 | 
						|
                                  LDI                               45
 | 
						|
                                  STW                               _index                      ; index = 45
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 4
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x16a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x16a0                      LDLW                              0xFE
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_playSndLose                      PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _note
 | 
						|
                                  STW                               _notes                      ; note = 0 : notes = note
 | 
						|
 | 
						|
                                  LDI                               45
 | 
						|
                                  STW                               _index                      ; index = 45
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 4
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 4
 | 
						|
 | 
						|
                                  LDI                               40
 | 
						|
                                  STW                               _index                      ; index = 40
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 4
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_playSndBet                       PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _note
 | 
						|
                                  STW                               _notes                      ; note = 0 : notes = note
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x17a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x17a0                      LDLW                              0xFE
 | 
						|
                                  STW                               mathX
 | 
						|
                                  LDI                               25
 | 
						|
                                  STW                               mathY
 | 
						|
                                  LDWI                              divide16bit
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
                                  ADDI                              60
 | 
						|
                                  STW                               _index                      ; index = betAmount/25 + 60
 | 
						|
 | 
						|
                                  LDI                               5
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 5
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_playSndWin                       PUSH                              
 | 
						|
                                  LDI                               10
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 10
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _note
 | 
						|
                                  STW                               _notes                      ; note = 0 : notes = note
 | 
						|
 | 
						|
                                  LDI                               60
 | 
						|
                                  STW                               _index                      ; index = 60
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 4
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  LDI                               8
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x18a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x18a0                      LDLW                              0xFE
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 8
 | 
						|
 | 
						|
                                  LDI                               2
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 2
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 4
 | 
						|
 | 
						|
                                  LDI                               65
 | 
						|
                                  STW                               _index                      ; index = 65
 | 
						|
 | 
						|
                                  LDI                               20
 | 
						|
                                  ST                                giga_soundTimer             ; set SOUND_TIMER, 20
 | 
						|
 | 
						|
                                  LDWI                              _getRomNote
 | 
						|
                                  CALL                              giga_vAC                    ; gosub getRomNote
 | 
						|
 | 
						|
                                  LDI                               1
 | 
						|
                                  ST                                sndChannel + 1
 | 
						|
                                  LDW                               _note
 | 
						|
                                  STW                               sndFrequency
 | 
						|
                                  SoundOn                                                       ; sound on, 1, note
 | 
						|
 | 
						|
                                  LDI                               20
 | 
						|
                                  STW                               waitVBlankNum
 | 
						|
                                  WaitVBlanks                                                   ; WAIT 20
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_getRomNote                       PUSH                                                          ; asm
 | 
						|
 | 
						|
                                  LDWI                              0x0900                      ; LDWI    0x0900
 | 
						|
                                  ADDW                              _index                      ; ADDW    _index
 | 
						|
                                  ADDW                              _index                      ; ADDW    _index
 | 
						|
                                  STW                               _notes                      ; STW     _notes
 | 
						|
                                  LUP                               0                           ; LUP     0
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x19a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x19a0                      LDLW                              0xFE
 | 
						|
                                  ST                                _note                       ; ST      _note
 | 
						|
                                  LDW                               _notes                      ; LDW     _notes
 | 
						|
                                  LUP                               1                           ; LUP     1
 | 
						|
                                  ST                                _note+1                     ; ST      _note + 1
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_drawBetText                      PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ba6
 | 
						|
                                  NewLine                                                       ; at 10,10 : print "Enter Bet (Up/Down)"
 | 
						|
 | 
						|
                                  LDI                               10
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               25
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ca1
 | 
						|
                                  NewLine                                                       ; at 10,25 : print "Roll Dice (A) or (B)"
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_drawTable                        PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               8
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 8
 | 
						|
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x1aa0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x1aa0                      LDLW                              0xFE
 | 
						|
                                  LDI                               5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDI                               42
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDI                               154
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDI                               98
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf tableX+2, tableY+2, 154, tableY+58
 | 
						|
 | 
						|
                                  LDI                               6
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 6
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  STW                               drawRect_x1
 | 
						|
                                  LDI                               40
 | 
						|
                                  STW                               drawRect_y1
 | 
						|
                                  LDI                               156
 | 
						|
                                  STW                               drawRect_x2
 | 
						|
                                  LDI                               100
 | 
						|
                                  STW                               drawRect_y2
 | 
						|
                                  DrawRect                                                      ; rect tableX, tableY, 156, tableY+60
 | 
						|
 | 
						|
                                  LDI                               11
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 11
 | 
						|
 | 
						|
                                  LDI                               4
 | 
						|
                                  STW                               drawRect_x1
 | 
						|
                                  LDI                               41
 | 
						|
                                  STW                               drawRect_y1
 | 
						|
                                  LDI                               155
 | 
						|
                                  STW                               drawRect_x2
 | 
						|
                                  LDI                               99
 | 
						|
                                  STW                               drawRect_y2
 | 
						|
                                  DrawRect                                                      ; rect tableX+1, tableY+1, 155, tableY+59
 | 
						|
 | 
						|
                                  LDI                               8
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 8
 | 
						|
 | 
						|
                                  LDI                               12
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 12
 | 
						|
 | 
						|
                                  LDI                               42
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               67
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x1ba0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x1ba0                      LDLW                              0xFE
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7af2
 | 
						|
                                  NewLine                                                       ; at tableX+39,tableY+27 : print "Gigatron TTL"
 | 
						|
 | 
						|
                                  Return                                                        ; return
 | 
						|
 | 
						|
_drawDice                         PUSH                              
 | 
						|
                                  LDI                               0x32
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              6
 | 
						|
                                  STW                               _dice1X                     ; dice1X = rnd(50) + 6
 | 
						|
 | 
						|
                                  LDI                               0x1e
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              48
 | 
						|
                                  STW                               _dice1Y                     ; dice1Y = rnd(30) + 48
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               2
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 2
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X, dice1Y, dice1X+20, dice1Y+20
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x1ca0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x1ca0                      LDLW                              0xFE
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  STW                               drawRect_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  STW                               drawRect_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRect_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRect_y2
 | 
						|
                                  DrawRect                                                      ; rect dice1X, dice1Y, dice1X+20, dice1Y+20
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDW                               _dice1Value
 | 
						|
                                  XORI                              1
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x0e8a 21           ; if dice1Value = 1
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x126a
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice1X+9, dice1Y+9, dice1X+11, dice1Y+11
 | 
						|
 | 
						|
_elseif_0x0e8a                    LDW                               _dice1Value
 | 
						|
                                  XORI                              2
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x1da0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x1da0                      LDLW                              0xFE
 | 
						|
                                  JumpFalse                         _elseif_0x0efb 22           ; elseif dice1Value = 2
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+5, dice1Y+5, dice1X+7, dice1Y+7
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x126a
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice1X+13, dice1Y+13, dice1X+15, dice1Y+15
 | 
						|
 | 
						|
_elseif_0x0efb                    LDW                               _dice1Value
 | 
						|
                                  XORI                              3
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x0f99 23           ; elseif dice1Value = 3
 | 
						|
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x1ea0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x1ea0                      LDLW                              0xFE
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+3, dice1Y+3, dice1X+5, dice1Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+9, dice1Y+9, dice1X+11, dice1Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x1fa0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x1fa0                      LDLW                              0xFE
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x126a
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice1X+15, dice1Y+15, dice1X+17, dice1Y+17
 | 
						|
 | 
						|
_elseif_0x0f99                    LDW                               _dice1Value
 | 
						|
                                  XORI                              4
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x1064 24           ; elseif dice1Value = 4
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+5, dice1Y+5, dice1X+7, dice1Y+7
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+5, dice1Y+13, dice1X+7, dice1Y+15
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x20a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x20a0                      LDLW                              0xFE
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+13, dice1Y+5, dice1X+15, dice1Y+7
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x126a
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice1X+13, dice1Y+13, dice1X+15, dice1Y+15
 | 
						|
 | 
						|
_elseif_0x1064                    LDW                               _dice1Value
 | 
						|
                                  XORI                              5
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _else_0x115c 25             ; elseif dice1Value = 5
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x21a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x21a0                      LDLW                              0xFE
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+3, dice1Y+3, dice1X+5, dice1Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+15, dice1Y+3, dice1X+17, dice1Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+9, dice1Y+9, dice1X+11, dice1Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x22a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x22a0                      LDLW                              0xFE
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+3, dice1Y+15, dice1X+5, dice1Y+17
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x126a
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice1X+15, dice1Y+15, dice1X+17, dice1Y+17
 | 
						|
 | 
						|
_else_0x115c                      LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+5, dice1Y+3, dice1X+7, dice1Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x23a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x23a0                      LDLW                              0xFE
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+5, dice1Y+9, dice1X+7, dice1Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+5, dice1Y+15, dice1X+7, dice1Y+17
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+13, dice1Y+3, dice1X+15, dice1Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x24a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x24a0                      LDLW                              0xFE
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+13, dice1Y+9, dice1X+15, dice1Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice1X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice1Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice1X+13, dice1Y+15, dice1X+15, dice1Y+17
 | 
						|
 | 
						|
_endif_0x126a                     LDI                               0x32
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              84
 | 
						|
                                  STW                               _dice2X                     ; dice2X = rnd(50) + 84
 | 
						|
 | 
						|
                                  LDI                               0x1e
 | 
						|
                                  RandMod                           
 | 
						|
                                  ADDI                              48
 | 
						|
                                  STW                               _dice2Y                     ; dice2Y = rnd(30) + 48
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x25a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x25a0                      LDLW                              0xFE
 | 
						|
                                  LDI                               2
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 2
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X, dice2Y, dice2X+20, dice2Y+20
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  STW                               drawRect_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  STW                               drawRect_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRect_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              20
 | 
						|
                                  STW                               drawRect_y2
 | 
						|
                                  DrawRect                                                      ; rect dice2X, dice2Y, dice2X+20, dice2Y+20
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDW                               _dice2Value
 | 
						|
                                  XORI                              1
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x1326 27           ; if dice2Value = 1
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x26a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x26a0                      LDLW                              0xFE
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x1706
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice2X+9, dice2Y+9, dice2X+11, dice2Y+11
 | 
						|
 | 
						|
_elseif_0x1326                    LDW                               _dice2Value
 | 
						|
                                  XORI                              2
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x1397 28           ; elseif dice2Value = 2
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+5, dice2Y+5, dice2X+7, dice2Y+7
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x27a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x27a0                      LDLW                              0xFE
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x1706
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice2X+13, dice2Y+13, dice2X+15, dice2Y+15
 | 
						|
 | 
						|
_elseif_0x1397                    LDW                               _dice2Value
 | 
						|
                                  XORI                              3
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x1435 29           ; elseif dice2Value = 3
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+3, dice2Y+3, dice2X+5, dice2Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x28a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x28a0                      LDLW                              0xFE
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+9, dice2Y+9, dice2X+11, dice2Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x1706
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice2X+15, dice2Y+15, dice2X+17, dice2Y+17
 | 
						|
 | 
						|
_elseif_0x1435                    LDW                               _dice2Value
 | 
						|
                                  XORI                              4
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _elseif_0x1500 30           ; elseif dice2Value = 4
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+5, dice2Y+5, dice2X+7, dice2Y+7
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x29a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x29a0                      LDLW                              0xFE
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+5, dice2Y+13, dice2X+7, dice2Y+15
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+13, dice2Y+5, dice2X+15, dice2Y+7
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x1706
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x2aa0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x2aa0                      LDLW                              0xFE
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice2X+13, dice2Y+13, dice2X+15, dice2Y+15
 | 
						|
 | 
						|
_elseif_0x1500                    LDW                               _dice2Value
 | 
						|
                                  XORI                              5
 | 
						|
                                  CALL                              convertEqOpAddr
 | 
						|
                                  JumpFalse                         _else_0x15f8 31             ; elseif dice2Value = 5
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+3, dice2Y+3, dice2X+5, dice2Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+15, dice2Y+3, dice2X+17, dice2Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x2ba0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x2ba0                      LDLW                              0xFE
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+9, dice2Y+9, dice2X+11, dice2Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+3, dice2Y+15, dice2X+5, dice2Y+17
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                         
 | 
						|
                                  LDWI                              _endif_0x1706
 | 
						|
                                  CALL                              giga_vAC                    ; rectf dice2X+15, dice2Y+15, dice2X+17, dice2Y+17
 | 
						|
 | 
						|
_else_0x15f8                      LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x2ca0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x2ca0                      LDLW                              0xFE
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+5, dice2Y+3, dice2X+7, dice2Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+5, dice2Y+9, dice2X+7, dice2Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              7
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+5, dice2Y+15, dice2X+7, dice2Y+17
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x2da0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x2da0                      LDLW                              0xFE
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              3
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              5
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+13, dice2Y+3, dice2X+15, dice2Y+5
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              9
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              11
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+13, dice2Y+9, dice2X+15, dice2Y+11
 | 
						|
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              13
 | 
						|
                                  STW                               drawRectF_x1
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_y1
 | 
						|
                                  LDW                               _dice2X
 | 
						|
                                  ADDI                              15
 | 
						|
                                  STW                               drawRectF_x2
 | 
						|
                                  LDW                               _dice2Y
 | 
						|
                                  ADDI                              17
 | 
						|
                                  STW                               drawRectF_y2
 | 
						|
                                  DrawRectF                                                     ; rectf dice2X+13, dice2Y+15, dice2X+15, dice2Y+17
 | 
						|
 | 
						|
_endif_0x1706                     Return                                                        ; return
 | 
						|
 | 
						|
_displayBalance                   PUSH                              
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x2ea0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x2ea0                      LDLW                              0xFE
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  SUBI                              10
 | 
						|
                                  JumpLT                            _elseif_0x175d 33           ; if balance &< 10
 | 
						|
 | 
						|
                                  LDI                               106
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ae9
 | 
						|
                                  NewLine                                                       ; at 106,110 : print "Bal:000"
 | 
						|
 | 
						|
                                  LDI                               148
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                           
 | 
						|
                                  LDWI                              _endif_0x182d
 | 
						|
                                  CALL                              giga_vAC                    ; at 148,110 : print balance
 | 
						|
 | 
						|
_elseif_0x175d                    LDW                               _balance
 | 
						|
                                  SUBI                              100
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x2fa0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x2fa0                      LDLW                              0xFE
 | 
						|
                                  JumpLT                            _elseif_0x17a9 34           ; elseif balance &< 100
 | 
						|
 | 
						|
                                  LDI                               106
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ae1
 | 
						|
                                  NewLine                                                       ; at 106,110 : print "Bal:00"
 | 
						|
 | 
						|
                                  LDI                               142
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                           
 | 
						|
                                  LDWI                              _endif_0x182d
 | 
						|
                                  CALL                              giga_vAC                    ; at 142,110 : print balance
 | 
						|
 | 
						|
_elseif_0x17a9                    LDWI                              999
 | 
						|
                                  SUBW                              _balance
 | 
						|
                                  JumpGE                            _else_0x17f6 35             ; elseif balance &< 999
 | 
						|
 | 
						|
                                  LDI                               106
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x30a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x30a0                      LDLW                              0xFE
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ada
 | 
						|
                                  NewLine                                                       ; at 106,110 : print "Bal:0"
 | 
						|
 | 
						|
                                  LDI                               136
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                           
 | 
						|
                                  LDWI                              _endif_0x182d
 | 
						|
                                  CALL                              giga_vAC                    ; at 136,110 : print balance
 | 
						|
 | 
						|
_else_0x17f6                      LDI                               106
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ba0
 | 
						|
                                  NewLine                                                       ; at 106,110 : print "Bal:"
 | 
						|
 | 
						|
                                  LDI                               130
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x31a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x31a0                      LDLW                              0xFE
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 130,110 : print balance
 | 
						|
 | 
						|
_endif_0x182d                     Return                                                        ; return
 | 
						|
 | 
						|
_updateBalance                    PUSH                              
 | 
						|
                                  LDW                               _winAmount
 | 
						|
                                  JumpGT                            _endif_0x18ab 38            ; if winAmount &> 0
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 3
 | 
						|
 | 
						|
                                  LDI                               15
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 15
 | 
						|
 | 
						|
                                  LDI                               3
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ad4
 | 
						|
                                  NewLine                                                       ; at 3,110 : print "Win:"
 | 
						|
 | 
						|
                                  LDI                               26
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x32a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x32a0                      LDLW                              0xFE
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _winAmount
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 26,110 : print winAmount
 | 
						|
 | 
						|
                                  LDW                               _balance
 | 
						|
                                  ADDW                              _winAmount
 | 
						|
                                  STW                               _balance                    ; balance = balance + winAmount
 | 
						|
 | 
						|
                                  LDWI                              9999
 | 
						|
                                  SUBW                              _balance
 | 
						|
                                  JumpLE                            _endif_0x189d 37            ; if balance &> 9999
 | 
						|
 | 
						|
                                  LDWI                              9999
 | 
						|
                                  STW                               _balance                    ; balance = 9999
 | 
						|
 | 
						|
_endif_0x189d                     LDI                               0
 | 
						|
                                  STW                               _winAmount                  ; winAmount = 0
 | 
						|
 | 
						|
                                  LDWI                              _displayBalance
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayBalance
 | 
						|
 | 
						|
                                  LDWI                              _playSndWin
 | 
						|
                                  CALL                              giga_vAC                    ; gosub playSndWin
 | 
						|
 | 
						|
_endif_0x18ab                     LDW                               _balance
 | 
						|
                                  SUBI                              1
 | 
						|
                                  JumpLT                            _endif_0x18c4 39            ; if balance &< 1
 | 
						|
 | 
						|
                                  LDI                               0
 | 
						|
                                  STW                               _currentRound               ; currentRound = GAMEOVER
 | 
						|
 | 
						|
                                  LDWI                              _displayGameOver
 | 
						|
                                  CALL                              giga_vAC                    ; gosub displayGameOver
 | 
						|
 | 
						|
_endif_0x18c4                     Return                                                        ; return
 | 
						|
 | 
						|
_displayBet                       PUSH                              
 | 
						|
                                  LDI                               0
 | 
						|
                                  ST                                fgbgColour                  ; set BG_COLOUR, 0
 | 
						|
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x33a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x33a0                      LDLW                              0xFE
 | 
						|
                                  LDI                               63
 | 
						|
                                  ST                                fgbgColour + 1              ; set FG_COLOUR, 63
 | 
						|
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  SUBI                              10
 | 
						|
                                  JumpLT                            _elseif_0x191b 40           ; if betAmount &< 10
 | 
						|
 | 
						|
                                  LDI                               56
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7acc
 | 
						|
                                  NewLine                                                       ; at 56,110 : print "Bet:00"
 | 
						|
 | 
						|
                                  LDI                               92
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                           
 | 
						|
                                  LDWI                              _endif_0x199e
 | 
						|
                                  CALL                              giga_vAC                    ; at 92,110 : print betAmount
 | 
						|
 | 
						|
_elseif_0x191b                    LDW                               _betAmount
 | 
						|
                                  SUBI                              100
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x34a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x34a0                      LDLW                              0xFE
 | 
						|
                                  JumpLT                            _else_0x1967 41             ; elseif betAmount &< 100
 | 
						|
 | 
						|
                                  LDI                               56
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  PrintString                       _str_0x7ac5
 | 
						|
                                  NewLine                                                       ; at 56,110 : print "Bet:0"
 | 
						|
 | 
						|
                                  LDI                               86
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                           
 | 
						|
                                  LDWI                              _endif_0x199e
 | 
						|
                                  CALL                              giga_vAC                    ; at 86,110 : print betAmount
 | 
						|
 | 
						|
_else_0x1967                      LDI                               56
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  STLW                              0xFE
 | 
						|
                                  LDWI                              _page_0x35a0
 | 
						|
                                  CALL                              giga_vAC
 | 
						|
_page_0x35a0                      LDLW                              0xFE
 | 
						|
                                  PrintString                       _str_0x7abf
 | 
						|
                                  NewLine                                                       ; at 56,110 : print "Bet:"
 | 
						|
 | 
						|
                                  LDI                               80
 | 
						|
                                  ST                                cursorXY
 | 
						|
                                  LDI                               110
 | 
						|
                                  ST                                cursorXY + 1
 | 
						|
                                  AtTextCursor                      
 | 
						|
                                  LDW                               _betAmount
 | 
						|
                                  PrintAcInt16                      
 | 
						|
                                  NewLine                                                       ; at 80,110 : print betAmount
 | 
						|
 | 
						|
_endif_0x199e                     Return                                                        ; return
 | 
						|
 | 
						|
                                  HALT                                                          ; END
 | 
						|
 | 
						|
 | 
						|
 | 
						|
;****************************************************************************************************************************************
 | 
						|
;****************************************************************************************************************************************
 | 
						|
;* Internal runtime, DO NOT MODIFY PAST THIS POINT, modifications must be made in the original include files                            *
 | 
						|
;****************************************************************************************************************************************
 | 
						|
;****************************************************************************************************************************************
 | 
						|
 | 
						|
romCheck                          EQU     0x70c6
 | 
						|
convertEqOp                       EQU     0x6ef6
 | 
						|
multiply16bit                     EQU     0x72cb
 | 
						|
divide16bit                       EQU     0x77a8
 | 
						|
randMod16bit                      EQU     0x6fc2
 | 
						|
scanlineMode                      EQU     0x6fa5
 | 
						|
waitVBlank                        EQU     0x76a2
 | 
						|
waitVBlanks                       EQU     0x6faf
 | 
						|
resetVideoFlags                   EQU     0x70a4
 | 
						|
initClearFuncs                    EQU     0x75a1
 | 
						|
clearVertBlinds                   EQU     0x73c9
 | 
						|
clearCursorRow                    EQU     0x71cf
 | 
						|
drawHLine                         EQU     0x71a2
 | 
						|
drawVLine                         EQU     0x79a1
 | 
						|
drawRect                          EQU     0x74c0
 | 
						|
drawRectF                         EQU     0x73a1
 | 
						|
soundAllOff                       EQU     0x70b0
 | 
						|
soundOn                           EQU     0x6fd5
 | 
						|
printInit                         EQU     0x6fe9
 | 
						|
printText                         EQU     0x74a7
 | 
						|
printDigit                        EQU     0x70dd
 | 
						|
printInt16                        EQU     0x76ae
 | 
						|
printChar                         EQU     0x75b2
 | 
						|
printClip                         EQU     0x7aa5
 | 
						|
atTextCursor                      EQU     0x72a6
 | 
						|
newLineScroll                     EQU     0x78a2
 | 
						|
convertEqOpAddr                   EQU     0x00c0
 | 
						|
convertNeOpAddr                   EQU     0x00c2
 | 
						|
convertLeOpAddr                   EQU     0x00c4
 | 
						|
convertGeOpAddr                   EQU     0x00c6
 | 
						|
convertLtOpAddr                   EQU     0x00c8
 | 
						|
convertGtOpAddr                   EQU     0x00ca
 | 
						|
convert8Arr2dAddr                 EQU     0x00cc
 | 
						|
convert8Arr3dAddr                 EQU     0x00ce
 | 
						|
convert16Arr2dAddr                EQU     0x00d0
 | 
						|
convert16Arr3dAddr                EQU     0x00d2
 | 
						|
realTimeStubAddr                  EQU     0x00d4
 | 
						|
 | 
						|
 | 
						|
; do *NOT* use register4 to register7 during time slicing
 | 
						|
realTimeAddr        EQU     register0
 | 
						|
realTimeProc0       EQU     register1
 | 
						|
realTimeProc1       EQU     register2
 | 
						|
realTimeProc2       EQU     register3
 | 
						|
numericLabel        EQU     register0
 | 
						|
defaultLabel        EQU     register1
 | 
						|
lutLabs             EQU     register2
 | 
						|
lutAddrs            EQU     register3
 | 
						|
lutIndex            EQU     register8
 | 
						|
romType             EQU     register0
 | 
						|
romErrAddr          EQU     register1
 | 
						|
romErrPixel         EQU     register2
 | 
						|
romExec_vLR         EQU     register0
 | 
						|
romReadAddr         EQU     register0
 | 
						|
 | 
						|
 | 
						|
romCheck            LD      giga_romType
 | 
						|
                    ANDI    0xFC
 | 
						|
                    SUBW    romType
 | 
						|
                    BGE     romC_return
 | 
						|
                    LDWI    giga_vram + giga_yres/2*256 + giga_xres/2
 | 
						|
                    STW     romErrAddr
 | 
						|
                    
 | 
						|
romC_loop           LD      romErrPixel
 | 
						|
                    POKE    romErrAddr
 | 
						|
                    INC     romErrPixel
 | 
						|
                    BRA     romC_loop                       ; flash center pixel indicating rom error
 | 
						|
                    
 | 
						|
romC_return         RET                    
 | 
						|
 | 
						|
 | 
						|
                    ; convert equal to into a boolean
 | 
						|
convertEqOp         BEQ     convertEq_1
 | 
						|
                    LDI     0
 | 
						|
                    RET
 | 
						|
convertEq_1         LDI     1
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
; do *NOT* use register4 to register7 during time slicing
 | 
						|
mathX               EQU     register8
 | 
						|
mathY               EQU     register9
 | 
						|
mathSum             EQU     register12
 | 
						|
mathRem             EQU     register12
 | 
						|
mathMask            EQU     register13
 | 
						|
mathSign            EQU     register14
 | 
						|
mathQuot            EQU     register15
 | 
						|
mathShift           EQU     register15
 | 
						|
mathBase            EQU     register10
 | 
						|
mathPow             EQU     register11
 | 
						|
mathResult          EQU     register14
 | 
						|
 | 
						|
 | 
						|
                    ; accumulator = mathX * mathY, (result 16bit)
 | 
						|
multiply16bit       LDI     0
 | 
						|
                    STW     mathSum
 | 
						|
                    LDW     mathX
 | 
						|
                    BEQ     multiply16_exit     ; if x=0 then return 0
 | 
						|
                    LDWI    SYS_LSRW1_48
 | 
						|
                    STW     giga_sysFn
 | 
						|
                    LDW     mathY
 | 
						|
                    
 | 
						|
multiply16_loop     BEQ     multiply16_exit     ; if y=0 then return
 | 
						|
                    ANDI    1
 | 
						|
                    BEQ     multiply16_skip
 | 
						|
                    LDW     mathSum
 | 
						|
                    ADDW    mathX
 | 
						|
                    STW     mathSum             ; mathSum += mathX
 | 
						|
                    
 | 
						|
multiply16_skip     LDW     mathX
 | 
						|
                    LSLW
 | 
						|
                    STW     mathX               ; mathX = mathX <<1
 | 
						|
                    LDW     mathY
 | 
						|
                    SYS     48
 | 
						|
                    STW     mathY               ; mathY = mathY >>1
 | 
						|
                    BRA     multiply16_loop
 | 
						|
 | 
						|
%if TIME_SLICING
 | 
						|
multiply16_exit     PUSH
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
                    POP
 | 
						|
                    LDW     mathSum
 | 
						|
%else
 | 
						|
multiply16_exit     LDW     mathSum
 | 
						|
%endif
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
                    ; accumulator:mathRem = mathX / mathY, (results 16bit)
 | 
						|
divide16bit         LDW     mathX
 | 
						|
                    XORW    mathY
 | 
						|
                    STW     mathSign
 | 
						|
                    LDW     mathX
 | 
						|
                    BGE     divide16_pos0
 | 
						|
                    LDI     0
 | 
						|
                    SUBW    mathX
 | 
						|
                    STW     mathX
 | 
						|
                    
 | 
						|
divide16_pos0       LDW     mathY                     
 | 
						|
                    BGE     divide16_pos1
 | 
						|
                    LDI     0
 | 
						|
                    SUBW    mathY
 | 
						|
                    STW     mathY
 | 
						|
                    
 | 
						|
divide16_pos1       LDI     0
 | 
						|
                    STW     mathRem
 | 
						|
                    LDI     1
 | 
						|
    
 | 
						|
divide16_loop       STW     mathMask
 | 
						|
                    LDW     mathRem
 | 
						|
                    LSLW
 | 
						|
                    STW     mathRem
 | 
						|
                    LDW     mathX
 | 
						|
                    BGE     divide16_incr
 | 
						|
                    INC     mathRem
 | 
						|
                    
 | 
						|
divide16_incr       LDW     mathX
 | 
						|
                    LSLW
 | 
						|
                    STW     mathX
 | 
						|
                    LDW     mathRem
 | 
						|
                    SUBW    mathY
 | 
						|
                    BLT     divide16_incx
 | 
						|
                    STW     mathRem
 | 
						|
                    INC     mathX
 | 
						|
                    
 | 
						|
divide16_incx       LDW     mathMask
 | 
						|
                    LSLW
 | 
						|
                    BNE     divide16_loop
 | 
						|
%if TIME_SLICING
 | 
						|
                    PUSH
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
                    POP
 | 
						|
%endif
 | 
						|
                    LDW     mathSign
 | 
						|
                    BGE     divide16_exit
 | 
						|
                    LDI     0
 | 
						|
                    SUBW    mathX
 | 
						|
                    RET
 | 
						|
                    
 | 
						|
divide16_exit       LDW     mathX
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
randMod16bit        PUSH
 | 
						|
                    LDWI    SYS_Random_34
 | 
						|
                    STW     giga_sysFn
 | 
						|
                    SYS     34
 | 
						|
                    STW     mathX
 | 
						|
                    LDWI    divide16bit
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDW     mathRem
 | 
						|
                    POP                    
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
; do *NOT* use register4 to register7 during time slicing
 | 
						|
graphicsMode        EQU     register0
 | 
						|
waitVBlankNum       EQU     register0
 | 
						|
 | 
						|
drawHLine_x1        EQU     register0
 | 
						|
drawHLine_y1        EQU     register1
 | 
						|
drawHLine_x2        EQU     register2
 | 
						|
drawHLine_x4        EQU     register3
 | 
						|
 | 
						|
drawVLine_x1        EQU     register0
 | 
						|
drawVLine_y1        EQU     register1
 | 
						|
drawVLine_y2        EQU     register2
 | 
						|
drawVLine_y8        EQU     register3
 | 
						|
 | 
						|
drawLine_x1         EQU     register0
 | 
						|
drawLine_y1         EQU     register1
 | 
						|
drawLine_x2         EQU     register2
 | 
						|
drawLine_y2         EQU     register3
 | 
						|
drawLine_xy1        EQU     register0
 | 
						|
drawLine_xy2        EQU     register1
 | 
						|
drawLine_dxy1       EQU     register2
 | 
						|
drawLine_dxy2       EQU     register3
 | 
						|
drawLine_dx1        EQU     register4                       ; register4 to register7 used for temp values, state will be invalidated during time slicing
 | 
						|
drawLine_dy1        EQU     register5
 | 
						|
drawLine_dx2        EQU     register6
 | 
						|
drawLine_dy2        EQU     register7
 | 
						|
drawLine_sx         EQU     register8
 | 
						|
drawLine_sy         EQU     register9
 | 
						|
drawLine_h          EQU     register10
 | 
						|
drawLine_num        EQU     register11
 | 
						|
drawLine_count      EQU     register12
 | 
						|
drawLine_tmp        EQU     register13
 | 
						|
drawLine_dx         EQU     register2
 | 
						|
drawLine_dy         EQU     register3
 | 
						|
drawLine_u          EQU     register8
 | 
						|
drawLine_v          EQU     register9
 | 
						|
drawLine_addr       EQU     register10
 | 
						|
 | 
						|
drawPixel_xy        EQU     register15
 | 
						|
readPixel_xy        EQU     register15
 | 
						|
 | 
						|
drawCircle_cx       EQU     register0
 | 
						|
drawCircle_cy       EQU     register1
 | 
						|
drawCircle_r        EQU     register2
 | 
						|
drawCircle_a        EQU     register3
 | 
						|
drawCircle_d        EQU     register8
 | 
						|
drawCircle_x        EQU     register9
 | 
						|
drawCircle_y        EQU     register10
 | 
						|
drawCircle_ch0      EQU     register11
 | 
						|
drawCircle_ch1      EQU     register12
 | 
						|
drawCircle_ch2      EQU     register13
 | 
						|
drawCircle_ch3      EQU     register14
 | 
						|
 | 
						|
drawCircleF_x1      EQU     register0
 | 
						|
drawCircleF_y1      EQU     register1
 | 
						|
drawCircleF_x2      EQU     register2
 | 
						|
drawCircleF_cx      EQU     register15
 | 
						|
drawCircleF_cy      EQU     register10
 | 
						|
drawCircleF_r       EQU     register11
 | 
						|
drawCircleF_v       EQU     register8
 | 
						|
drawCircleF_w       EQU     register9
 | 
						|
 | 
						|
drawRect_x1         EQU     register7
 | 
						|
drawRect_y1         EQU     register10
 | 
						|
drawRect_x2         EQU     register11
 | 
						|
drawRect_y2         EQU     register15
 | 
						|
 | 
						|
drawRectF_x1        EQU     register0
 | 
						|
drawRectF_y1        EQU     register1
 | 
						|
drawRectF_x2        EQU     register2
 | 
						|
drawRectF_y2        EQU     register7
 | 
						|
 | 
						|
drawPoly_mode       EQU     register14
 | 
						|
drawPoly_addr       EQU     register15
 | 
						|
 | 
						|
    
 | 
						|
scanlineMode        LDWI    SYS_SetMode_v2_80
 | 
						|
                    STW     giga_sysFn
 | 
						|
                    LDW     graphicsMode
 | 
						|
                    SYS     80
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
waitVBlank          LD      giga_videoY
 | 
						|
                    XORI    179
 | 
						|
                    BNE     waitVBlank
 | 
						|
%if TIME_SLICING
 | 
						|
                    PUSH
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
                    POP
 | 
						|
%endif
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
waitVBlanks         PUSH
 | 
						|
 | 
						|
waitVB_loop         LDW     waitVBlankNum
 | 
						|
                    SUBI    0x01
 | 
						|
                    STW     waitVBlankNum
 | 
						|
                    BGE     waitVB_vblank
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
    
 | 
						|
waitVB_vblank       LDWI    waitVBlank
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    BRA     waitVB_loop
 | 
						|
 | 
						|
 | 
						|
; do *NOT* use register4 to register7 during time slicing
 | 
						|
xreset              EQU     register0
 | 
						|
xcount              EQU     register1
 | 
						|
ycount              EQU     register2
 | 
						|
treset              EQU     register3
 | 
						|
breset              EQU     register8
 | 
						|
top                 EQU     register9
 | 
						|
bot                 EQU     register10
 | 
						|
vramAddr            EQU     register11
 | 
						|
evenAddr            EQU     register12
 | 
						|
clsAddress          EQU     register13
 | 
						|
clsLines            EQU     register14
 | 
						|
varAddress          EQU     register13
 | 
						|
clrAddress          EQU     register13
 | 
						|
clrLines            EQU     register14
 | 
						|
clrWidth            EQU     register15
 | 
						|
    
 | 
						|
 | 
						|
resetVideoFlags     LDI     giga_CursorX                    ; cursor x start
 | 
						|
                    STW     cursorXY
 | 
						|
                    LDWI    ON_BOTTOM_ROW_MSK
 | 
						|
                    ANDW    miscFlags
 | 
						|
                    STW     miscFlags                       ; reset on bottom row flag
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
initClearFuncs      PUSH
 | 
						|
                    LDWI    resetVideoFlags
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDWI    SYS_SetMemory_v2_54             ; setup fill memory SYS routine
 | 
						|
                    STW     giga_sysFn
 | 
						|
                    LD      fgbgColour
 | 
						|
                    ST      giga_sysArg1                    ; fill value
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
                    ; clears the viewable screen using a vertical blinds effect
 | 
						|
clearVertBlinds     PUSH
 | 
						|
                    LDWI    initClearFuncs
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDI     giga_vram >> 8
 | 
						|
                    STW     top  
 | 
						|
                    
 | 
						|
clearVB_loopy       LDI     giga_xres
 | 
						|
                    ST      giga_sysArg0
 | 
						|
                    LDI     0
 | 
						|
                    ST      giga_sysArg2                    ; low start address
 | 
						|
                    LD      top
 | 
						|
                    ST      giga_sysArg3                    ; top line
 | 
						|
                    SYS     54                              ; fill memory
 | 
						|
    
 | 
						|
                    LDI     giga_xres
 | 
						|
                    ST      giga_sysArg0
 | 
						|
                    LDI     0
 | 
						|
                    ST      giga_sysArg2                    ; low start address
 | 
						|
                    LDWI    giga_yres - 1 + 16
 | 
						|
                    SUBW    top
 | 
						|
                    ST      giga_sysArg3                    ; bottom line
 | 
						|
                    SYS     54                              ; fill memory
 | 
						|
                    INC     top                             ; next top line
 | 
						|
%if TIME_SLICING
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
%endif
 | 
						|
                    LD      top
 | 
						|
                    SUBI    giga_yres / 2 + 8
 | 
						|
                    BLT     clearVB_loopy
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
drawHLine           PUSH
 | 
						|
                    LD      drawHLine_x1
 | 
						|
                    ST      giga_sysArg2                    ; low start address
 | 
						|
                    LD      drawHLine_x2
 | 
						|
                    SUBW    drawHLine_x1
 | 
						|
                    BGE     drawHL_cont
 | 
						|
                    LD      drawHLine_x2
 | 
						|
                    ST      giga_sysArg2                    ; low start address
 | 
						|
                    LD      drawHLine_x1
 | 
						|
                    SUBW    drawHLine_x2
 | 
						|
                    
 | 
						|
drawHL_cont         ADDI    1
 | 
						|
                    ST      giga_sysArg0                    ; count
 | 
						|
                    LD      fgbgColour + 1
 | 
						|
                    ST      giga_sysArg1                    ; fill value
 | 
						|
                    LD      drawHLine_y1
 | 
						|
                    ADDI    8
 | 
						|
                    ST      giga_sysArg3                    ; high start address
 | 
						|
                    LDWI    SYS_SetMemory_v2_54
 | 
						|
                    STW     giga_sysFn
 | 
						|
                    SYS     54                              ; fill memory
 | 
						|
%if TIME_SLICING
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
%endif
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
drawVLine           PUSH
 | 
						|
                    LDW     drawVLine_y2
 | 
						|
                    SUBW    drawVLine_y1
 | 
						|
                    BGE     drawVL_cont
 | 
						|
                    LDW     drawVLine_y2
 | 
						|
                    STW     drawLine_tmp
 | 
						|
                    LDW     drawVLine_y1
 | 
						|
                    STW     drawVLine_y2
 | 
						|
                    LDW     drawLine_tmp
 | 
						|
                    STW     drawVLine_y1                    ; if y2 < y1 then swap y2 with y1
 | 
						|
                    
 | 
						|
drawVL_cont         LD      drawVLine_x1
 | 
						|
                    ST      giga_sysArg4
 | 
						|
                    LD      drawVLine_y1
 | 
						|
                    ADDI    8
 | 
						|
                    ST      drawVLine_y1
 | 
						|
                    ST      giga_sysArg5
 | 
						|
                    LDW     drawVLine_y2
 | 
						|
                    ADDI    8
 | 
						|
                    ST      drawVLine_y2
 | 
						|
                    SUBW    drawVLine_y1
 | 
						|
                    SUBI    8
 | 
						|
                    BLT     drawVL_loop1
 | 
						|
                    
 | 
						|
                    LDW     fgbgColour
 | 
						|
                    STW     giga_sysArg0
 | 
						|
                    LDWI    SYS_VDrawBits_134
 | 
						|
                    STW     giga_sysFn                      ; setup 8 pixel SYS routine
 | 
						|
                    
 | 
						|
                    LDW     drawVLine_y2
 | 
						|
                    SUBI    7
 | 
						|
                    STW     drawVLine_y8                    ; 8 pixel chunks limit
 | 
						|
 | 
						|
drawVL_loop0        LDI     0xFF
 | 
						|
                    ST      giga_sysArg2                    ; 8 pixels of fg and bg colour
 | 
						|
                    SYS     134                             ; SYS_VDrawBits_134, 270 - 134/2 = 0xCB
 | 
						|
%if TIME_SLICING
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
%endif
 | 
						|
                    LD      giga_sysArg5
 | 
						|
                    ADDI    8
 | 
						|
                    ST      giga_sysArg5
 | 
						|
                    SUBW    drawVLine_y8
 | 
						|
                    BLT     drawVL_loop0                    ; all 8 pixel chunks
 | 
						|
                    
 | 
						|
drawVL_loop1        LD      fgbgColour + 1
 | 
						|
                    POKE    giga_sysArg4
 | 
						|
                    INC     giga_sysArg5
 | 
						|
                    LD      giga_sysArg5
 | 
						|
                    SUBW    drawVLine_y2
 | 
						|
                    BLE     drawVL_loop1                    ; remaining pixels
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
drawRect            PUSH
 | 
						|
                    LDW     drawRect_x1
 | 
						|
                    STW     drawHLine_x1
 | 
						|
                    LDW     drawRect_y1
 | 
						|
                    STW     drawHLine_y1
 | 
						|
                    LDW     drawRect_x2
 | 
						|
                    STW     drawHLine_x2
 | 
						|
                    LDWI    drawHLine
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDW     drawRect_y2
 | 
						|
                    STW     drawHLine_y1
 | 
						|
                    LDWI    drawHLine
 | 
						|
                    CALL    giga_vAC
 | 
						|
 | 
						|
                    LDW     drawRect_x1
 | 
						|
                    STW     drawVLine_x1
 | 
						|
                    LDW     drawRect_y1
 | 
						|
                    STW     drawVLine_y1
 | 
						|
                    LDW     drawRect_y2
 | 
						|
                    STW     drawVLine_y2
 | 
						|
                    LDWI    drawVLine
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDW     drawRect_x2
 | 
						|
                    STW     drawVLine_x1
 | 
						|
                    LDW     drawRect_y1
 | 
						|
                    STW     drawVLine_y1
 | 
						|
                    LDW     drawRect_y2
 | 
						|
                    STW     drawVLine_y2
 | 
						|
                    LDWI    drawVLine
 | 
						|
                    CALL    giga_vAC
 | 
						|
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
drawRectF           PUSH
 | 
						|
                    LDW     drawRectF_y2
 | 
						|
                    SUBW    drawRectF_y1
 | 
						|
                    BGE     drawRF_loop
 | 
						|
                    LDW     drawRectF_y2
 | 
						|
                    STW     drawLine_tmp
 | 
						|
                    LDW     drawRectF_y1
 | 
						|
                    STW     drawRectF_y2
 | 
						|
                    LDW     drawLine_tmp
 | 
						|
                    STW     drawRectF_y1                    ;if y2 < y1 then swap y2 with y1
 | 
						|
                    
 | 
						|
drawRF_loop         LDW     drawRectF_y1
 | 
						|
                    STW     drawHLine_y1
 | 
						|
                    LDWI    drawHLine
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    INC     drawRectF_y1
 | 
						|
                    LDW     drawRectF_y1
 | 
						|
                    SUBW    drawRectF_y2
 | 
						|
                    BLE     drawRF_loop
 | 
						|
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
midiId              EQU     register0
 | 
						|
audioAddr           EQU     register1
 | 
						|
waveType            EQU     register2
 | 
						|
midiNote            EQU     register4                       ; register4 to register7 are the only free registers during time slicing
 | 
						|
midiCommand         EQU     register5
 | 
						|
midiPtr             EQU     register6
 | 
						|
sndChannel          EQU     register8
 | 
						|
sndFrequency        EQU     register9
 | 
						|
sndVolume           EQU     register10
 | 
						|
sndWaveType         EQU     register11
 | 
						|
musicStream         EQU     register8
 | 
						|
musicNote           EQU     register9
 | 
						|
musicCommand        EQU     register10
 | 
						|
musicPtr            EQU     register11
 | 
						|
 | 
						|
 | 
						|
soundAllOff         LDWI    0x01FC
 | 
						|
                    STW     sndChannel
 | 
						|
                    LDI     0
 | 
						|
                    DOKE    sndChannel                      ; turn off channel 0
 | 
						|
                    INC     sndChannel + 1      
 | 
						|
                    DOKE    sndChannel                      ; turn off channel 1
 | 
						|
                    INC     sndChannel + 1      
 | 
						|
                    DOKE    sndChannel                      ; turn off channel 2
 | 
						|
                    INC     sndChannel + 1      
 | 
						|
                    DOKE    sndChannel                      ; turn off channel 3
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
soundOn             LDWI    SYS_LSRW1_48
 | 
						|
                    STW     giga_sysFn
 | 
						|
					LDI     0xFC
 | 
						|
                    ST      sndChannel
 | 
						|
                    LD      sndFrequency
 | 
						|
                    SYS     48
 | 
						|
                    ST      sndFrequency                    ; right shift low byte of sndFrequency by 1
 | 
						|
                    LDW     sndFrequency                    ; format = high:8 low:07, (bit 7 of low byte = 0)
 | 
						|
                    DOKE    sndChannel                      ; turn on channel
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
; do *NOT* use register4 to register7 during time slicing
 | 
						|
textStr             EQU     register0
 | 
						|
textNum             EQU     register0
 | 
						|
textBak             EQU     register0
 | 
						|
textHex             EQU     register1
 | 
						|
textSpc             EQU     register1
 | 
						|
textLen             EQU     register2
 | 
						|
textOfs             EQU     register3
 | 
						|
textChr             EQU     register8
 | 
						|
textFont            EQU     register9
 | 
						|
textSlice           EQU     register10
 | 
						|
scanLine            EQU     register11
 | 
						|
digitMult           EQU     register12
 | 
						|
digitIndex          EQU     register13
 | 
						|
clearLoop           EQU     register14
 | 
						|
    
 | 
						|
    
 | 
						|
printInit           LDWI    SYS_VDrawBits_134
 | 
						|
                    STW     giga_sysFn
 | 
						|
                    LDW     fgbgColour
 | 
						|
                    STW     giga_sysArg0
 | 
						|
                    LD      cursorXY + 1                    ; xy = peek(256+2*y)*256 + x
 | 
						|
                    LSLW
 | 
						|
                    INC     giga_vAC + 1
 | 
						|
                    PEEK
 | 
						|
                    ST      giga_sysArg4 + 1
 | 
						|
                    LD      cursorXY
 | 
						|
                    ST      giga_sysArg4                    ; xy position
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
                    ; prints text string pointed to by textStr
 | 
						|
printText           PUSH
 | 
						|
                    LDWI    printInit
 | 
						|
                    CALL    giga_vAC
 | 
						|
 | 
						|
                    ; first byte is length
 | 
						|
printT_char         INC     textStr                         ; next char
 | 
						|
                    LDW     textStr             
 | 
						|
                    PEEK
 | 
						|
                    BEQ     printT_exit                     ; check for delimiting zero
 | 
						|
                    ST      textChr
 | 
						|
                    LDWI    printChar
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    BRA     printT_char
 | 
						|
                    
 | 
						|
printT_exit         POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
                    ; prints single digit in textNum
 | 
						|
printDigit          PUSH
 | 
						|
                    LDW     textNum
 | 
						|
printD_index        SUBW    digitMult
 | 
						|
                    BLT     printD_cont
 | 
						|
                    STW     textNum
 | 
						|
                    INC     digitIndex
 | 
						|
                    BRA     printD_index
 | 
						|
    
 | 
						|
printD_cont         LD      digitIndex
 | 
						|
                    BEQ     printD_exit
 | 
						|
                    ORI     0x30
 | 
						|
                    ST      textChr
 | 
						|
                    LDWI    printChar
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDI     0x30
 | 
						|
                    ST      digitIndex
 | 
						|
printD_exit         POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
                    ; prints 16bit int in textNum
 | 
						|
printInt16          PUSH
 | 
						|
                    LDWI    printInit
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDI     0
 | 
						|
                    ST      digitIndex
 | 
						|
                    LDW     textNum
 | 
						|
                    BGE     printI16_pos
 | 
						|
                    LDI     0x2D
 | 
						|
                    ST      textChr
 | 
						|
                    LDWI    printChar
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDI     0
 | 
						|
                    SUBW    textNum
 | 
						|
                    STW     textNum    
 | 
						|
    
 | 
						|
printI16_pos        LDWI    10000
 | 
						|
                    STW     digitMult
 | 
						|
                    LDWI    printDigit
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDWI    1000
 | 
						|
                    STW     digitMult
 | 
						|
                    LDWI    printDigit
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDI     100
 | 
						|
                    STW     digitMult
 | 
						|
                    LDWI    printDigit
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDI     10
 | 
						|
                    STW     digitMult
 | 
						|
                    LDWI    printDigit
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LD      textNum
 | 
						|
                    ORI     0x30
 | 
						|
                    ST      textChr
 | 
						|
                    LDWI    printChar
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
                    ; prints char in textChr
 | 
						|
printChar           LD      textChr
 | 
						|
                    ANDI    0x7F                            ; char can't be bigger than 127
 | 
						|
                    SUBI    82
 | 
						|
                    BGE     printC_text82
 | 
						|
                    ADDI    50
 | 
						|
                    BLT     printC_exit                     ; char<32 exit
 | 
						|
                    STW     textChr                         ; char-32
 | 
						|
                    LDWI    giga_text32                     ; text font slice base address for chars 32-81
 | 
						|
                    BRA     printC_font
 | 
						|
                    
 | 
						|
printC_text82       STW     textChr                         ; char-82
 | 
						|
                    LDWI    giga_text82                     ; text font slice base address for chars 82+
 | 
						|
                    
 | 
						|
printC_font         STW     textFont
 | 
						|
                    LD      textChr
 | 
						|
                    LSLW    
 | 
						|
                    LSLW    
 | 
						|
                    ADDW    textChr
 | 
						|
                    ADDW    textFont
 | 
						|
                    STW     textFont                        ; char*5 + textFont
 | 
						|
                    LDI     0x05
 | 
						|
 | 
						|
printC_slice        ST      textSlice
 | 
						|
                    LDW     textFont                        ; text font slice base address
 | 
						|
                    LUP     0x00                            ; get ROM slice
 | 
						|
                    ST      giga_sysArg2
 | 
						|
                    SYS     134                             ; draw vertical slice, SYS_VDrawBits_134, 270 - 134/2 = 0xCB
 | 
						|
                    INC     textFont                        ; next vertical slice
 | 
						|
                    INC     giga_sysArg4                    ; next x
 | 
						|
                    LD      textSlice
 | 
						|
                    SUBI    1
 | 
						|
                    BNE     printC_slice
 | 
						|
                    
 | 
						|
                    ST      giga_sysArg2                    ; result of printC_slice is 0
 | 
						|
                    SYS     134                             ; draw last blank slice
 | 
						|
                    INC     giga_sysArg4                    ; using sysArg4 as a temporary cursor address for multiple char prints
 | 
						|
                    
 | 
						|
                    PUSH
 | 
						|
%if TIME_SLICING
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
%endif
 | 
						|
                    LDWI    printClip
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    POP
 | 
						|
                    
 | 
						|
printC_exit         RET
 | 
						|
 | 
						|
 | 
						|
printClip           LD      cursorXY
 | 
						|
                    ADDI    giga_xfont
 | 
						|
                    ST      cursorXY
 | 
						|
                    SUBI    giga_xres - giga_xfont          ; last possible char on line
 | 
						|
                    BLE     printCl_exit
 | 
						|
                    LDI     DISABLE_CLIP_BIT
 | 
						|
                    ANDW    miscFlags                       ; is text clipping disabled?
 | 
						|
                    BNE     printCl_exit
 | 
						|
                    PUSH
 | 
						|
                    LDWI    newLineScroll                   ; next row, scroll at bottom
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    POP
 | 
						|
                    
 | 
						|
printCl_exit        RET
 | 
						|
 | 
						|
 | 
						|
atTextCursor        LD      cursorXY
 | 
						|
                    SUBI    giga_xres - giga_xfont
 | 
						|
                    BLE     atTC_checkY
 | 
						|
                    LDI     0
 | 
						|
                    ST      cursorXY
 | 
						|
                    
 | 
						|
atTC_checkY         LD      cursorXY + 1
 | 
						|
                    SUBI    giga_yres - giga_yfont
 | 
						|
                    BLT     atTC_resbot
 | 
						|
                    LDI     giga_yres - giga_yfont
 | 
						|
                    ST      cursorXY + 1
 | 
						|
                    LDI     ON_BOTTOM_ROW_BIT
 | 
						|
                    ORW     miscFlags
 | 
						|
                    STW     miscFlags                       ; set on bottom row flag
 | 
						|
                    RET
 | 
						|
                    
 | 
						|
atTC_resbot         LDWI    ON_BOTTOM_ROW_MSK
 | 
						|
                    ANDW    miscFlags
 | 
						|
                    STW     miscFlags                       ; reset on bottom row flag
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
 | 
						|
                    ; clears the top giga_yfont lines of pixels in preparation of text scrolling
 | 
						|
clearCursorRow      PUSH
 | 
						|
                    LDWI    SYS_SetMemory_v2_54
 | 
						|
                    STW     giga_sysFn                      ; setup fill memory SYS routine
 | 
						|
                    LD      fgbgColour
 | 
						|
                    ST      giga_sysArg1                    ; fill value
 | 
						|
                    LDWI    giga_videoTable
 | 
						|
                    PEEK
 | 
						|
                    ST      giga_sysArg3                    ; row0 high byte address
 | 
						|
                    LDI     giga_yfont
 | 
						|
 | 
						|
clearCR_loopy       ST      clearLoop                    
 | 
						|
                    LDI     giga_xres
 | 
						|
                    ST      giga_sysArg0
 | 
						|
                    LDI     0
 | 
						|
                    ST      giga_sysArg2                    ; low start address
 | 
						|
                    SYS     54                              ; fill memory
 | 
						|
                    INC     giga_sysArg3                    ; next line
 | 
						|
                    LD      clearLoop
 | 
						|
                    SUBI    1
 | 
						|
                    BNE     clearCR_loopy
 | 
						|
%if TIME_SLICING
 | 
						|
                    CALL    realTimeStubAddr
 | 
						|
%endif
 | 
						|
                    LDWI    printInit
 | 
						|
                    CALL    giga_vAC                        ; re-initialise the SYS registers
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 | 
						|
 | 
						|
                    ; print from top row to bottom row, then start scrolling 
 | 
						|
newLineScroll       LDI     giga_CursorX                    ; cursor x start
 | 
						|
                    ST      cursorXY
 | 
						|
                    ST      giga_sysArg4
 | 
						|
                    LDI     ENABLE_SCROLL_BIT
 | 
						|
                    ANDW    miscFlags
 | 
						|
                    BNE     newLS_cont0                     ; is scroll on or off?
 | 
						|
                    RET
 | 
						|
                    
 | 
						|
newLS_cont0         PUSH
 | 
						|
                    LDI     ON_BOTTOM_ROW_BIT
 | 
						|
                    ANDW    miscFlags                       ; is on bottom row flag?
 | 
						|
                    BNE     newLS_cont1
 | 
						|
                    LD      cursorXY + 1
 | 
						|
                    ADDI    giga_yfont
 | 
						|
                    ST      cursorXY + 1
 | 
						|
                    SUBI    giga_yres
 | 
						|
                    BLT     newLS_exit
 | 
						|
                    LDI     giga_yres - giga_yfont
 | 
						|
                    ST      cursorXY + 1
 | 
						|
                    
 | 
						|
newLS_cont1         LDWI    clearCursorRow
 | 
						|
                    CALL    giga_vAC
 | 
						|
                    LDWI    giga_videoTable
 | 
						|
                    STW     scanLine
 | 
						|
 | 
						|
%if TIME_SLICING
 | 
						|
newLS_scroll        CALL    realTimeStubAddr
 | 
						|
                    LDW     scanLine
 | 
						|
%else
 | 
						|
newLS_scroll        LDW     scanLine
 | 
						|
%endif
 | 
						|
                    PEEK
 | 
						|
                    ADDI    giga_yfont
 | 
						|
                    ANDI    0x7F
 | 
						|
                    SUBI    giga_yfont
 | 
						|
                    BGE     newLS_adjust
 | 
						|
                    ADDI    giga_yfont
 | 
						|
                    
 | 
						|
newLS_adjust        ADDI    giga_yfont
 | 
						|
                    POKE    scanLine
 | 
						|
                    INC     scanLine                        ; scanline pointers are 16bits
 | 
						|
                    INC     scanLine
 | 
						|
                    LD      scanLine
 | 
						|
                    SUBI    0xF0                            ; scanline pointers end at 0x01EE
 | 
						|
                    BLT     newLS_scroll
 | 
						|
                    
 | 
						|
                    LDI     ON_BOTTOM_ROW_BIT
 | 
						|
                    ORW     miscFlags
 | 
						|
                    STW     miscFlags                       ; set on bottom row flag
 | 
						|
                    
 | 
						|
newLS_exit          LDWI    printInit
 | 
						|
                    CALL    giga_vAC                        ; re-initialise the SYS registers
 | 
						|
                    POP
 | 
						|
                    RET
 | 
						|
 |