?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. txt_setup:          db 0x0A,"Transfer student (Monmon Gakuen -Ten.ko.sei-)",0x0D,0x0A
  2.                     db "(c) 1998-2002 JAST",0x0D,0x0A
  3.                     db "(c) 2022 Transman/Triumpf",0x0D,0x0A
  4.                     db "----------------------------------------",0x0D,0x0A
  5.                     db "language setup",0x0D,0x0A
  6.                     db 0x0D,0x0A
  7.                     db "1. English",0x0D,0x0A    
  8.                     db "2. ",0x90,0xe3,0xe1,0xe1,0xaa,0xa8,0xa9," (The Asenheim Project)",0x0D,0x0A,0
  9. txt_censor_setup:
  10.                     db 0x0D,0x0A
  11.                     db "----------------------------------------",0x0D,0x0A
  12.                     db "Censorship? (If available)",0x0D,0x0A
  13.                     db 0x0D,0x0A
  14.                     db "1. Yes",0x0D,0x0A
  15.                     db "2. No",0x0D,0x0A
  16.                     db 0
  17. txt_gfx_setup:
  18.                     db 0x0D,0x0A
  19.                     db "----------------------------------------",0x0D,0x0A
  20.                     db "Graphics set",0x0D,0x0A
  21.                     db 0x0D,0x0A
  22.                     db "1. DDp palette",0x0D,0x0A
  23.                     db "2. ATM palette",0x0D,0x0A
  24. ;                    db "3. DDp palette (alt)",0x0D,0x0A
  25.                     db 0
  26.  
  27. mus_gfx_setup:
  28.                     db 0x0D,0x0A
  29.                     db "----------------------------------------",0x0D,0x0A
  30.                     db "Music set",0x0D,0x0A
  31.                     db 0x0D,0x0A
  32.                     db "1. AY",0x0D,0x0A
  33.                     db "2. TSFM ("
  34.                     db 0
  35.  
  36. tsfm_is_not_detected:
  37.                     db "not "
  38.                     db 0
  39.  
  40.  
  41. tsfm_is_detected:   db "detected)"
  42.                     db 0x0D,0x0A
  43.                     db 0
  44. import_cursor:
  45.        
  46.         call store8000c000
  47.  
  48.         ld a,(load_buf1)
  49.         SETPG8000
  50.  
  51.         ld a,(load_buf2)
  52.         SETPGC000
  53.  
  54.         ld hl,0x8005+320
  55.         ld de,CUR_DATA
  56.  
  57.  
  58.         call import_cursor_uni
  59.  
  60.         jp restore8000c000
  61. import_push:
  62.        
  63.         call store8000c000
  64.  
  65.         ld a,(load_buf1)
  66.         SETPG8000
  67.  
  68.         ld a,(load_buf2)
  69.         SETPGC000
  70.  
  71.         ld hl,0x8005
  72.         ld de,PUSH_DATA
  73.  
  74.         ld b,7 ;8
  75. .l0:
  76.         push bc
  77.  
  78.  
  79.         push hl
  80.         ld b,8
  81. .l1:
  82.         ld a,(hl)
  83.         ld (de),a
  84.         call DHL
  85.         inc de
  86.         djnz .l1
  87.         pop hl
  88.  
  89.         set 6,H
  90.         push hl
  91.         ld b,8
  92. .l2:
  93.         ld a,(hl)
  94.         ld (de),a
  95.         call DHL
  96.         inc de
  97.         djnz .l2
  98.         pop hl
  99.  
  100.         res 6,H
  101.         set 5,H
  102.  
  103.         push hl
  104.         ld b,8
  105. .l3:
  106.         ld a,(hl)
  107.         ld (de),a
  108.         call DHL
  109.         inc de
  110.         djnz .l3
  111.         pop hl
  112.  
  113.         set 6,H
  114.         push hl
  115.         ld b,8
  116. .l4:
  117.         ld a,(hl)
  118.         ld (de),a
  119.         call DHL
  120.         inc de
  121.         djnz .l4
  122.         pop hl
  123.  
  124.         res 6,H
  125.         res 5,H
  126.         inc hl
  127.  
  128.         pop bc
  129.         djnz .l0
  130.         jp restore8000c000
  131. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
  132. pre_init
  133.     ld e,6+0x80  //set TEXT mode  keep
  134.     OS_SETGFX
  135.  
  136.         ld e,0
  137.         OS_CLS
  138.  
  139.         OS_GETMAINPAGES
  140. ;dehl=??N?a ???a?? o 0000,4000,8000,c000
  141.         ld a,d
  142.         ld (winpage0),a
  143.         ld a,e
  144.         ld (winpage1),a
  145.         ld a,h
  146.         ld (winpage2),a
  147.         ld a,l
  148.         ld (winpage3),a
  149.  
  150. ; get music page page
  151. /*        OS_NEWPAGE
  152.         or a
  153.         jp nz,memoryerror
  154.         ld a,e
  155.         ld (music_buf),a
  156. */
  157. ; get gfx load buffer  2 pages
  158.         OS_NEWPAGE
  159.         or a
  160.         jp nz,memoryerror
  161.         ld a,e
  162.         ld (load_buf1),a
  163.         ld (src_buf1),a
  164.  
  165.         OS_NEWPAGE
  166.         or a
  167.         jp nz,memoryerror
  168.         ld a,e
  169.         ld (load_buf2),a
  170.         ld (src_buf2),a
  171.  
  172. ; get ingame gfx buffer pages 6 pages
  173.         OS_NEWPAGE
  174.         or a
  175.         jp nz,memoryerror
  176.         ld a,e
  177.         ld (mem_buf1),a
  178.  
  179.         OS_NEWPAGE
  180.         or a
  181.         jp nz,memoryerror
  182.         ld a,e
  183.         ld (mem_buf2),a
  184.  
  185.         OS_NEWPAGE
  186.         or a
  187.         jp nz,memoryerror
  188.         ld a,e
  189.         ld (mem_buf3),a
  190.  
  191.         OS_NEWPAGE
  192.         or a
  193.         jp nz,memoryerror
  194.         ld a,e
  195.         ld (mem_buf4),a
  196.  
  197.         OS_NEWPAGE
  198.         or a
  199.         jp nz,memoryerror
  200.         ld a,e
  201.         ld (scr_buf1),a
  202.  
  203.         OS_NEWPAGE
  204.         or a
  205.         jp nz,memoryerror
  206.         ld a,e
  207.         ld (scr_buf2),a
  208.  
  209.  
  210.  
  211.         OS_NEWPAGE
  212.         or a
  213.         jp nz,memoryerror
  214.         ld a,e
  215.         ld (font_page),a
  216.  
  217.  
  218.         OS_NEWPAGE
  219.         or a
  220.         jp nz,memoryerror
  221.         ld a,e
  222.         ld (plr_page),a
  223.  
  224.         OS_NEWPAGE
  225.         or a
  226.         jp nz,memoryerror
  227.         ld a,e
  228.         ld (plr_page2),a
  229.  
  230.  
  231.         OS_NEWPAGE
  232.         or a
  233.         jp nz,memoryerror
  234.         ld a,e
  235.         ld (plr_page3),a
  236.  
  237.        ;jr skip_setup ;////!!!!!!!!!!!!!!!!!
  238.        // чруыє°ър фы  os_setmusic
  239.        // !!!!!! ъюёЄ√ы№ !!!!!!
  240.        call set_music_pages
  241.        ld a,0xc9
  242.        ld (0x9000),a
  243.        call unset_music_pages
  244.  
  245. ;language setup
  246. ;----------------------------------------
  247.         ld hl,txt_setup
  248.         call print_hl
  249. setup_lp:        
  250.         YIELDGETKEYLOOP
  251.         cp "1"
  252.         jr z,setup_is1
  253.        cp "2"
  254.        jr z,setup_is2
  255. ;        cp "3"
  256. ;        jr z,setup_is3
  257.         jr setup_lp
  258. setup_is1:
  259.           xor a
  260.           ;ld a,0
  261.           jr setup_set
  262. setup_is2:
  263.          ld a,1
  264. ;          jr setup_set
  265. ;setup_is3:
  266. ;         ld a,2
  267. setup_set:
  268.         ld (language),a
  269.  
  270.         ld hl,loc_modes
  271.         call sel_word
  272.         ld de,SAVETEMPL_EXT
  273.         ld bc,3
  274.         ldir
  275.  
  276.  
  277.  
  278.         ld hl,txt_gfx_setup
  279.         call print_hl
  280. setup_glp:
  281.         YIELDGETKEYLOOP
  282.         cp "1"
  283.         jr z,setup_gis1
  284.        cp "2"
  285.        jr z,setup_gis2
  286. ;       cp "3"
  287. ;       jr z,setup_gis3
  288.  
  289.         jr setup_glp
  290. setup_gis1:
  291.           xor a
  292.           jr setup_gset
  293. setup_gis2:
  294.          ld a,1
  295. ;          jr setup_gset
  296. ;setup_gis3:
  297. ;         ld a,2
  298. setup_gset:
  299.         ld (gfx_mode),a
  300.  
  301.  
  302.         push af
  303.         ld hl,box_color_x
  304.         call sel_word
  305.         ld a,(hl)
  306.         ld (_draw_box_color),a
  307.         pop af
  308.         ld hl,pal_mode
  309.         call sel_word
  310.         ld de,blackpal
  311.         ld bc,pal_rgb-blackpal
  312.         ldir
  313.  
  314. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  315. ;       setup music
  316.         call tsfm_check
  317. ;        and a
  318. ;        jr z,_set_ay
  319.         ld (tsfm_detected),a
  320.         dec a
  321.         ld (tsfm_mode),a
  322.        
  323.  
  324.        
  325.         ld hl,mus_gfx_setup
  326.         call print_hl
  327.         ld a,(tsfm_detected)
  328.         and a
  329.         jr nz,setup_mus_lop
  330.  
  331.         ld hl,tsfm_is_not_detected
  332.         call print_hl
  333. setup_mus_lop:
  334.         ld hl,tsfm_is_detected
  335.         call print_hl
  336.  
  337. setup_mus_lp:
  338.         YIELDGETKEYLOOP
  339.         cp "1"
  340.         jr z,_set_ay
  341.         cp "2"
  342.         jr z,_set_tsfm
  343.         jr setup_mus_lp
  344.  
  345.  
  346.  
  347. _set_tsfm:
  348.         ld a,1
  349.         jr _set_mu
  350. _set_ay:
  351.         xor a
  352. _set_mu:
  353.         ld (mus_mode),a
  354. setup_gset2:
  355. //        jr skip_setup ;////!!!!!!!!!!!!!!!!!
  356. ;censor setup
  357. ;----------------------------------------
  358.         ld hl,txt_censor_setup
  359.         call print_hl
  360. setup_lpc:        
  361.         YIELDGETKEYLOOP
  362.         cp "1"
  363.         jr z,setup_isc1
  364.         cp "2"
  365.         jr z,setup_isc2
  366.         jr setup_lpc
  367. setup_isc1:
  368.           ld a,1
  369.           jr setup_setc
  370. setup_isc2:
  371.          xor a
  372. setup_setc:
  373.         ld (censor_mode),a
  374. ;setup is done
  375. ;----------------------------------------
  376.  
  377. skip_setup:
  378. ;-----------------------------------------
  379.         ;go to resources directory
  380.         ld de,res_path
  381.         OS_CHDIR
  382.         or a
  383.         jp nz,dirchangeerror
  384.  
  385.         ;----------------------
  386.         ;--load music player
  387.  
  388.              call set_music_pages
  389.              
  390.                 ld a,(mus_mode)
  391.                 ld hl,mus_modes
  392.                 call sel_word
  393.  
  394.                 ld de,buf
  395.                 call copystr_hlde
  396.                 ld hl,mus_plr_path
  397.                 call copystr_hlde
  398.                 xor a
  399.                 ld (de),a
  400.                 ld (wlock),a
  401.  
  402.  
  403.  
  404.  
  405.                 ld de,buf
  406.                 call openstream_file
  407.                 or a
  408.                 jp nz,fileopenerror
  409.  
  410.                 ld hl,0x4000 ;len
  411.                 ld de,player_load ;addr
  412.                 call readstream_file
  413.                 or a
  414.                 jp nz,filereaderror
  415.  
  416.                 call closestream_file
  417.  
  418.  
  419.  
  420.              call unset_music_pages
  421. ;load font
  422. loadfont:
  423. ; 4*8
  424.               call setfontpage
  425.               ld de,font_file  
  426.               call openstream_file
  427.               or a
  428.               jp nz,fileopenerror
  429.  
  430.               ld hl,0x4000 ;len
  431.               ld de,FONT ;addr
  432.               call readstream_file
  433.               or a
  434.               jp nz,filereaderror
  435.  
  436.               call closestream_file
  437.  
  438. ; 5*8
  439.               ld de,font_file2  
  440.               call openstream_file
  441.               or a
  442.               jp nz,fileopenerror
  443.  
  444.               ld hl,0x1000 ;len
  445.               ld de,FONT2 ;addr
  446.               call readstream_file
  447.               or a
  448.               jp nz,filereaderror
  449.  
  450.               call closestream_file
  451.  
  452.               call unsetfontpage
  453.  
  454.         call int_set
  455.  
  456.         ;set mode
  457.         ld e,0+0x80  //set EGA mode keep
  458.         OS_SETGFX
  459.  
  460. ;prepare animation
  461.         call clear_screen
  462. deb_lnk
  463.         ld hl,anim_w
  464.         call load_gfx_to_load_buf_nopal
  465.         call import_push
  466.         call import_cursor
  467. ;;
  468.  
  469.      
  470.         ld a,(mem_buf1)
  471.         SETPGC000
  472.         ld hl,0xc000
  473.         ld de,0xc001
  474.         ld bc,16383
  475.         ld (hl),0
  476.         ldir
  477.         ld a,(mem_buf2)
  478.         SETPGC000
  479.         ld hl,0xc000
  480.         ld de,0xc001
  481.         ld bc,16383
  482.         ld (hl),0
  483.         ldir
  484.         ret
  485. tsfm_check:
  486.         call tsfm_check_mode1
  487.         jp m,.next_none ;.next_check2
  488.         ld a,1
  489.         ret
  490. //.next_check2:
  491. //        call tsfm_check_mode2
  492. //        jp m,.next_none
  493. //        ld a,2
  494. //        ret
  495. .next_none:
  496.         xor a
  497.         ret
  498. ;-------------------------------------------
  499. ;tsfm type
  500. ;       if tsfm_type = 1
  501. ;sFFFD = $FFFD
  502. ;sFF   = $FF
  503. ;sBFFD = $BFFD
  504. ;sBF   = $BF
  505. ;
  506. ;sFFBF = $FFBF
  507. ;       endif
  508. ;------------------------------------------------------------------------------
  509. ;       if tsfm_type = 2
  510. ;sFFFD = $7F3B
  511. ;sFF   = $7F
  512. ;sBFFD = $7E3B
  513. ;sBF   = $7E
  514. ;
  515. ;sFFBF = $7F7E
  516. ;       endif
  517. tsfm_check_mode1:
  518.         LD BC,0xFFFD
  519.         LD A,%11111000
  520.         OUT (C),A       ;FM on,status rg read on
  521.  
  522.         ld d,$FF
  523. 1       dec d
  524.         jr nz,1b        ;pause
  525.        
  526.         XOR A
  527.         OUT (C),A       ;select rg 0
  528.        
  529. 1       dec d
  530.         jr nz,1b        ;pause
  531.        
  532.         LD B,0xBF
  533.         OUT (C),B       ;write some data in rg 0
  534.        
  535. 1       dec d
  536.         jr nz,1b        ;pause
  537.        
  538.         inc a           ;a=1
  539.         LD B,0xFF
  540.         IN F,(c)        ;read status (P=ready)
  541.        
  542. ;       jp m,tsfm_absent
  543.         ret
  544.  
  545.  
  546.  
  547. tsfm_check_mode2:
  548.         LD BC,0x7F3B
  549.         LD A,%11111000
  550.         OUT (C),A       ;FM on,status rg read on
  551.  
  552.         ld d,$FF
  553. 1       dec d
  554.         jr nz,1b        ;pause
  555.        
  556.         XOR A
  557.         OUT (C),A       ;select rg 0
  558.        
  559. 1       dec d
  560.         jr nz,1b        ;pause
  561.        
  562.         LD B,0x7e
  563.         OUT (C),B       ;write some data in rg 0
  564.        
  565. 1       dec d
  566.         jr nz,1b        ;pause
  567.        
  568.         inc a           ;a=1
  569.         LD B,0x7f
  570.         IN F,(c)        ;read status (P=ready)
  571. ;       jp m,tsfm_absent
  572.         ret