?login_element?

Subversion Repositories NedoOS

Rev

Rev 2191 | Blame | Compare with Previous | Last modification | View Log | Download

  1. MODULE viewScreen6912
  2. PUBLIC viewScreen6912
  3. #include "sysdefs.asm"
  4. RSEG CODE
  5.  
  6.         macro YIELD
  7.         push bc
  8.         ld c, CMD_YIELD
  9.         push ix
  10.         push iy
  11.         call  BDOS
  12.         pop iy
  13.         pop ix
  14.         pop bc
  15.         endm
  16.  
  17.  
  18. viewScreen6912:
  19. ; unsigned int viewScreen6912(unsigned char pause, unsigned int bufAdr);
  20. ; DE = buffer adress BC = time in ints out A = key
  21.         xor a
  22.         ld (key), a
  23.         push hl
  24.         push bc ; not for exit
  25.         push de ; not for exit
  26.  
  27.         ld c, CMD_GETMAINPAGES  ;d,e,h,l=pages in 0000,4000,8000,c000, c=flags, b=id
  28.         push ix
  29.         push iy
  30.         call BDOS
  31.         pop iy
  32.         pop ix 
  33.  
  34.         ld (pg4),de
  35.         ld (pgC),hl
  36. display:
  37.         ld e, 0x83
  38.         ld c, CMD_SETGFX
  39.         push ix
  40.         push iy
  41.         halt
  42.         call  BDOS
  43.         pop iy
  44.         pop ix
  45.        
  46.         ld a,(user_scr0_high)
  47.        
  48.         push ix
  49.         push iy
  50.         rst 0x28                ;SETPGC000
  51.         pop iy
  52.         pop ix
  53.        
  54.     pop hl                      ; DE - buffer adress
  55.         ld de, 0xC000
  56.         ld bc, 6912
  57.         ldir
  58.    
  59.         xor a
  60.         out (0xfe), a   ;border 0
  61.  
  62.         pop bc                  ; tics
  63.         ld a, b
  64.     or c
  65.     jp nz, slideshow    ;       tics != 0
  66.        
  67. inkey
  68.        
  69.         YIELD
  70.        
  71.         push ix
  72.         push iy
  73.         rst 0x08                ;OS_GETKEY
  74.         pop iy
  75.         pop ix
  76.         halt
  77.         halt
  78.         jp nz, inkey
  79.         ld a,c
  80.         or a
  81.         jp z, inkey
  82.  
  83. exit3
  84.         ld (key), a
  85.         ld e, 0x86
  86.         ld c, CMD_SETGFX
  87.         push ix
  88.         push iy
  89.         ;halt
  90.         call BDOS
  91.         pop iy
  92.         pop ix
  93.         ld a, (pgC)
  94.         push ix
  95.         push iy
  96.         rst 0x28        ;SETPGC000
  97.         pop iy
  98.         pop ix
  99.         pop hl
  100.         ld a, (key)
  101.         ret
  102.  
  103. slideshow ;BC ints
  104.         YIELD
  105.         dec bc
  106.         ld (waiting),bc
  107.  
  108.         push ix
  109.         push iy
  110.         rst 0x08
  111.         pop iy
  112.         pop ix 
  113.         ld a,c
  114.         or a
  115.     jp nz, exit3       
  116.         halt
  117.         ld bc,(waiting)
  118.         ld a, b
  119.     or c
  120.     jp nz, slideshow
  121.         ld a, 32
  122.         jp exit3       
  123. pg4             defb 0
  124. pg0             defb 0
  125. pgC             defb 0
  126. pg8             defb 0
  127. waiting defw 0
  128. key             defb 0
  129. ENDMOD
  130.  
  131. MODULE rst0x08
  132. PUBLIC rst0x08
  133. #include "sysdefs.asm"
  134. RSEG CODE
  135. rst0x08:       
  136.         push ix
  137.         push iy
  138.         rst 0x08
  139.         pop iy
  140.         pop ix
  141.         ld a,c
  142.         ret
  143. ENDMOD 
  144. END
  145.