Changeset 15


Ignore:
Timestamp:
Jul 25, 2009, 6:00:13 PM (10 years ago)
Author:
brandonlw
Message:

In theory we can now initiate an OS transfer via silent linking, making testing much easier for me since I don't have to deal with TI OSDownloader

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/os2.inc

    r14 r15  
    3636;====================================================================== 
    3737_WriteAByte                 EQU 8021h 
     38_ReceiveOS                  EQU 8072h 
    3839_DispBootVer                EQU 808Ah 
     40_MD5Init                    EQU 808Dh 
     41_GetBootVer                 EQU 80B7h 
    3942_GetHWVer                   EQU 80BAh 
     43_WriteFlash                 EQU 80C9h 
    4044 
    4145;====================================================================== 
     
    4751; 
    4852ramCodeEnd                  EQU    822Fh 
     53; 
     54appSearchPage               EQU    82A3h 
     55; 
     56Abackup                     EQU    83EBh 
     57; 
     58arcInfo                     EQU    83EEh 
    4959; 
    5060kbdScanCode                 EQU    843Fh 
     
    7484; 
    7585ioData                      EQU    867Dh 
     86; 
     87ioNewData                   EQU    8689h 
    7688; 
    7789errNo                       EQU    86DDh 
  • trunk/page01/01base.asm

    r13 r15  
    3737       jr GetKeyMainLoop 
    3838receivingData: 
     39       ld hl,(curRow) 
     40       push hl 
     41       ld hl,2 
     42       ld (curRow),hl 
    3943       B_CALL keyscnlnk 
     44       pop hl 
     45       ld (curRow),hl 
    4046       ld a,(kbdKey) 
    4147       or a 
  • trunk/page1C/1Cbase.asm

    r14 r15  
    7474       inc hl 
    7575       ld a,(header+1) 
     76       call DispHexA 
    7677$$:    cp (hl) 
    7778       inc hl 
     
    8182       djnz $B 
    8283       call DispHexA 
    83        di 
    84        halt 
    85        jp JErrorNo 
    86 $$:    call LdHLInd 
    87        jp (hl) 
     84       jp JErrorNo 
     85$$:    jp (hl) 
    8886sendAcknowledgeEnd: 
    8987       call SendAcknowledge 
     
    117115       DB 2Dh 
    118116       DW sendInfoPacket 
     117       DB 06h 
     118       DW receivedVariableHeader 
    119119cmdTableEnd: 
     120 
     121receivedVariableHeader: 
     122       ld a,1 
     123       call DispHexA 
     124       call ReceiveHeaderPacket 
     125       ld a,(867Fh) 
     126       cp 23h 
     127       jr z,receivingOS 
     128       ld de,1 
     129       ld a,0Ch 
     130       call SendSkipExitPacket 
     131       jr keyscnlnkEnd 
     132receivingOS: 
     133       call EnableLinkAssist 
     134       ld a,0FFh 
     135       ld (appSearchPage),a 
     136       xor a 
     137       ld (ramCodeEnd),a 
     138       ld (83A4h),a 
     139       B_CALL MD5Init 
     140       B_CALL ReceiveOS 
    120141 
    121142sendInfoPacket: 
     
    130151       ld (hl),OS2_VERSION_MINOR 
    131152       inc hl 
     153       B_CALL GetBootVer 
     154       ld (hl),a 
     155       inc hl 
     156       ld (hl),b 
     157       inc hl 
    132158       ld (hl),2 
    133159       inc hl 
     
    149175       jr keyscnlnkEnd 
    150176SendCommandA: 
    151        ld de,ioData 
    152177       ex de,hl 
     178       ld hl,ioData 
    153179SendACommand: 
    154180       ld b,0 
     
    209235       jr SendCByte 
    210236 
     237SendSkipExitPacket: 
     238       ld hl,867Ch 
     239       ld (hl),a 
     240       ld a,36h 
     241       jr SendACommand 
     242 
     243ReceiveHeaderPacket: 
     244       xor a 
     245       ld (ioNewData-1),a 
     246       ld (ioNewData),a 
     247       ld hl,ioData 
     248       jr $F 
     249ReceiveDataPacket: 
     250       ld (iMathPtr5),de 
     251       push bc 
     252       call Get4BytesNC 
     253       pop bc 
     254       ld hl,ioFlag 
     255       ld a,(header+1) 
     256       jp nz,JErrorNo 
     257       ld hl,(header+2) 
     258       or a 
     259       sbc hl,bc 
     260       jp nz,JErrorNo 
     261       jr receiveRestOfDataPacket 
     262GetSmallDataPacket: 
     263       ld hl,ioData-1 
     264$$:    ld (iMathPtr5),hl 
     265       ld hl,(header+2) 
     266       ld de,15 
     267       or a 
     268       sbc hl,de 
     269       jr c,$F 
     270       jp JErrorNo 
     271receiveRestOfDataPacket: 
     272       ld bc,(header+2) 
     273       ld de,0 
     274       ld (header+4),de 
     275       ld a,b 
     276       or c 
     277       jr z,receiveDataDone 
     278       ld hl,pagedBuf 
     279       ld (pagedGetPtr),hl 
     280       xor a 
     281       ld (pagedCount),a 
     282       ld hl,(iMathPtr5) 
     283receiveDataLoop: 
     284       in a,(4) 
     285       bit 3,a 
     286       jr z,JErrorNo 
     287       push bc 
     288       call RecAByteIO 
     289       bit 7,h 
     290       jr nz,$F 
     291       push hl 
     292       ld hl,(pagedGetPtr) 
     293       ld (hl),a 
     294       inc hl 
     295       ld (pagedGetPtr),hl 
     296       pop hl 
     297       ld a,(pagedCount) 
     298       inc a 
     299       ld (pagedCount),a 
     300       cp 16 
     301       call z,SaveFlashBytes 
     302       jr receiveDataContinue 
     303$$:    ld (hl),a 
     304       inc hl 
     305receiveDataContinue: 
     306       ex de,hl 
     307       ld b,0 
     308       ld hl,(header+4) 
     309       add hl,bc 
     310       ld (header+4),hl 
     311       ex de,hl 
     312       pop bc 
     313       dec bc 
     314       ld a,b 
     315       or c 
     316       jr nz,receiveDataLoop 
     317       ld a,(pagedCount) 
     318       or a 
     319       call nz,SaveFlashBytes 
     320receiveDataDone: 
     321       call RecAByteIO 
     322       push af 
     323       call RecAByteIO 
     324       ld b,a 
     325       pop af 
     326       call ValidateChecksum 
     327       jr SendAcknowledge 
     328ValidateChecksum: 
     329       ld c,a 
     330       in a,(statusPort) 
     331       and STATUS_NON_83P_MASK 
     332       jr z,vcNotSE 
     333       in a,(speedPort) 
     334       and 1 
     335       jr z,vcNotSE 
     336       xor a 
     337       out (speedPort),a 
     338       ld de,0FEh 
     339$$:    dec de 
     340       ld a,d 
     341       or e 
     342       jr nz,$B 
     343       ld a,1 
     344       out (20h),a 
     345       jr $F 
     346vcNotSE: 
     347       ld de,100h 
     348$$:    dec de 
     349       ld a,d 
     350       or e 
     351       jr nz,$B 
     352$$:    ld hl,(header+4) 
     353       or a 
     354       sbc hl,bc 
     355       jr nz,$F 
     356       ret 
     357$$:    ld hl,(header+2) 
     358       push hl 
     359       ld h,5Ah 
     360       call SendHCommand 
     361       jp JErrorNo 
     362SendHCommand: 
     363       set indicOnly,(iy+indicFlags) 
     364       call MachineIDToL 
     365       ld (header),hl 
     366       di 
     367       call Send4Bytes 
     368       ei 
     369       jr ReceiveAcknowledge 
     370SaveFlashBytes: 
     371       push bc 
     372       push de 
     373       push hl 
     374       ld a,(pagedCount) 
     375       ld c,a 
     376       xor a 
     377       ld (pagedCount),a 
     378       ld hl,pagedBuf 
     379       ld (pagedGetPtr),hl 
     380       ld de,(iMathPtr5) 
     381       ld a,(arcInfo) 
     382       push de 
     383       ld (Abackup),a 
     384       ld a,i 
     385       jp pe,$F 
     386       ld a,i 
     387$$:    di 
     388       push af 
     389       ld a,(Abackup) 
     390       push af 
     391       ld a,1 
     392       nop 
     393       di 
     394       nop 
     395       nop 
     396       im 1 
     397       di 
     398       out (14h),a 
     399       di 
     400       pop af 
     401       ld b,0 
     402       B_CALL WriteFlash 
     403       call LockFlash 
     404       ld (Abackup),a 
     405       pop af 
     406       jp po,$F 
     407       ei 
     408$$:    ld a,(83EBh) 
     409       ld (iMathPtr5),de 
     410       pop hl 
     411       or a 
     412       sbc hl,de 
     413       jr c,$F 
     414       ld a,(arcInfo) 
     415       inc a 
     416       ld (arcInfo),a 
     417$$:    pop hl 
     418       pop de 
     419       pop bc 
     420       ret 
     421 
    211422Get3Bytes: 
    212423       ld (header),a 
     
    256467       call RecAByteIO 
    257468       ld (header+3),a 
     469       ld a,(header+1) 
    258470       ret 
    259471 
Note: See TracChangeset for help on using the changeset viewer.