Changeset 10


Ignore:
Timestamp:
Jul 25, 2009, 5:01:09 AM (10 years ago)
Author:
brandonlw
Message:

Spread out util.asm some

Location:
trunk
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/OS2.zws

    r4 r10  
    2424#end 
    2525 
    26 [EMULATOR] 
    27 #begin 
    28 NAME = Not Available 
    29 #end 
    30  
    3126[PRJ PATH] 
    3227#begin 
     
    3732#begin 
    3833SOURCE = page00\boot.asm 
     34SOURCE = page00\intmisc.asm 
     35SOURCE = page00\display.asm 
     36SOURCE = page00\input.asm 
     37SOURCE = page00\hooks.asm 
    3938SOURCE = page00\util.asm 
    4039SOURCE = page00\jumptable.asm 
  • trunk/includes/os2.inc

    r9 r10  
    2626; OS2 Entry Points 
    2727;====================================================================== 
    28 _keyscnlnk    EQU 4A1Ah 
    29 _getKey       EQU 4972h 
     28_keyscnlnk                  EQU 4A1Ah 
     29_getKey                     EQU 4972h 
     30_UnlockFlash                EQU 7000h 
    3031 
    3132;====================================================================== 
     
    157158echoKeyRemotely             EQU    5      ;1=echo keypresses back through linkport as remote control requests 
    158159intBattCheckComplete        EQU    7      ;1=second hardware timer code has set battery state 
     160 
     161;====================================================================== 
     162; I/O Equates                                                           
     163;====================================================================== 
     164bport                EQU    0      ;4-BIT LINK PORT (I/O) (or so TI says) 
     165D0D1_bits            EQU    03h 
     166D0LD1L               EQU    03h 
     167D0LD1H               EQU    01h 
     168D0HD1L               EQU    02h 
     169D0HD1H               EQU    00h 
     170usbStatusPort        EQU    55h 
     171usbEventPort         EQU    56h 
     172laEnPort             EQU    08h 
     173laStatusPort         EQU    09h 
     174laReceivePort        EQU    0Ah 
     175laSendPort           EQU    0Dh 
     176 
     177;====================================================================== 
     178; Status Equates 
     179;====================================================================== 
     180statusPort           EQU    02h 
     181statusBatteriesGood  EQU    0 
     182statusIs83PHardware  EQU    1 ;reset if running on TI-73 
     183statusFlashUnlocked  EQU    2 
     184statusIs84PHardware  EQU    5 
     185statusIsSE84P        EQU    7 
     186STATUS_NON_83P_MASK  EQU    80h 
     187 
     188;====================================================================== 
     189; Interrupt Equates 
     190;====================================================================== 
     191interruptEnPort      EQU    3             ;interrupt enable 
     192iNormal              EQU    1011b 
     193INTERRUPT_MASK_ON    EQU    00000001b 
     194INTERRUPT_MASK_HW1   EQU    00000010b 
     195INTERRUPT_MASK_HW2   EQU    00000100b 
     196INTERRUPT_MASK_POWER EQU    00001000b 
     197INTERRUPT_MASK_LINK  EQU    00010000b 
     198interruptStatusPort  EQU    4             ;interrupt status 
     199INT_TRIGGER_ON       EQU    0 
     200INT_TRIGGER_HW1      EQU    1 
     201INT_TRIGGER_HW2      EQU    2 
     202INT_STATUS_ON        EQU    3 
     203INT_STATUS_ON_MASK   EQU    8 
     204INT_TRIGGER_LINK     EQU    4 
     205INT_TRIGGER_TIMER1   EQU    5 
     206INT_TRIGGER_TIMER2   EQU    6 
     207INT_TRIGGER_TIMER3   EQU    7 
     208;Write values for port 4 
     209STATE_MODE0_DEFAULT  EQU    06h 
     210 
     211;====================================================================== 
     212; Memory Paging Equates 
     213;====================================================================== 
     214memModePort          EQU    4 
     215memPageAPort         EQU    6 ;bank 1 
     216memPageBPort         EQU    7 ;bank 2 
     217memPageCPort         EQU    5 ;bank 3 
     218 
     219;====================================================================== 
     220; LCD Driver Equates 
     221;====================================================================== 
     222LCDinstPort                 EQU    10h 
     223lcd8BitMode                 EQU    01h 
     224lcdTurnOff                  EQU    02h 
     225lcdTurnOn                   EQU    03h 
     226lcdXAutoIncrementMode       EQU    05h 
     227LCDdataPort                 EQU    11h 
     228 
     229;====================================================================== 
     230; Other Port Equates 
     231;====================================================================== 
     232speedPort            EQU    20h 
    159233 
    160234;====================================================================== 
     
    28942968 
    28952969;====================================================================== 
    2896 ; I/O Equates                                                           
    2897 ;====================================================================== 
    2898 bport                EQU    0      ;4-BIT LINK PORT (I/O) (or so TI says) 
    2899 D0D1_bits            EQU    03h 
    2900 D0LD1L               EQU    03h 
    2901 D0LD1H               EQU    01h 
    2902 D0HD1L               EQU    02h 
    2903 D0HD1H               EQU    00h 
    2904 usbStatusPort        EQU    55h 
    2905 usbEventPort         EQU    56h 
    2906 laEnPort             EQU    08h 
    2907 laStatusPort         EQU    09h 
    2908 laReceivePort        EQU    0Ah 
    2909 laSendPort           EQU    0Dh 
    2910  
    2911 ;====================================================================== 
    2912 ; Status Equates 
    2913 ;====================================================================== 
    2914 statusPort           EQU    02h 
    2915 statusBatteriesGood  EQU    0 
    2916 statusIs83PHardware  EQU    1 ;reset if running on TI-73 
    2917 statusFlashUnlocked  EQU    2 
    2918 statusIs84PHardware  EQU    5 
    2919 statusIsSE84P        EQU    7 
    2920 STATUS_NON_83P_MASK  EQU    80h 
    2921  
    2922 ;====================================================================== 
    2923 ; Interrupt Equates 
    2924 ;====================================================================== 
    2925 interruptEnPort      EQU    3             ;interrupt enable 
    2926 iNormal              EQU    1011b 
    2927 INTERRUPT_MASK_ON    EQU    00000001b 
    2928 INTERRUPT_MASK_HW1   EQU    00000010b 
    2929 INTERRUPT_MASK_HW2   EQU    00000100b 
    2930 INTERRUPT_MASK_POWER EQU    00001000b 
    2931 INTERRUPT_MASK_LINK  EQU    00010000b 
    2932 interruptStatusPort  EQU    4             ;interrupt status 
    2933 INT_TRIGGER_ON       EQU    0 
    2934 INT_TRIGGER_HW1      EQU    1 
    2935 INT_TRIGGER_HW2      EQU    2 
    2936 INT_STATUS_ON        EQU    3 
    2937 INT_STATUS_ON_MASK   EQU    8 
    2938 INT_TRIGGER_LINK     EQU    4 
    2939 INT_TRIGGER_TIMER1   EQU    5 
    2940 INT_TRIGGER_TIMER2   EQU    6 
    2941 INT_TRIGGER_TIMER3   EQU    7 
    2942 ;Write values for port 4 
    2943 STATE_MODE0_DEFAULT  EQU    06h 
    2944  
    2945 ;====================================================================== 
    2946 ; Memory Paging Equates 
    2947 ;====================================================================== 
    2948 memModePort          EQU    4 
    2949 memPageAPort         EQU    6 ;bank 1 
    2950 memPageBPort         EQU    7 ;bank 2 
    2951 memPageCPort         EQU    5 ;bank 3 
    2952  
    2953 ;====================================================================== 
    2954 ; LCD Driver Equates 
    2955 ;====================================================================== 
    2956 LCDinstPort                 EQU    10h 
    2957 lcd8BitMode                 EQU    01h 
    2958 lcdTurnOff                  EQU    02h 
    2959 lcdTurnOn                   EQU    03h 
    2960 lcdXAutoIncrementMode       EQU    05h 
    2961 LCDdataPort                 EQU    11h 
    2962  
    2963 ;====================================================================== 
    2964 ; Other Port Equates 
    2965 ;====================================================================== 
    2966 speedPort            EQU    20h 
    2967  
    2968 ;====================================================================== 
    29692970;       Graph style definitions 
    29702971;====================================================================== 
  • trunk/page00/util.asm

    r9 r10  
    22 SEGMENT PAGE00 
    33 
    4  PUBLIC PutS,PutC,ifastcopy,CallUSBActivityHook,CheckLowBatteriesTurnOff,_ZERO_PORT_3,_OUT_PORT_3 
    54 PUBLIC _APP_PUSH_ERRORH,_APP_POP_ERRORH,FindSym,PushRealO1,Mov9ToOP1,FPAdd,OP1ToOP2,LCDDelay 
    65 PUBLIC Placeholder005Fh,Placeholder0006h,Placeholder004Eh,Placeholder0003h,Placeholder0035h 
    7  PUBLIC outputPage,NZIf83Plus,AnimateRunIndicator,UpdateAPD,PowerOff,GetCSC 
    8  PUBLIC DispHexA,DispHexHL,IPutC,ReadKeyboardKey,BCALL,BJUMP,JErrorNo 
    9  PUBLIC curBlink,resetAPDTimer,SaveOScreen,RunLinkActivityHook,HandleLinkKeyActivity 
    10  EXTERN Page0Call 
     6 PUBLIC outputPage,NZIf83Plus,ZIfSlowSpeed,GetBytePaged,MakeOffPageCall 
     7 PUBLIC BCALL,BJUMP,JErrorNo 
     8 EXTERN Page0Call,UpdateAPD,PowerOff,GetCSC 
    119 
    1210 include "includes\os2.inc" 
     
    2725       ret 
    2826 
    29 HandleLinkKeyActivity: 
    30        nop 
    31        nop 
    32        di 
    33        push af 
    34        call NZIf83Plus 
    35        jr nz,eiHaltRet 
    36        in a,(laStatusPort) 
    37        and 11011001b ;in the middle of any transmissions? 
    38        jr z,eiHaltRet 
    39        bit 6,a 
    40        call nz,setLinkAssistError 
    41        pop af 
    42        ei 
    43        ret 
    44 eiHaltRet: 
    45        pop af 
    46        ei 
    47        halt 
    48        ret 
    49 $$:    pop af 
    50        ei 
    51        ret 
    52 setLinkAssistError: 
    53        set linkAssistError,(iy+linkAssistStatusFlags) 
    54        ret 
    55  
    5627BCALL: 
    5728       push hl 
     
    189160       ret 
    190161        
    191 ReadKeyboardKey: 
    192        call ReadKeypad 
    193        jr nc,$F 
    194        ld a,0FFh 
    195        ld (8441h),a 
    196        ld a,5 
    197        ld (8443h),a 
    198        ret 
    199 $$:    ld hl,8441h 
    200        cp (hl) 
    201        ld hl,8443h 
    202        jr z,$F 
    203        ld (8441h),a 
    204        ld (hl),5 
    205 $$:    or a 
    206        jr nz,$F 
    207        dec (hl) 
    208        ret nz 
    209        inc (hl) 
    210 $$:    ld hl,8440h 
    211        cp (hl) 
    212        jr nz,rkk1 
    213        or a 
    214        ret z 
    215        cp 0F3h 
    216        jr nc,$F 
    217        cp 38h 
    218        jr z,$F 
    219        cp 5 
    220        ret nc 
    221 $$:    ld hl,8442h 
    222        dec (hl) 
    223        ret nz 
    224        ld (hl),0Ah 
    225        jr setKbdKey 
    226 rkk1:  call setKbdKey 
    227        or a 
    228        jr z,$F 
    229        set 4,(iy+0) 
    230 $$:    ld (hl),a 
    231        ld a,32h 
    232        ld (8442h),a 
    233        ret 
    234 setKbdKey: 
    235        ld (843Fh),a 
    236        set 3,(iy+0) 
    237        or a 
    238        ret z 
    239        ld (8445h),a 
    240        ret 
    241 ReadKeypad: 
    242        sub a 
    243        call ReadPort1 
    244        xor 0FFh 
    245        ret z 
    246        ld hl,0 
    247        ld c,0FEh 
    248        ld d,1 
    249 rk1:   ld a,c 
    250        bit 0,(iy+2Ch) 
    251        jr z,$F 
    252        cp 0FEh 
    253        jr nz,$F 
    254        call ReadPort1 
    255        cp 0F5h 
    256        ret z 
    257        cp 0F3h 
    258        ret z 
    259        cp 0FAh 
    260        ret z 
    261        cp 0FCh 
    262        ret z 
    263        jr rk3 
    264 $$:    call ReadPort1 
    265 rk3:   ld e,0 
    266        ld b,8 
    267 rk2:   rla 
    268        jr c,$F 
    269        inc e 
    270        ld l,b 
    271 $$:    djnz rk2 
    272        ld a,e 
    273        or a 
    274        jr z,$F 
    275        cp 2 
    276        jr nc,scfRet 
    277        ld a,h 
    278        or a 
    279        jr nz,scfRet 
    280        ld h,d 
    281 $$:    inc d 
    282        rlc c 
    283        jr c,rk1 
    284        ld a,h 
    285        or a 
    286        ret z 
    287        dec a 
    288        rla 
    289        rla 
    290        rla 
    291        add a,l 
    292        ret 
    293 scfRet:scf 
    294        ret 
    295 ReadPort1: 
    296        push af 
    297        in a,(2) 
    298        and 80h 
    299        jr nz,rp1SE 
    300 rp1_1: pop af 
    301        out (1),a 
    302 rp1_2: nop 
    303        nop 
    304        nop 
    305        nop 
    306        in a,(1) 
    307        ld b,a 
    308        ld a,0FFh 
    309        out (1),a 
    310        ld a,b 
    311        ret 
    312 rp1SE: in a,(20h) 
    313        and 1 
    314        jr z,rp1_1 
    315        pop af 
    316        out (1),a 
    317        nop 
    318        nop 
    319        nop 
    320        jr rp1_2 
    321  
    322 PowerOff: 
    323        ld a,8 
    324        call _OUT_PORT_3 
    325        res 4,(iy+1) 
    326        res 3,(iy+12h) 
    327        res 3,(iy+9) 
    328        ld a,2 
    329        out (10h),a 
    330        ld a,6 
    331        out (4),a 
    332        ld a,11h 
    333        out (3),a 
    334        ex af,af' 
    335        exx 
    336        ei 
    337 $$:    halt 
    338        jr $B 
    339 GetCSC:ld hl,843Fh 
    340        di 
    341        ld a,(hl) 
    342        ld (hl),0 
    343        res 3,(iy+0) 
    344        ei 
    345        ret 
    346  
    347 UpdateAPD: 
    348        ld a,(flags+apdFlags) 
    349        bit apdAble,a 
    350        ret z 
    351        bit apdRunning,a 
    352        ret z 
    353        ld hl,apdSubTimer 
    354        dec (hl) 
    355        ret nz 
    356        inc hl 
    357        dec (hl) 
    358        ret nz 
    359        ld a,lcdTurnOff 
    360        out (LCDinstPort),a 
    361        call SaveOScreen 
    362        res apdRunning,(iy+apdFlags) 
    363        set apdWarmStart,(iy+apdFlags) 
    364        jr PowerOff 
    365  
    366 RunLinkActivityHook: 
    367        push af 
    368        ld hl,LinkActivityHookBlock 
    369        call GetHookByte 
    370        jr z,RunHook 
    371        pop af 
    372        res LinkActivityHookEnabled,(iy+33h) 
    373        ret 
    374 RunHook: 
    375        pop af 
    376        ld (9C22h),a 
    377        in a,(20h) 
    378        push af 
    379        bit 5,(iy+24h) 
    380        call ZIfSlowSpeed 
    381        pop af 
    382        push af 
    383        ld a,(9C22h) 
    384        push hl 
    385        ld hl,9CAEh 
    386        inc (hl) 
    387        ld hl,0DEEh 
    388        ex (sp),hl 
    389        push hl 
    390        ld hl,RunHookRet 
    391        ex (sp),hl 
    392        push hl 
    393        ld hl,9B75h 
    394        ex (sp),hl 
    395        jr Page0Call 
    396 RunHookSafeRet: 
    397        pop af 
    398        push hl 
    399        ld hl,9CAEh 
    400        dec (hl) 
    401        pop hl 
    402        call NZIf83Plus 
    403        jr nz,$F 
    404        and 1 
    405        out (20h),a 
    406 $$:    pop af 
    407        pop af 
    408        pop af 
    409        ret 
    410 RunHookRet: 
    411        push af 
    412        push hl 
    413        ld hl,9CAEh 
    414        dec (hl) 
    415        pop hl 
    416        call NZIf83Plus 
    417        jr nz,$F 
    418        pop af 
    419        ld (9C22h),bc 
    420        pop bc 
    421        pop bc 
    422        push af 
    423        ld a,b 
    424        and 1 
    425        out (20h),a 
    426        pop af 
    427        ld bc,(9C22h) 
    428        ret 
    429 $$:    pop af 
    430        inc sp 
    431        inc sp 
    432        inc sp 
    433        inc sp 
    434        ret 
    435 GetHookByte: 
    436        push bc 
    437        push de 
    438        ld e,(hl) 
    439        inc hl 
    440        ld d,(hl) 
    441        inc hl 
    442        ld a,(hl) 
    443        cp 0FFh 
    444        jr z,$F 
    445        ld (9B77h),a 
    446        ex de,hl 
    447        call GetBytePaged 
    448        inc hl 
    449        ld (9B75h),hl 
    450        ld a,b 
    451 $$:    pop de 
    452        pop bc 
    453        cp 83h 
    454        ret 
    455162ZIfSlowSpeed: 
    456163       jr z,ForceSlowSpeed 
     
    472179       ret 
    473180 
    474 _ZERO_PORT_3: 
    475        sub a 
    476 _OUT_PORT_3: 
    477        push af 
    478        ld a,INTERRUPT_MASK_POWER 
    479        out (interruptEnPort),a 
    480        pop af 
    481        out (interruptEnPort),a 
    482        sub a 
    483        out (31h),a 
    484        out (34h),a 
    485        out (37h),a 
    486        ret 
    487  
    488 CheckLowBatteriesTurnOff: 
    489        ld a,STATE_MODE0_DEFAULT 
    490        out (interruptStatusPort),a 
    491        bit batteriesGood,(iy+interruptFlags) 
    492        ret nz 
    493        xor a 
    494        out (57h),a 
    495        out (5Bh),a 
    496        in a,(54h) 
    497        bit 1,a 
    498        jr nz,$F 
    499        ;ViewScreen attached? Maybe? Not sure. 
    500        ld a,2 
    501        out (54h),a 
    502        xor a 
    503        out (4Ch),a 
    504 $$:    pop hl 
    505        pop hl 
    506        ld a,lcdTurnOff             ;turn off the LCD 
    507        out (LCDinstPort),a 
    508        res enableHW2Timer,(iy+interruptFlags) 
    509        ld hl,0A55Ah                ;set special checksum for power on from forced turnoff 
    510        ld (RAMChecksum),hl 
    511        ld a,INTERRUPT_MASK_ON      ;this is putting the calculator in low power mode 
    512        out (interruptEnPort),a 
    513        res shift2nd,(iy+shiftFlags) 
    514        res onRunning,(iy+onFlags) 
    515        res turnOffIfLowBatteriesFound,(iy+batteryCheckFlags) 
    516        ld a,STATE_MODE0_DEFAULT 
    517        out (interruptStatusPort),a 
    518        xor a 
    519        out (memPageBPort),a 
    520        ei 
    521 $$:    halt 
    522        jr $B 
    523  
    524 SaveOScreen: 
    525 ;Save LCD contents to saveSScreen from APD power-off 
    526 ;TODO: come back to this 
    527        ret 
    528  
    529 AnimateRunIndicator: 
    530        ld hl,indicCounter 
    531        dec (hl) 
    532        ret nz 
    533        ;Animate it 
    534        ld hl,(curRow) 
    535        push hl 
    536        ld hl,6 
    537        ld (curRow),hl 
    538        ld a,(appBackUpScreen+100) 
    539        or a 
    540        jr z,$F 
    541        xor a 
    542        ld (appBackUpScreen+100),a 
    543        ld a,' ' 
    544        call PutC 
    545        pop hl 
    546        ld (curRow),hl 
    547        ret 
    548 $$:    ld a,1 
    549        ld (appBackUpScreen+100),a 
    550        ld a,'B' 
    551        call PutC 
    552        pop hl 
    553        ld (curRow),hl 
    554        ret 
    555  
    556  
    557 CallUSBActivityHook: 
    558        ld hl,USBActivityHookBlock 
    559        ld e,(hl) 
    560        inc hl 
    561        ld d,(hl) 
    562        inc hl 
    563        ld a,(hl) 
    564        cp 0FFh 
    565        jr z,noUSBActivityHook 
    566        push bc 
    567        ld (offPageCallPage),a 
    568        ex de,hl 
    569        call GetBytePaged 
    570        inc hl 
    571        ld a,b 
    572        cp 83h 
    573        pop bc 
    574        jr z,$F 
    575 noUSBActivityHook: 
    576        res USBActivityHookEnabled,(iy+hookFlags4) 
    577        or 1 
    578        ret 
    579 $$:    ld (offPageCallAddress),hl 
    580        call MakeOffPageCall 
    581        ld a,b 
    582        or a 
    583        ret 
    584  
    585181MakeOffPageCall: 
    586182       in a,(memPageAPort) 
     
    641237       ret 
    642238 
    643 PutS: 
    644        ld a,(hl) 
    645        or a 
    646        ret z 
    647        call PutC 
    648        inc hl 
    649        jr PutS 
    650  
    651 PutC: 
    652        ld b,a 
    653        in a,(6) 
    654        push af 
    655        ld a,7Fh 
    656        out (6),a 
    657        push hl 
    658        ex (sp),hl 
    659        ld hl,PutC_ret 
    660        ex (sp),hl 
    661        push hl 
    662        ld hl,408Ah 
    663        ld e,(hl) 
    664        inc hl 
    665        ld d,(hl) 
    666        ld hl,10 
    667        add hl,de 
    668        ld e,(hl) 
    669        inc hl 
    670        ld d,(hl) 
    671        ex de,hl 
    672        push bc 
    673        ld a,0CDh 
    674        ld bc,0FFFFh 
    675        cpir 
    676        pop af 
    677        ld e,(hl) 
    678        inc hl 
    679        ld d,(hl) 
    680        push de 
    681        pop ix 
    682        pop hl 
    683        jp (ix) 
    684 PutC_ret: 
    685        pop bc 
    686        ld a,b 
    687        out (6),a 
    688        ret 
    689  
    690 ifastcopy: 
    691        di 
    692        ld a,80h 
    693        out (10h),a 
    694        ld hl,9340h-12-(-(12*64)+1) 
    695 ifastcopy_start: 
    696        ld a,20h 
    697        ld c,a 
    698        inc hl 
    699        dec hl 
    700 fastCopyAgain: 
    701        ld b,64 
    702        inc c 
    703        ld de,-(12*64)+1 
    704        out (10h),a 
    705        add hl,de 
    706        ld de,10 
    707 fastCopyLoop: 
    708        add hl,de 
    709        inc hl 
    710        inc hl 
    711        inc de 
    712        ld a,(hl) 
    713        out (11h),a 
    714        dec de 
    715        djnz fastCopyLoop 
    716        ld a,c 
    717        cp 2Ch 
    718        jr nz,fastCopyAgain 
    719        ret 
    720  
    721 DispHexHL: 
    722        push af 
    723        push bc 
    724        push de 
    725        push hl 
    726        push ix 
    727        ld a,h 
    728        call DispHexA 
    729        ld a,l 
    730        call DispHexA 
    731        pop ix 
    732        pop hl 
    733        pop de 
    734        pop bc 
    735        pop af 
    736        ret 
    737  
    738 DispHexA: 
    739        push de 
    740        push ix 
    741        push af 
    742        push hl 
    743        push bc 
    744        push af 
    745        rrca 
    746        rrca 
    747        rrca 
    748        rrca 
    749        call dispha 
    750        pop af 
    751        call dispha 
    752        pop bc 
    753        pop hl 
    754        pop af 
    755        pop ix 
    756        pop de 
    757        ret 
    758 dispha:and 15 
    759        cp 10 
    760        jr nc,dhlet 
    761        add a,48 
    762        jr dispdh 
    763 dhlet: add a,55 
    764 dispdh:call IPutC 
    765        ret 
    766  
    767 IPutC: 
    768        push af 
    769        push bc 
    770        push de 
    771        push hl 
    772        push ix 
    773        call PutC 
    774        pop ix 
    775        pop hl 
    776        pop de 
    777        pop bc 
    778        pop af 
    779        ret 
    780  
    781 curBlink: 
    782        ld hl,844Ah 
    783        dec (hl) 
    784        ret nz 
    785        push af 
    786        in a,(3) 
    787        push af 
    788        ld a,8 
    789        out (3),a 
    790        pop af 
    791        out (3),a 
    792        pop af 
    793        bit 3,(iy+0Ch) 
    794        jr z,cursorNotShowing 
    795        push af 
    796        ld a,32h 
    797        ld (844Ah),a 
    798        pop af 
    799        bit 3,(iy+0Ch) 
    800        ret z 
    801        push af 
    802        bit 5,(iy+0Dh) 
    803        jr z,$F 
    804        ;call  
    805        jr curBlinkDone 
    806 $$:    bit 6,(iy+0Dh) 
    807        jr z,$F 
    808        push ix 
    809        or a 
    810        ;call 
    811        pop ix 
    812        jr curBlinkDone 
    813 $$:    ld a,(curUnder) 
    814        ld hl,(curRow) 
    815        push hl 
    816        call PutC 
    817        pop hl 
    818        ld (curRow),hl 
    819 curBlinkDone: 
    820        res 3,(iy+0Ch) 
    821        pop af 
    822        ret 
    823 cursorNotShowing: 
    824        bit 2,(iy+0Ch) 
    825        ret z 
    826        push af 
    827        push de 
    828        push hl 
    829        push ix 
    830        ld a,32h 
    831        ld (curTime),a 
    832        bit 5,(iy+0Dh) 
    833        jr z,$F 
    834        ;call 
    835        jr curBlink2Done 
    836 $$:    bit 6,(iy+0Dh) 
    837        jr z,$F 
    838        push ix 
    839        ld ix,(97A3h) 
    840        scf 
    841        ;call  
    842        pop ix 
    843        jr curBlink2Done 
    844 $$:    bit 3,(iy+0Ch) 
    845        jr nz,$F 
    846        ;Stuff? 
    847 $$:    call IsAtEditTail 
    848        jr nz,atEditTail 
    849        bit 4,(iy+5) 
    850        jr nz,$F 
    851        call IsAtBtm 
    852        jr z,$F 
    853        ld a,(de) 
    854        cp 3Fh 
    855        jr nz,atEditTail 
    856 $$:    ld a,0F1h 
    857        jr dispChar 
    858 atEditTail: 
    859        ld a,0E0h 
    860        bit 4,(iy+5) 
    861        jr z,$F 
    862        add a,4 
    863 $$:    ld h,(iy+12h) 
    864        bit 3,h 
    865        jr z,$F 
    866        inc a 
    867        jr dispChar 
    868 $$:    bit 4,h 
    869        jr z,dispChar 
    870        add a,2 
    871        bit 5,h 
    872        jr z,dispChar 
    873        inc a 
    874 dispChar: 
    875        ld b,a 
    876        ld a,(curRow) 
    877        or a 
    878        ld a,b 
    879        jr nz,$F 
    880        nop 
    881 $$:    ld hl,(curRow) 
    882        push hl 
    883        call PutC 
    884        pop hl 
    885        ld (curRow),hl 
    886 curBlink2Done: 
    887        set 3,(iy+0Ch) 
    888        pop ix 
    889        pop hl 
    890        pop de 
    891        pop af 
    892        ret 
    893  
    894 IsAtEditTail: 
    895        ld hl,(editCursor) 
    896        ld de,(editTail) 
    897 cphlde:push hl 
    898        or a 
    899        sbc hl,de 
    900        pop hl 
    901        ret 
    902  
    903 IsAtBtm: 
    904        ld de,(editTail) 
    905        ld hl,(editBtm) 
    906        jr cphlde 
    907  
    908 resetAPDTimer: 
    909        ld hl,apdTimer 
    910        ld (hl),74h 
    911        ret 
    912  
Note: See TracChangeset for help on using the changeset viewer.