Changeset 7


Ignore:
Timestamp:
Jul 25, 2009, 1:04:06 AM (10 years ago)
Author:
brandonlw
Message:

More equate-fixing and interrupt code cleanup

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/os2.inc

    r6 r7  
    8484;           System and State Flags 
    8585;====================================================================== 
    86 apdFlags      EQU    08h    ;Automatic Power Down 
    87 apdAble       EQU    2      ;1=APD enabled 
    88 apdRunning    EQU    3      ;1=APD clock running 
     86apdFlags             EQU    08h    ;Automatic Power Down 
     87apdAble              EQU    2      ;1=APD enabled 
     88apdRunning           EQU    3      ;1=APD clock running 
     89 
     90interruptFlags       EQU    16h 
     91enableHW2Timer       EQU    0      ;1=enable second hardware timer 
     92skipHW2Timer         EQU    1      ;1=skip this firing of HW timer 2 (makes it last a little longer) 
     93batteriesGood        EQU    2      ;1=batteries are good 
     94 
     95linkKeyFlags         EQU    18h 
     96hw2TimerSkipped      EQU    2      ;1=this firing of HW 2 timer skipped (state of skipHW2Timer,(iy+interruptFlags) 
    8997 
    9098;---------------------------------------------------------------------- 
    9199;           Available for Assembly Programming 
    92100;---------------------------------------------------------------------- 
    93 asm_Flag1     EQU  33 
    94 asm_Flag2     EQU  34 
    95 asm_Flag3     EQU  35 
     101asm_Flag1     EQU  21h 
     102asm_Flag2     EQU  22h 
     103asm_Flag3     EQU  23h 
    96104 
    97105;====================================================================== 
     
    28432851 
    28442852;====================================================================== 
     2853; Status Equates 
     2854;====================================================================== 
     2855statusPort           EQU    02h 
     2856statusBatteriesGood  EQU    0 
     2857statusIs83PHardware  EQU    1 ;reset if running on TI-73 
     2858statusFlashUnlocked  EQU    2 
     2859statusIs84PHardware  EQU    5 
     2860statusIsSE84P        EQU    7 
     2861 
     2862;====================================================================== 
    28452863; Interrupt Equates 
    28462864;====================================================================== 
     
    28612879INT_TRIGGER_TIMER2   EQU    6 
    28622880INT_TRIGGER_TIMER3   EQU    7 
     2881;Write values for port 4 
     2882STATE_MODE0_DEFAULT  EQU    06h 
    28632883 
    28642884;====================================================================== 
  • trunk/page00/boot.asm

    r6 r7  
    159159       ei 
    160160       reti 
     161secondHardwareTimerTriggered: 
     162;This only fires when 0,(iy+16h) is set, and that's only done by _GetKey. 
     163       ld a,INTERRUPT_MASK_HW2 
     164       bit enableHW2Timer,(iy+interruptFlags) 
     165       jr z,interruptReturnA 
     166       ld a,(iy+interruptFlags) 
     167       xor skipHW2Timer ;toggles skipHW2Timer bit 
     168       ld (iy+interruptFlags),a 
     169       bit skipHW2Timer,(iy+interruptFlags) 
     170       jr nz,shtt1 
     171;Set the battery state 
     172       set batteriesGood,(iy+interruptFlags) 
     173       in a,(statusPort) 
     174       bit statusBatteriesGood,a 
     175       jr nz,$F 
     176       res batteriesGood,(iy+interruptFlags) 
     177$$:    ld a,STATE_MODE0_DEFAULT 
     178       out (interruptStatusPort),a 
     179       res hw2TimerSkipped,(iy+linkKeyFlags) 
     180       res enableHW2Timer,(iy+interruptFlags)    ;disable HW2 timer, we're done 
     181       ld a,INTERRUPT_MASK_POWER+INTERRUPT_MASK_ON 
     182       jr interruptReturnA 
     183shtt1: set hw2TimerSkipped,(iy+linkKeyFlags) 
     184       ld a,STATE_MODE0_DEFAULT 
     185       out (interruptStatusPort),a 
     186       ;Why we do this again, I'm not sure. 
     187       ld a,STATE_MODE0_DEFAULT 
     188       out (interruptStatusPort),a 
     189       ld a,INTERRUPT_MASK_POWER+INTERRUPT_MASK_ON 
     190       push af 
     191       ld a,INTERRUPT_MASK_POWER 
     192       out (interruptEnPort),a 
     193       pop af 
     194       out (interruptEnPort),a 
     195       jr interruptReturnEnableTimer2 
    161196 
    162197firstCrystalTimerExpired: 
     
    377412       nop 
    378413       jr rp1_2 
    379 secondHardwareTimerTriggered: 
    380 ;This only fires when 0,(iy+16h) is set, and that's only done by _GetKey. 
    381        ld a,4 
    382        bit 0,(iy+16h) 
    383        jr z,interruptReturnA 
    384        ld a,(iy+16h) 
    385        xor 00000010b 
    386        ld (iy+16h),a 
    387        bit 1,(iy+16h) 
    388        jr nz,shtt1 
    389        set 2,(iy+16h) 
    390        in a,(2) 
    391        bit 0,a 
    392        jr nz,$F 
    393        res 2,(iy+16h) 
    394 $$:    ld a,6 
    395        out (4),a 
    396        res 2,(iy+18h) 
    397        res 0,(iy+16h) 
    398        set 7,(iy+33h) 
    399        ld a,9 
    400        jr interruptReturnA 
    401 shtt1: set 2,(iy+18h) 
    402        ld a,6 
    403        out (4),a 
    404        ld a,6 
    405        out (4),a 
    406        ld a,9 
    407        push af 
    408        ld a,8 
    409        out (3),a 
    410        pop af 
    411        out (3),a 
    412        jr interruptReturnEnableTimer2 
    413414linkActivityDetected: 
    414415       res 3,(iy+12h) 
Note: See TracChangeset for help on using the changeset viewer.