; on the next line we define a string constant #def gsm_cmdrg=0xA04; #def endp1=0xF100; lp: jmpr cc_uncond, 0 nop org 0x100 test: nop #ifdef cpu3 sem b0111 #else nop #endif ; later gsm_cmdrg will be used instead of 0x0A04 ; mov b1110, r6 ; sgio r6, 0x0A3F ; arbiter timing mov 0, r13 ; multhi mov 0, r10 ; errors iext 0xF000 ; mov 0xF000, r14 ; nop read: ; read A lgio+ 0 ; jmpr cc_busy, 0 ; lpio 0x300, r1 ; A ; read B lgio+ 1 ; jmpr cc_busy, 0 ; lpio 0x301, r2 ; B ; read D lgio+ 0 ; jmpr cc_busy, 0 ; lpio 0x300, r3 ; DIV ; read RES lgio+ 1 ; jmpr cc_busy, 0 ; lpio 0x301, r4 ; RES ; start div div r1, r2 ; nop ; jmpr cc_divb, 0 ; wait for divider to be ready die r7 ; mul r7, r2, r5 ; cmp r3, r7 ; jmpr cc_zero, 2 ; add r10, c1, r10 ; sub r1, r5, r11 ; cmp r11, r4 ; jmpr cc_zero, 2 ; add r10, c1, r10 ; iext endp1 ; cmp r14, endp1 ; jmp cc_ltu, read ; ; end, store the results in DBANK quit: iext 0xF000 ; mov 0xF000, r14 ; add r14, c5, r14 nop ; sgio+ r10 ; jmpr cc_busy, 0 ; #ifdef cpu3 syn mov 0x012, r6 ; sgio r6, gsm_cmdrg ; low power mode #endif #ifdef cpu0 mov c0, g0 #endif #ifdef cpu1 mov c0, g1 #endif #ifdef cpu2 mov c0, g2 #endif end: jmpr cc_uncond, 0 ; endpr: nop