?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1.         DEVICE ZXSPECTRUM128
  2.         include "../_sdk/sys_h.asm"
  3.  
  4. SAVEDATA=0x4000
  5. SAVEDATAsz=0x8000
  6.  
  7.         org PROGSTART
  8. begin
  9.         OS_HIDEFROMPARENT
  10.         ld e,0 ;EGA
  11.         OS_SETGFX
  12. ;memorize screen pages
  13. ;don't do this in regular programs!!!
  14.         ld a,(user_scr0_low)
  15.         ld (my_scr0_low),a
  16.         ld a,(user_scr0_high)
  17.         ld (my_scr0_high),a
  18.         ld a,(user_scr1_low)
  19.         ld (my_scr1_low),a
  20.         ld a,(user_scr1_high)
  21.         ld (my_scr1_high),a
  22.         ld e,-1 ;disable gfx (out: e=old gfxmode)
  23.         OS_SETGFX
  24.  
  25.         OS_GETMAINPAGES ;out: d,e,h,l=pages in 0000,4000,8000,c000, c=flags, b=id
  26.         push hl
  27.         OS_DELPAGE ;4000
  28.         pop hl
  29.         push hl
  30.         ld e,h
  31.         OS_DELPAGE ;8000
  32.         pop hl
  33.         ld e,l
  34.         OS_DELPAGE ;c000
  35.  
  36. loop
  37.         YIELD
  38. ;wait for cs+ss+L keypress
  39.         ld a,0x7f
  40.         in a,(0xfe) ;space,ss...
  41.         rra ;ss...
  42.         ld bc,0xfefe
  43.         in b,(c) ;cs...
  44.         or b
  45.         ld bc,0xbffe
  46.         in b,(c) ;enter,L...
  47.         rr b
  48.         or b
  49.         and 1
  50. oldext=$+1
  51.         ld c,0
  52.         ld (oldext),a
  53.         xor c
  54.         jr z,loop
  55.         bit 0,c
  56.         jr z,loop ;was pressed
  57. ;keypress
  58.         ld de,pal
  59.         OS_GETPAL
  60.  
  61.         ld a,'0'
  62.         ld (scrnum),a
  63. my_scr0_low=$+1
  64.         ld a,0
  65.         SETPG4000
  66. my_scr0_high=$+1
  67.         ld a,0
  68.         SETPG8000
  69.         call savescreen
  70.         ld a,'1'
  71.         ld (scrnum),a
  72. my_scr1_low=$+1
  73.         ld a,0
  74.         SETPG4000
  75. my_scr1_high=$+1
  76.         ld a,0
  77.         SETPG8000
  78.         call savescreen
  79.  
  80.         ld hl,filename+2
  81.        
  82.         ld a,(hl)
  83.         inc (hl)
  84.         cp '9'
  85.         jr nz,noinc
  86.         ld (hl),0
  87.  
  88.         dec hl
  89.         ld a,(hl)
  90.         inc (hl)
  91.         cp '9'
  92.         jr nz,noinc
  93.         ld (hl),0
  94.  
  95.         dec hl 
  96.         ld a,(hl)
  97.         inc (hl)
  98.         cp '9'
  99.         jr nz,noinc
  100.         ld (hl),0
  101.        
  102. noinc
  103.         jp loop
  104.         ;QUIT
  105.  
  106. savescreen
  107.         ld de,filename
  108.         OS_CREATEHANDLE
  109.         push bc
  110.         ld de,SAVEDATA
  111.         ld hl,SAVEDATAsz
  112.         push bc
  113.         OS_WRITEHANDLE
  114.         pop bc
  115.         ld de,pal
  116.         ld hl,32
  117.         OS_WRITEHANDLE
  118.         pop bc
  119.         OS_CLOSEHANDLE
  120.         ret
  121.  
  122.  
  123. filename
  124.         db "000scr0"
  125. scrnum=$-1
  126.         db ".16c",0
  127.  
  128. end
  129. pal
  130.         ds 32
  131.  
  132.         savebin "scrshot.com",begin,end-begin
  133.  
  134.         LABELSLIST "../../us/user.l",1
  135.