100 ! Test ur servicemanualen f|r ABC806 110 INTEGER : EXTEND 120 ; CHR$(12) 130 ; '******************** TEST AV MAP REGISTERN *********************' 140 ! 150 Mao=52 ! --- Mapregistrens outadress, laddas i C-reg, reg pos laddas i B-reg 160 Sto=54 ! --- Write special 170 Dis=0 ! --- Disable minnesblockering (4K) 180 Ene=128 ! --- Enable minnesblockering (4K) 190 ! 200 ! 210 OUT Sto,Dis ! Disable memory mapping 220 Dat=170 : W=FNRegskr 230 IF FNRegl{s THEN ; 'Fel i krets ' FNKrets$ ELSE ; 'F|rsta test OK' 240 Dat=85 : W=FNRegskr 250 IF FNRegl{s THEN ; 'Fel i krets ' FNKrets$ ELSE ; 'Andra test OK ' 260 Dat=0 : W=FNRegskr 270 OUT Sto,Ene ! enable memory mapping 280 END 290 ! 300 ! 310 DEF FNKrets$ 320 Bit=Dat XOR Datl{s 330 IF Bit<16 THEN Krets$='1F' ELSE Krets$='2F' 340 RETURN Krets$ 350 FNEND 360 ! 370 ! 380 DEF FNRegskr LOCAL Reg,Rskriv 390 Reg=0 400 WHILE Reg<16 410 Rskriv=FNOutc(Mao,Reg*16,Dat) 420 Reg=Reg+1 430 WEND 440 RETURN 0 450 FNEND 460 ! 470 ! 480 DEF FNRegl{s LOCAL Reg 490 Reg=0 500 WHILE Reg<16 510 Datl{s=FNInc(Mao,Reg*16) 520 IF Dat=Datl{s THEN Reg=Reg+1 : WEND : RETURN 0 530 RETURN -1 540 FNEND 1000 ! 1010 ! 1020 DEF FNOutc(C,B,Dat) LOCAL Outc$=9,Kadr,Regc,Regb,Regde,Outc 1030 Outc$=CHR$(197,66,75,62,0,237,121,193,201) 1040 Kadr=VARPTR(Outc$) 1050 POKE Kadr+4,Dat 1060 Regc=C AND 255 : Regb=B AND 255 1070 Regde=(Regb*256)+Regc 1080 Rskr=CALL(Kadr,Regde) 1090 RETURN 0 1100 FNEND 2000 ! 2010 ! 2020 DEF FNInc(C,B) LOCAL Inc$=7,Kadr,Regc,Regb,Regde,Inc,Dat 2030 Inc$=CHR$(197,66,75,237,104,193,201) 2040 Kadr=VARPTR(Inc$) 2050 Regc=C AND 255 : Regb=B AND 255 2060 Regde=(Regb*256)+Regc 2070 Inc=CALL(Kadr,Regde) AND 255 2090 RETURN Inc 2100 FNEND 2110 ! 2120 !